summaryrefslogtreecommitdiffstats
path: root/private/ntos/inc/parallel.h
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/ntos/inc/parallel.h
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/ntos/inc/parallel.h')
-rw-r--r--private/ntos/inc/parallel.h117
1 files changed, 117 insertions, 0 deletions
diff --git a/private/ntos/inc/parallel.h b/private/ntos/inc/parallel.h
new file mode 100644
index 000000000..02f4329ae
--- /dev/null
+++ b/private/ntos/inc/parallel.h
@@ -0,0 +1,117 @@
+/*++
+
+Copyright (c) 1993 Microsoft Corporation
+
+Module Name:
+
+ parallel.h
+
+Abstract:
+
+ This file defines the services supplied by the parallel port driver.
+
+Author:
+
+ norbertk
+
+Revision History:
+
+--*/
+
+#ifndef _PARALLEL_
+#define _PARALLEL_
+
+#include <ntddpar.h>
+
+//
+// Define the parallel port device name strings.
+//
+
+#define DD_PARALLEL_PORT_BASE_NAME_U L"ParallelPort"
+
+//
+// NtDeviceIoControlFile internal IoControlCode values for parallel device.
+//
+
+#define IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_RELEASE_PARALLEL_PORT_INFO CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_GET_MORE_PARALLEL_PORT_INFO CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 17, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+
+typedef
+BOOLEAN
+(*PPARALLEL_TRY_ALLOCATE_ROUTINE) (
+ IN PVOID TryAllocateContext
+ );
+
+typedef
+VOID
+(*PPARALLEL_FREE_ROUTINE) (
+ IN PVOID FreeContext
+ );
+
+typedef
+ULONG
+(*PPARALLEL_QUERY_WAITERS_ROUTINE) (
+ IN PVOID QueryAllocsContext
+ );
+
+typedef struct _PARALLEL_PORT_INFORMATION {
+ PHYSICAL_ADDRESS OriginalController;
+ PUCHAR Controller;
+ ULONG SpanOfController;
+ PPARALLEL_TRY_ALLOCATE_ROUTINE TryAllocatePort;
+ PPARALLEL_FREE_ROUTINE FreePort;
+ PPARALLEL_QUERY_WAITERS_ROUTINE QueryNumWaiters;
+ PVOID Context;
+} PARALLEL_PORT_INFORMATION, *PPARALLEL_PORT_INFORMATION;
+
+//
+// The following structure is passed in on an
+// IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT and on an
+// IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT request.
+//
+
+typedef
+VOID
+(*PPARALLEL_DEFERRED_ROUTINE) (
+ IN PVOID DeferredContext
+ );
+
+typedef struct _PARALLEL_INTERRUPT_SERVICE_ROUTINE {
+ PKSERVICE_ROUTINE InterruptServiceRoutine;
+ PVOID InterruptServiceContext;
+ PPARALLEL_DEFERRED_ROUTINE DeferredPortCheckRoutine; /* OPTIONAL */
+ PVOID DeferredPortCheckContext; /* OPTIONAL */
+} PARALLEL_INTERRUPT_SERVICE_ROUTINE, *PPARALLEL_INTERRUPT_SERVICE_ROUTINE;
+
+//
+// The following structure is returned on an
+// IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT request;
+//
+
+typedef struct _PARALLEL_INTERRUPT_INFORMATION {
+ PKINTERRUPT InterruptObject;
+ PPARALLEL_TRY_ALLOCATE_ROUTINE TryAllocatePortAtInterruptLevel;
+ PPARALLEL_FREE_ROUTINE FreePortFromInterruptLevel;
+ PVOID Context;
+} PARALLEL_INTERRUPT_INFORMATION, *PPARALLEL_INTERRUPT_INFORMATION;
+
+//
+// The following structure is returned on an
+// IOCTL_INTERNAL_GET_MORE_PARALLEL_PORT_INFO.
+//
+
+typedef struct _MORE_PARALLEL_PORT_INFORMATION {
+ INTERFACE_TYPE InterfaceType;
+ ULONG BusNumber;
+ ULONG InterruptLevel;
+ ULONG InterruptVector;
+ KAFFINITY InterruptAffinity;
+ KINTERRUPT_MODE InterruptMode;
+} MORE_PARALLEL_PORT_INFORMATION, *PMORE_PARALLEL_PORT_INFORMATION;
+
+#endif // _PARALLEL_