📄 funcdecl.h
字号:
PptDispatchCreateClose(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
BOOLEAN
PptSynchronizedIncrement(
IN OUT PVOID SyncContext
);
BOOLEAN
PptSynchronizedDecrement(
IN OUT PVOID SyncContext
);
BOOLEAN
PptSynchronizedRead(
IN OUT PVOID SyncContext
);
BOOLEAN
PptSynchronizedQueue(
IN PVOID Context
);
BOOLEAN
PptSynchronizedDisconnect(
IN PVOID Context
);
VOID
PptCancelRoutine(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
);
VOID
PptFreePortDpc(
IN PKDPC Dpc,
IN OUT PVOID Extension,
IN PVOID SystemArgument1,
IN PVOID SystemArgument2
);
BOOLEAN
PptTryAllocatePortAtInterruptLevel(
IN PVOID Context
);
VOID
PptFreePortFromInterruptLevel(
IN PVOID Context
);
BOOLEAN
PptInterruptService(
IN PKINTERRUPT Interrupt,
IN PVOID Extension
);
BOOLEAN
PptTryAllocatePort(
IN PVOID Extension
);
BOOLEAN
PptTraversePortCheckList(
IN PVOID Extension
);
VOID
PptFreePort(
IN PVOID Extension
);
ULONG
PptQueryNumWaiters(
IN PVOID Extension
);
NTSTATUS
PptDispatchDeviceControl(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
VOID
PptCleanupDevice(
IN PFDO_EXTENSION Extension
);
NTSTATUS
PptDispatchCleanup(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
VOID
PptUnload(
IN PDRIVER_OBJECT DriverObject
);
BOOLEAN
PptIsNecR98Machine(
void
);
//
// parmode.c
//
NTSTATUS
PptDetectChipFilter(
IN PFDO_EXTENSION Extension
);
NTSTATUS
PptDetectPortType(
IN PFDO_EXTENSION Extension
);
NTSTATUS
PptSetChipMode (
IN PFDO_EXTENSION Extension,
IN UCHAR ChipMode
);
NTSTATUS
PptClearChipMode (
IN PFDO_EXTENSION Extension,
IN UCHAR ChipMode
);
//
// par12843.c
//
ULONG
PptInitiate1284_3(
IN PVOID Extension
);
NTSTATUS
PptTrySelectDevice(
IN PVOID Context,
IN PVOID TrySelectCommand
);
NTSTATUS
PptDeselectDevice(
IN PVOID Context,
IN PVOID DeselectCommand
);
ULONG
Ppt1284_3AssignAddress(
IN PFDO_EXTENSION DeviceExtension
);
BOOLEAN
PptSend1284_3Command(
IN PUCHAR CurrentPort,
IN UCHAR Command
);
//
// Ppt RemoveLock function declarations
//
NTSTATUS
PptAcquireRemoveLock(
IN PIO_REMOVE_LOCK RemoveLock,
IN PVOID Tag OPTIONAL
);
VOID
PptReleaseRemoveLock(
IN PIO_REMOVE_LOCK RemoveLock,
IN PVOID Tag OPTIONAL
);
VOID
PptReleaseRemoveLockAndWait(
IN PIO_REMOVE_LOCK RemoveLock,
IN PVOID Tag
);
//
// power management function declarations
//
NTSTATUS
PptPowerDispatch (
IN PDEVICE_OBJECT pDeviceObject,
IN PIRP pIrp
);
//
// other function declarations
//
PWSTR
PptGetPortNameFromPhysicalDeviceObject(
PDEVICE_OBJECT PhysicalDeviceObject
);
NTSTATUS
PptSynchCompletionRoutine(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PKEVENT Event
);
NTSTATUS
PptTrySelectLegacyZip(
IN PVOID Context,
IN PVOID TrySelectCommand
);
NTSTATUS
PptDeselectLegacyZip(
IN PVOID Context,
IN PVOID DeselectCommand
);
NTSTATUS
PptRegGetDeviceParameterDword(
IN PDEVICE_OBJECT Pdo,
IN PWSTR ParameterName,
IN OUT PULONG ParameterValue
);
NTSTATUS
PptRegSetDeviceParameterDword(
IN PDEVICE_OBJECT Pdo,
IN PWSTR ParameterName,
IN PULONG ParameterValue
);
NTSTATUS
PptBuildParallelPortDeviceName(
IN ULONG Number,
OUT PUNICODE_STRING DeviceName
);
NTSTATUS
PptInitializeDeviceExtension(
IN PDRIVER_OBJECT pDriverObject,
IN PDEVICE_OBJECT pPhysicalDeviceObject,
IN PDEVICE_OBJECT pDeviceObject,
IN PUNICODE_STRING uniNameString,
IN PWSTR portName,
IN ULONG portNumber
);
NTSTATUS
PptGetPortNumberFromLptName(
IN PWSTR PortName,
OUT PULONG PortNumber
);
PDEVICE_OBJECT
PptBuildFdo(
IN PDRIVER_OBJECT pDriverObject,
IN PDEVICE_OBJECT pPhysicalDeviceObject
);
VOID
PptDetectEppPort(
IN PFDO_EXTENSION Extension
);
// orig pnp.h follows
NTSTATUS
PptPnpFilterResourceRequirements(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
PptPnpQueryDeviceRelations(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
PptPnpQueryStopDevice(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
PptPnpCancelStopDevice(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
PptPnpStopDevice(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
PptPnpQueryRemoveDevice(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
PptPnpCancelRemoveDevice(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
PptPnpRemoveDevice(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
PptPnpSurpriseRemoval(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
PptPnpUnhandledIrp(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
PptPnpStartDevice(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
PptPnpStartValidateResources(
IN PDEVICE_OBJECT DeviceObject,
IN BOOLEAN FoundPort,
IN BOOLEAN FoundIrq,
IN BOOLEAN FoundDma
);
NTSTATUS
PptPnpStartScanCmResourceList(
IN PFDO_EXTENSION Extension,
IN PIRP Irp,
OUT PBOOLEAN FoundPort,
OUT PBOOLEAN FoundIrq,
OUT PBOOLEAN FoundDma
);
NTSTATUS
PptPnpPassThroughPnpIrpAndReleaseRemoveLock(
IN PFDO_EXTENSION Extension,
IN PIRP Irp
);
NTSTATUS
PptPnpRemoveDevice(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
VOID
PptPnpFilterNukeIrqResourceDescriptors(
IN OUT PIO_RESOURCE_LIST IoResourceList
);
VOID
PptPnpFilterNukeIrqResourceDescriptorsFromAllLists(
IN OUT PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirementsList
);
BOOLEAN
PptPnpFilterExistsNonIrqResourceList(
IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirementsList
);
PVOID
PptPnpFilterGetEndOfResourceRequirementsList(
IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirementsList
);
BOOLEAN
PptPnpListContainsIrqResourceDescriptor(
IN PIO_RESOURCE_LIST List
);
VOID
PptPnpFilterRemoveIrqResourceLists(
PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirementsList
);
NTSTATUS
PptPnpBounceAndCatchPnpIrp(
IN PFDO_EXTENSION Extension,
IN PIRP Irp
);
PWSTR
P4MakePdoSymLinkName(
IN PWSTR LptName,
IN enum _PdoType PdoType,
IN UCHAR DaisyChainId, // ignored unless PdoType == PdoTypeDaisyChain
IN UCHAR RetryNumber
);
PWSTR
P4MakePdoDeviceName(
IN PWSTR LptName,
IN enum _PdoType PdoType,
IN UCHAR DaisyChainId, // ignored unless PdoType == PdoTypeDaisyChain
IN UCHAR RetryNumber // used if we had a name collision on IoCreateDevice
);
PDEVICE_OBJECT
P4CreatePdo(
IN PDEVICE_OBJECT Fdo,
IN enum _PdoType PdoType,
IN UCHAR DaisyChainId, // ignored unless PdoType == PdoTypeDaisyChain
IN PCHAR Ieee1284Id // NULL if device does not report IEEE 1284 Device ID
);
VOID
P4DestroyPdo(
IN PDEVICE_OBJECT Pdo
);
NTSTATUS
PptFindNatChip(
IN PFDO_EXTENSION Extension
);
NTSTATUS
PptBuildResourceList(
IN PFDO_EXTENSION Extension,
IN ULONG Partial,
IN PUCHAR *Addresses,
OUT PCM_RESOURCE_LIST Resources
);
// parmode.h
NTSTATUS
PptDetectChipFilter(
IN PFDO_EXTENSION Extension
);
NTSTATUS
PptDetectPortType(
IN PFDO_EXTENSION Extension
);
NTSTATUS
PptDetectPortCapabilities(
IN PFDO_EXTENSION Extension
);
VOID
PptDetectEcpPort(
IN PFDO_EXTENSION Extension
);
VOID
PptDetectEppPortIfDot3DevicePresent(
IN PFDO_EXTENSION Extension
);
VOID
PptDetectEppPortIfUserRequested(
IN PFDO_EXTENSION Extension
);
VOID
PptDetectBytePort(
IN PFDO_EXTENSION Extension
);
VOID
PptDetermineFifoDepth(
IN PFDO_EXTENSION Extension
);
VOID
PptDetermineFifoWidth(
IN PFDO_EXTENSION Extension
);
NTSTATUS
PptSetChipMode (
IN PFDO_EXTENSION Extension,
IN UCHAR ChipMode
);
NTSTATUS
PptClearChipMode (
IN PFDO_EXTENSION Extension,
IN UCHAR ChipMode
);
NTSTATUS
PptEcrSetMode(
IN PFDO_EXTENSION Extension,
IN UCHAR ChipMode
);
NTSTATUS
PptCheckBidiMode(
IN PFDO_EXTENSION Extension
);
NTSTATUS
PptEcrClearMode(
IN PFDO_EXTENSION Extension
);
NTSTATUS
PptSetByteMode(
IN PFDO_EXTENSION Extension,
IN UCHAR ChipMode
);
NTSTATUS
PptClearByteMode(
IN PFDO_EXTENSION Extension
);
NTSTATUS
PptCheckByteMode(
IN PFDO_EXTENSION Extension
);
NTSTATUS
P4CompleteRequest(
IN PIRP Irp,
IN NTSTATUS Status,
IN ULONG_PTR Information
);
NTSTATUS
P4CompleteRequestReleaseRemLock(
IN PIRP Irp,
IN NTSTATUS Status,
IN ULONG_PTR Information,
IN PIO_REMOVE_LOCK RemLock
);
VOID
P4SanitizeId(
IN OUT PWSTR DeviceId
);
VOID
P4AcquireBus( IN PDEVICE_OBJECT Fdo ); // this call will block until bus can be acquired
VOID
P4ReleaseBus( PDEVICE_OBJECT Fdo );
PCHAR
P4ReadRawIeee1284DeviceId(
IN PUCHAR Controller
);
VOID
P4WritePortNameToDevNode( PDEVICE_OBJECT Pdo, PCHAR Location );
NTSTATUS
PptPdoCreateOpen(
IN PDEVICE_OBJECT Pdo,
IN PIRP Irp
);
NTSTATUS PptFdoHandleBusRelations( IN PDEVICE_OBJECT Fdo, IN PIRP Irp );
NTSTATUS PptPnpStartScanPciCardCmResourceList( PFDO_EXTENSION Extension, PIRP Irp, PBOOLEAN FoundPort, PBOOLEAN FoundIrq, PBOOLEAN FoundDma );
BOOLEAN PptIsPci( PFDO_EXTENSION Extension, PIRP Irp );
NTSTATUS PptPnpStartScanCmResourceList( PFDO_EXTENSION Extension, PIRP Irp, PBOOLEAN FoundPort, PBOOLEAN FoundIrq, PBOOLEAN FoundDma );
NTSTATUS PptPnpStartValidateResources( PDEVICE_OBJECT DeviceObject, IN BOOLEAN FoundPort, IN BOOLEAN FoundIrq, IN BOOLEAN FoundDma );
BOOLEAN PptPnpFilterExistsNonIrqResourceList( IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirementsList );
VOID PptPnpFilterRemoveIrqResourceLists( PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirementsList );
PVOID PptPnpFilterGetEndOfResourceRequirementsList( IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirementsList );
VOID PptPnpFilterNukeIrqResourceDescriptorsFromAllLists( PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirementsList );
VOID PptPnpFilterNukeIrqResourceDescriptors( PIO_RESOURCE_LIST IoResourceList );
BOOLEAN PptPnpListContainsIrqResourceDescriptor( IN PIO_RESOURCE_LIST List );
NTSTATUS PptPnpBounceAndCatchPnpIrp( PFDO_EXTENSION Extension, PIRP Irp );
NTSTATUS PptPnpPassThroughPnpIrpAndReleaseRemoveLock( IN PFDO_EXTENSION Extension, IN PIRP Irp );
VOID PptPdoGetPortInfoFromFdo( PDEVICE_OBJECT Pdo );
NTSTATUS
ParForwardToReverse(
IN PPDO_EXTENSION Extension
);
BOOLEAN
ParHaveReadData(
IN PPDO_EXTENSION Extension
);
NTSTATUS
ParPing(
IN PPDO_EXTENSION Extension
);
NTSTATUS
ParReverseToForward(
IN PPDO_EXTENSION Extension
);
NTSTATUS
ParRead(
IN PPDO_EXTENSION Extension,
OUT PVOID Buffer,
IN ULONG NumBytesToRead,
OUT PULONG NumBytesRead
);
VOID
ParReadIrp(
IN PPDO_EXTENSION Extension
);
NTSTATUS
ParSetFwdAddress(
IN PPDO_EXTENSION Extension
);
VOID
ParTerminate(
IN PPDO_EXTENSION Extension
);
NTSTATUS
ParWrite(
IN PPDO_EXTENSION Extension,
OUT PVOID Buffer,
IN ULONG NumBytesToWrite,
OUT PULONG NumBytesWritten
);
VOID
ParWriteIrp(
IN PPDO_EXTENSION Extension
);
NTSTATUS
ParWmiPdoQueryWmiDataBlock(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN ULONG GuidIndex,
IN ULONG InstanceIndex,
IN ULONG InstanceCount,
IN OUT PULONG InstanceLengthArray,
IN ULONG OutBufferSize,
OUT PUCHAR Buffer
);
NTSTATUS
ParWmiPdoQueryWmiRegInfo(
IN PDEVICE_OBJECT PDevObj,
OUT PULONG PRegFlags,
OUT PUNICODE_STRING PInstanceName,
OUT PUNICODE_STRING *PRegistryPath,
OUT PUNICODE_STRING MofResourceName,
OUT PDEVICE_OBJECT *Pdo
);
NTSTATUS
ParEcpEnterReversePhase(
IN PPDO_EXTENSION Extension
);
NTSTATUS
ParEcpExitReversePhase(
IN PPDO_EXTENSION Extension
);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -