32#define DD_PARALLEL_PORT_BASE_NAME "ParallelPort"
33#define DD_PARALLEL_PORT_BASE_NAME_U L"ParallelPort"
35#define IOCTL_INTERNAL_DESELECT_DEVICE \
36 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 24, METHOD_BUFFERED, FILE_ANY_ACCESS)
37#define IOCTL_INTERNAL_GET_MORE_PARALLEL_PORT_INFO \
38 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 17, METHOD_BUFFERED, FILE_ANY_ACCESS)
39#define IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO \
40 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
41#define IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO \
42 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
43#define IOCTL_INTERNAL_INIT_1284_3_BUS \
44 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
45#define IOCTL_INTERNAL_PARALLEL_CLEAR_CHIP_MODE \
46 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
47#define IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT \
48 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
49#define IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT \
50 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
51#define IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE \
52 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
53#define IOCTL_INTERNAL_PARALLEL_PORT_FREE \
54 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 40, METHOD_BUFFERED, FILE_ANY_ACCESS)
55#define IOCTL_INTERNAL_PARALLEL_SET_CHIP_MODE \
56 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 19, METHOD_BUFFERED, FILE_ANY_ACCESS)
57#define IOCTL_INTERNAL_RELEASE_PARALLEL_PORT_INFO \
58 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
59#define IOCTL_INTERNAL_SELECT_DEVICE \
60 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
70#define PAR_END_OF_CHAIN_DEVICE 0x00000001
71#define PAR_HAVE_PORT_KEEP_PORT 0x00000002
108#define PPT_NO_HARDWARE_PRESENT 0x00000000
109#define PPT_ECP_PRESENT 0x00000001
110#define PPT_EPP_PRESENT 0x00000002
111#define PPT_EPP_32_PRESENT 0x00000004
112#define PPT_BYTE_PRESENT 0x00000008
113#define PPT_BIDI_PRESENT 0x00000008
114#define PPT_1284_3_PRESENT 0x00000010
159#define INITIAL_MODE 0x00
160#define PARCHIP_ECR_ARBITRATOR 0x01
179#define IOCTL_INTERNAL_DISCONNECT_IDLE \
180 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 32, METHOD_BUFFERED, FILE_ANY_ACCESS)
181#define IOCTL_INTERNAL_LOCK_PORT \
182 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 37, METHOD_BUFFERED, FILE_ANY_ACCESS)
183#define IOCTL_INTERNAL_LOCK_PORT_NO_SELECT \
184 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 52, METHOD_BUFFERED, FILE_ANY_ACCESS)
185#define IOCTL_INTERNAL_PARCLASS_CONNECT \
186 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
187#define IOCTL_INTERNAL_PARCLASS_DISCONNECT \
188 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 31, METHOD_BUFFERED, FILE_ANY_ACCESS)
189#define IOCTL_INTERNAL_UNLOCK_PORT \
190 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 38, METHOD_BUFFERED, FILE_ANY_ACCESS)
191#define IOCTL_INTERNAL_UNLOCK_PORT_NO_DESELECT \
192 CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 53, METHOD_BUFFERED, FILE_ANY_ACCESS)
enum _INTERFACE_TYPE INTERFACE_TYPE
#define _In_reads_bytes_(size)
#define _Out_writes_bytes_to_(size, count)
enum _KINTERRUPT_MODE KINTERRUPT_MODE
NTSTATUS(NTAPI * PPARALLEL_WRITE)(_In_ PVOID Context, _In_reads_bytes_(NumBytesToWrite) PVOID Buffer, _In_ ULONG NumBytesToWrite, _Out_ PULONG NumBytesWritten, _In_ UCHAR Channel)
NTSTATUS(NTAPI * PPARALLEL_IEEE_FWD_TO_REV)(_In_ PVOID Context)
NTSTATUS(NTAPI * PPARALLEL_TRYSELECT_DEVICE)(_In_ PVOID Context, _In_ PARALLEL_1284_COMMAND Command)
struct _PARALLEL_CHIP_MODE PARALLEL_CHIP_MODE
struct _PARALLEL_1284_COMMAND PARALLEL_1284_COMMAND
NTSTATUS(NTAPI * PPARALLEL_SET_CHIP_MODE)(_In_ PVOID SetChipContext, _In_ UCHAR ChipMode)
struct _PARALLEL_1284_COMMAND * PPARALLEL_1284_COMMAND
struct _MORE_PARALLEL_PORT_INFORMATION MORE_PARALLEL_PORT_INFORMATION
NTSTATUS(NTAPI * PPARALLEL_DESELECT_DEVICE)(_In_ PVOID Context, _In_ PARALLEL_1284_COMMAND Command)
struct _PARCLASS_INFORMATION * PPARCLASS_INFORMATION
struct _PARALLEL_PORT_INFORMATION * PPARALLEL_PORT_INFORMATION
VOID(NTAPI * PPARALLEL_DEFERRED_ROUTINE)(_In_ PVOID DeferredContext)
NTSTATUS(NTAPI * PPARALLEL_CLEAR_CHIP_MODE)(_In_ PVOID ClearChipContext, _In_ UCHAR ChipMode)
struct _MORE_PARALLEL_PORT_INFORMATION * PMORE_PARALLEL_PORT_INFORMATION
NTSTATUS(NTAPI * PTERMINATE_IEEE_MODE)(_In_ PVOID Context)
VOID(NTAPI * PPARALLEL_FREE_ROUTINE)(_In_ PVOID FreeContext)
ULONG(NTAPI * PPARALLEL_QUERY_WAITERS_ROUTINE)(_In_ PVOID QueryAllocsContext)
NTSTATUS(NTAPI * PPARALLEL_READ)(_In_ PVOID Context, _Out_writes_bytes_to_(NumBytesToRead, *NumBytesRead) PVOID Buffer, _In_ ULONG NumBytesToRead, _Out_ PULONG NumBytesRead, _In_ UCHAR Channel)
NTSTATUS(NTAPI * PPARCHIP_CLEAR_CHIP_MODE)(_In_ PVOID ClearChipContext, _In_ UCHAR ChipMode)
NTSTATUS(NTAPI * PPARALLEL_TRY_SELECT_ROUTINE)(_In_ PVOID TrySelectContext, _In_ PVOID TrySelectCommand)
enum _PARALLEL_SAFETY PARALLEL_SAFETY
struct _PARALLEL_INTERRUPT_SERVICE_ROUTINE * PPARALLEL_INTERRUPT_SERVICE_ROUTINE
NTSTATUS(NTAPI * PNEGOTIATE_IEEE_MODE)(_In_ PVOID Context, _In_ USHORT ModeMaskFwd, _In_ USHORT ModeMaskRev, _In_ PARALLEL_SAFETY ModeSafety, _In_ BOOLEAN IsForward)
struct _PARALLEL_CHIP_MODE * PPARALLEL_CHIP_MODE
struct _PARALLEL_PORT_INFORMATION PARALLEL_PORT_INFORMATION
struct _PARCLASS_INFORMATION PARCLASS_INFORMATION
struct _PARALLEL_PNP_INFORMATION PARALLEL_PNP_INFORMATION
struct _PARALLEL_PNP_INFORMATION * PPARALLEL_PNP_INFORMATION
USHORT(NTAPI * PDETERMINE_IEEE_MODES)(_In_ PVOID Context)
NTSTATUS(NTAPI * PPARALLEL_DESELECT_ROUTINE)(_In_ PVOID DeselectContext, _In_ PVOID DeselectCommand)
NTSTATUS(NTAPI * PPARALLEL_IEEE_REV_TO_FWD)(_In_ PVOID Context)
struct _PARALLEL_INTERRUPT_SERVICE_ROUTINE PARALLEL_INTERRUPT_SERVICE_ROUTINE
BOOLEAN(NTAPI * PPARALLEL_TRY_ALLOCATE_ROUTINE)(_In_ PVOID TryAllocateContext)
PPARALLEL_DEFERRED_ROUTINE DeferredPortCheckRoutine
PVOID InterruptServiceContext
PKSERVICE_ROUTINE InterruptServiceRoutine
PVOID DeferredPortCheckContext
KSERVICE_ROUTINE * PKSERVICE_ROUTINE
_In_opt_ PVOID DeferredContext