ReactOS 0.4.16-dev-1946-g52006dd
parport.h File Reference
#include <ntddk.h>
#include <ndk/haltypes.h>
#include <ntddpar.h>
#include <stdio.h>
#include "hardware.h"
Include dependency graph for parport.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _COMMON_DEVICE_EXTENSION
 
struct  _FDO_DEVICE_EXTENSION
 
struct  _PDO_DEVICE_EXTENSION
 

Macros

#define PARPORT_TAG   'trpP'
 

Typedefs

typedef struct _COMMON_DEVICE_EXTENSION COMMON_DEVICE_EXTENSION
 
typedef struct _COMMON_DEVICE_EXTENSIONPCOMMON_DEVICE_EXTENSION
 
typedef struct _FDO_DEVICE_EXTENSION FDO_DEVICE_EXTENSION
 
typedef struct _FDO_DEVICE_EXTENSIONPFDO_DEVICE_EXTENSION
 
typedef struct _PDO_DEVICE_EXTENSION PDO_DEVICE_EXTENSION
 
typedef struct _PDO_DEVICE_EXTENSIONPPDO_DEVICE_EXTENSION
 

Enumerations

enum  DEVICE_STATE {
  dsStopped , dsStarted , dsPaused , dsRemoved ,
  dsSurpriseRemoved , NotStarted = 0 , Started , StopPending ,
  Stopped , RemovePending , SurpriseRemovePending , Deleted ,
  dsStopped , dsStarted , dsPaused , dsRemoved ,
  dsSurpriseRemoved , dsStopped , dsStarted , dsPaused ,
  dsRemoved , dsSurpriseRemoved
}
 

Functions

NTSTATUS NTAPI FdoCreate (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
NTSTATUS NTAPI FdoClose (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
NTSTATUS NTAPI FdoCleanup (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
NTSTATUS NTAPI FdoRead (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
NTSTATUS NTAPI FdoWrite (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
NTSTATUS NTAPI FdoPnp (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
NTSTATUS NTAPI FdoPower (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
PVOID GetUserBuffer (IN PIRP Irp)
 
NTSTATUS NTAPI PdoCreate (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
NTSTATUS NTAPI PdoClose (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
NTSTATUS NTAPI PdoCleanup (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
NTSTATUS NTAPI PdoRead (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
NTSTATUS NTAPI PdoWrite (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
NTSTATUS NTAPI PdoPnp (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
NTSTATUS NTAPI PdoPower (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 

Variables

DRIVER_ADD_DEVICE AddDevice
 
DRIVER_DISPATCH ForwardIrpAndForget
 

Macro Definition Documentation

◆ PARPORT_TAG

#define PARPORT_TAG   'trpP'

Definition at line 65 of file parport.h.

Typedef Documentation

◆ COMMON_DEVICE_EXTENSION

◆ FDO_DEVICE_EXTENSION

◆ PCOMMON_DEVICE_EXTENSION

◆ PDO_DEVICE_EXTENSION

◆ PFDO_DEVICE_EXTENSION

◆ PPDO_DEVICE_EXTENSION

Enumeration Type Documentation

◆ DEVICE_STATE

Enumerator
dsStopped 
dsStarted 
dsPaused 
dsRemoved 
dsSurpriseRemoved 
NotStarted 
Started 
StopPending 
Stopped 
RemovePending 
SurpriseRemovePending 
Deleted 
dsStopped 
dsStarted 
dsPaused 
dsRemoved 
dsSurpriseRemoved 
dsStopped 
dsStarted 
dsPaused 
dsRemoved 
dsSurpriseRemoved 

Definition at line 18 of file parport.h.

19{
DEVICE_STATE
Definition: parport.h:19
@ dsSurpriseRemoved
Definition: parport.h:24
@ dsStopped
Definition: parport.h:20
@ dsPaused
Definition: parport.h:22
@ dsStarted
Definition: parport.h:21
@ dsRemoved
Definition: parport.h:23

Function Documentation

◆ FdoCleanup()

NTSTATUS NTAPI FdoCleanup ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 465 of file fdo.c.

467{
468 DPRINT("FdoCleanup()\n");
469
470 Irp->IoStatus.Information = 0;
471 Irp->IoStatus.Status = STATUS_SUCCESS;
473
474 return STATUS_SUCCESS;
475}
_In_ PIRP Irp
Definition: csq.h:116
#define IoCompleteRequest
Definition: irp.c:1240
#define STATUS_SUCCESS
Definition: shellext.h:65
#define DPRINT
Definition: sndvol32.h:73
#define IO_NO_INCREMENT
Definition: iotypes.h:598

Referenced by DispatchCleanup().

◆ FdoClose()

NTSTATUS NTAPI FdoClose ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 445 of file fdo.c.

447{
448 PFDO_DEVICE_EXTENSION pDeviceExtension;
449
450 DPRINT("FdoClose()\n");
451
452 pDeviceExtension = (PFDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
453 pDeviceExtension->OpenCount--;
454
455 Irp->IoStatus.Information = 0;
456 Irp->IoStatus.Status = STATUS_SUCCESS;
458
459 return STATUS_SUCCESS;
460}
struct _FDO_DEVICE_EXTENSION * PFDO_DEVICE_EXTENSION
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061

Referenced by DispatchClose().

◆ FdoCreate()

NTSTATUS NTAPI FdoCreate ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 412 of file fdo.c.

414{
415 PFDO_DEVICE_EXTENSION DeviceExtension;
418
419 DPRINT("FdoCreate()\n");
420
422 DeviceExtension = (PFDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
423
424 if (Stack->Parameters.Create.Options & FILE_DIRECTORY_FILE)
425 {
426 DPRINT1("Not a directory\n");
428 goto done;
429 }
430
431 DPRINT("Open parallel port %lu: successful\n", DeviceExtension->PortNumber);
432 DeviceExtension->OpenCount++;
433
434done:
435 Irp->IoStatus.Status = Status;
436 Irp->IoStatus.Information = 0;
438
439 return Status;
440}
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
LONG NTSTATUS
Definition: precomp.h:26
#define FILE_DIRECTORY_FILE
Definition: constants.h:491
#define DPRINT1
Definition: precomp.h:8
Status
Definition: gdiplustypes.h:25
if(dx< 0)
Definition: linetemp.h:194
#define STATUS_NOT_A_DIRECTORY
Definition: udferr_usr.h:169
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
Definition: wdfrequest.h:639

Referenced by DispatchCreate().

◆ FdoPnp()

NTSTATUS NTAPI FdoPnp ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 508 of file fdo.c.

510{
516
517 DPRINT("FdoPnp()\n");
518
520 MinorFunction = Stack->MinorFunction;
521
522 switch (MinorFunction)
523 {
524 /* FIXME: do all these minor functions
525 IRP_MN_QUERY_REMOVE_DEVICE 0x1
526 IRP_MN_REMOVE_DEVICE 0x2
527 {
528 TRACE_(SERIAL, "IRP_MJ_PNP / IRP_MN_REMOVE_DEVICE\n");
529 IoAcquireRemoveLock
530 IoReleaseRemoveLockAndWait
531 pass request to DeviceExtension-LowerDriver
532 disable interface
533 IoDeleteDevice(Fdo) and/or IoDetachDevice
534 break;
535 }
536 IRP_MN_CANCEL_REMOVE_DEVICE 0x3
537 IRP_MN_STOP_DEVICE 0x4
538 IRP_MN_QUERY_STOP_DEVICE 0x5
539 IRP_MN_CANCEL_STOP_DEVICE 0x6
540 IRP_MN_QUERY_DEVICE_RELATIONS / BusRelations (optional) 0x7
541 IRP_MN_QUERY_DEVICE_RELATIONS / RemovalRelations (optional) 0x7
542 IRP_MN_QUERY_INTERFACE (optional) 0x8
543 IRP_MN_QUERY_CAPABILITIES (optional) 0x9
544 IRP_MN_FILTER_RESOURCE_REQUIREMENTS (optional) 0xd
545 IRP_MN_QUERY_PNP_DEVICE_STATE (optional) 0x14
546 IRP_MN_DEVICE_USAGE_NOTIFICATION (required or optional) 0x16
547 IRP_MN_SURPRISE_REMOVAL 0x17
548 */
549 case IRP_MN_START_DEVICE: /* 0x0 */
550 DPRINT("IRP_MJ_PNP / IRP_MN_START_DEVICE\n");
551
552 /* Call lower driver */
553 FdoExtension = DeviceObject->DeviceExtension;
555
556 ASSERT(FdoExtension->Common.PnpState == dsStopped);
557
558 if (IoForwardIrpSynchronously(FdoExtension->LowerDevice, Irp))
559 {
560 Status = Irp->IoStatus.Status;
561 if (NT_SUCCESS(Status))
562 {
564 Stack->Parameters.StartDevice.AllocatedResources,
565 Stack->Parameters.StartDevice.AllocatedResourcesTranslated);
566 }
567 }
568 break;
569
570 case IRP_MN_QUERY_DEVICE_RELATIONS: /* (optional) 0x7 */
571 switch (Stack->Parameters.QueryDeviceRelations.Type)
572 {
573 case BusRelations:
574 DPRINT("IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / BusRelations\n");
576 Irp->IoStatus.Status = Status;
578 return Status;
579
580 case RemovalRelations:
581 DPRINT("IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / RemovalRelations\n");
583
584 default:
585 DPRINT("IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / Unknown type 0x%lx\n",
586 Stack->Parameters.QueryDeviceRelations.Type);
588 }
589 break;
590
591 case IRP_MN_FILTER_RESOURCE_REQUIREMENTS: /* (optional) 0xd */
592 DPRINT("IRP_MJ_PNP / IRP_MN_FILTER_RESOURCE_REQUIREMENTS\n");
594
595 default:
596 DPRINT("Unknown minor function 0x%x\n", MinorFunction);
598 }
599
600 Irp->IoStatus.Information = Information;
601 Irp->IoStatus.Status = Status;
603
604 return Status;
605}
static NTSTATUS FdoStartDevice(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: fdo.c:393
static NTSTATUS FdoQueryBusRelations(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: fdo.c:208
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
@ FdoExtension
Definition: precomp.h:48
DRIVER_DISPATCH ForwardIrpAndForget
Definition: i8042prt.h:341
@ dsStopped
Definition: isapnp.h:30
#define ASSERT(a)
Definition: mode.c:44
BOOLEAN NTAPI IoForwardIrpSynchronously(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.c:1625
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132
_In_ UCHAR _In_ UCHAR MinorFunction
Definition: wdfdevice.h:1705
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
Definition: wdfrequest.h:1049
@ RemovalRelations
Definition: iotypes.h:2157
@ BusRelations
Definition: iotypes.h:2154
#define IRP_MN_START_DEVICE
#define IRP_MN_FILTER_RESOURCE_REQUIREMENTS
#define IRP_MN_QUERY_DEVICE_RELATIONS

Referenced by DispatchPnp().

◆ FdoPower()

NTSTATUS NTAPI FdoPower ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 610 of file fdo.c.

612{
613 PDEVICE_OBJECT LowerDevice;
614
615 DPRINT("FdoPower()\n");
616
617 LowerDevice = ((PFDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->LowerDevice;
620 return PoCallDriver(LowerDevice, Irp);
621}
#define IoSkipCurrentIrpStackLocation(Irp)
Definition: ntifs_ex.h:421
VOID NTAPI PoStartNextPowerIrp(IN PIRP Irp)
Definition: power.c:758

Referenced by DispatchPower().

◆ FdoRead()

NTSTATUS NTAPI FdoRead ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 480 of file fdo.c.

482{
483 DPRINT("FdoRead()\n");
484
485 Irp->IoStatus.Information = 0;
486 Irp->IoStatus.Status = STATUS_NOT_SUPPORTED;
489}
#define STATUS_NOT_SUPPORTED
Definition: d3dkmdt.h:48

Referenced by DispatchRead().

◆ FdoWrite()

NTSTATUS NTAPI FdoWrite ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 494 of file fdo.c.

496{
497 DPRINT("FdoWrite()\n");
498
499 Irp->IoStatus.Information = 0;
500 Irp->IoStatus.Status = STATUS_NOT_SUPPORTED;
503}

Referenced by DispatchWrite().

◆ GetUserBuffer()

PVOID GetUserBuffer ( IN PIRP  Irp)

Definition at line 33 of file misc.c.

34{
35 ASSERT(Irp);
36
37 if (Irp->MdlAddress)
38 return Irp->MdlAddress;
39 else
40 return Irp->AssociatedIrp.SystemBuffer;
41}

Referenced by PdoWrite().

◆ PdoCleanup()

NTSTATUS NTAPI PdoCleanup ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 69 of file pdo.c.

71{
72 DPRINT("PdoCleanup()\n");
73
74 Irp->IoStatus.Information = 0;
75 Irp->IoStatus.Status = STATUS_SUCCESS;
77 return STATUS_SUCCESS;
78}

Referenced by DispatchCleanup().

◆ PdoClose()

NTSTATUS NTAPI PdoClose ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 49 of file pdo.c.

51{
52 PPDO_DEVICE_EXTENSION pDeviceExtension;
53
54 DPRINT("PdoClose()\n");
55
56 pDeviceExtension = (PPDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
57 pDeviceExtension->OpenCount--;
58
59 Irp->IoStatus.Information = 0;
60 Irp->IoStatus.Status = STATUS_SUCCESS;
62
63 return STATUS_SUCCESS;
64}
struct _PDO_DEVICE_EXTENSION * PPDO_DEVICE_EXTENSION

Referenced by DispatchClose().

◆ PdoCreate()

NTSTATUS NTAPI PdoCreate ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 16 of file pdo.c.

18{
19 PPDO_DEVICE_EXTENSION DeviceExtension;
22
23 DPRINT("PdoCreate()\n");
24
26 DeviceExtension = (PPDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
27
28 if (Stack->Parameters.Create.Options & FILE_DIRECTORY_FILE)
29 {
30 DPRINT1("Not a directory\n");
32 goto done;
33 }
34
35 DPRINT("Open LPT%lu: successful\n", DeviceExtension->LptPort);
36 DeviceExtension->OpenCount++;
37
38done:
39 Irp->IoStatus.Status = Status;
40 Irp->IoStatus.Information = 0;
42
43 return Status;
44}

Referenced by DispatchCreate().

◆ PdoPnp()

NTSTATUS NTAPI PdoPnp ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 163 of file pdo.c.

165{
167 DPRINT("PdoPnp()\n");
168
169 Status = Irp->IoStatus.Status;
171 return Status;
172}

Referenced by DispatchPnp().

◆ PdoPower()

NTSTATUS NTAPI PdoPower ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 177 of file pdo.c.

179{
181 PIO_STACK_LOCATION IoStack;
182
183 DPRINT("PdoPower()\n");
184
186
187 switch (IoStack->MinorFunction)
188 {
189 case IRP_MN_SET_POWER:
191 Irp->IoStatus.Status = STATUS_SUCCESS;
192 break;
193 }
194
195 Status = Irp->IoStatus.Status;
198 return Status;
199}
#define IRP_MN_SET_POWER
#define IRP_MN_QUERY_POWER

Referenced by DispatchPower().

◆ PdoRead()

NTSTATUS NTAPI PdoRead ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 83 of file pdo.c.

85{
86 DPRINT("PdoRead()\n");
87
88 Irp->IoStatus.Information = 0;
89 Irp->IoStatus.Status = STATUS_SUCCESS;
91 return STATUS_SUCCESS;
92}

Referenced by DispatchRead().

◆ PdoWrite()

NTSTATUS NTAPI PdoWrite ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

Definition at line 97 of file pdo.c.

99{
100 PPDO_DEVICE_EXTENSION PdoDeviceExtension;
101 PFDO_DEVICE_EXTENSION FdoDeviceExtension;
102 PIO_STACK_LOCATION IoStack;
104 ULONG i;
106 ULONG ulCount;
107
108 DPRINT("PdoWrite()\n");
109
110 PdoDeviceExtension = (PPDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
111 FdoDeviceExtension = (PFDO_DEVICE_EXTENSION)PdoDeviceExtension->AttachedFdo->DeviceExtension;
112
114
116 DPRINT("Length: %lu\n", IoStack->Parameters.Write.Length);
117 DPRINT("Buffer: %p\n", Buffer);
118
119 for (i = 0; i < IoStack->Parameters.Write.Length; i++)
120 {
121 ulCount = 0;
122
123 do
124 {
126 PortStatus = READ_PORT_UCHAR(UlongToPtr(FdoDeviceExtension->BaseAddress + 1));
127 ulCount++;
128 }
129 while (ulCount < 500000 && !(PortStatus & LP_PBUSY));
130
131 if (ulCount == 500000)
132 {
133 DPRINT("Timed out\n");
134
135 Irp->IoStatus.Information = 0;
136 Irp->IoStatus.Status = STATUS_TIMEOUT;
138
139 return STATUS_TIMEOUT;
140 }
141
142 /* Write character */
143 WRITE_PORT_UCHAR(UlongToPtr(FdoDeviceExtension->BaseAddress), Buffer[i]);
144
146
147 WRITE_PORT_UCHAR(UlongToPtr(FdoDeviceExtension->BaseAddress + 2), (LP_PSELECP | LP_PINITP | LP_PSTROBE));
148
150
151 WRITE_PORT_UCHAR(UlongToPtr(FdoDeviceExtension->BaseAddress + 2), (LP_PSELECP | LP_PINITP));
152 }
153
154 Irp->IoStatus.Information = 0;
155 Irp->IoStatus.Status = STATUS_SUCCESS;
157 return STATUS_SUCCESS;
158}
Definition: bufpool.h:45
#define STATUS_TIMEOUT
Definition: d3dkmdt.h:49
#define LP_PBUSY
Definition: parallel.h:101
#define LP_PINITP
Definition: parallel.h:114
#define LP_PSTROBE
Definition: parallel.h:116
#define LP_PSELECP
Definition: parallel.h:113
PVOID GetUserBuffer(IN PIRP Irp)
Definition: misc.c:33
#define UlongToPtr(u)
Definition: config.h:106
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT PortStatus
Definition: hubbusif.h:42
#define KeStallExecutionProcessor(MicroSeconds)
Definition: precomp.h:27
#define READ_PORT_UCHAR(p)
Definition: pc98vid.h:22
#define WRITE_PORT_UCHAR(p, d)
Definition: pc98vid.h:21
PVOID DeviceExtension
Definition: env_spec_w32.h:418
struct _IO_STACK_LOCATION::@4278::@4283 Write
union _IO_STACK_LOCATION::@1694 Parameters
PDEVICE_OBJECT AttachedFdo
Definition: parport.h:56
unsigned char * PUCHAR
Definition: typedefs.h:53
unsigned char UCHAR
Definition: xmlstorage.h:181

Referenced by DispatchWrite().

Variable Documentation

◆ AddDevice

◆ ForwardIrpAndForget

DRIVER_DISPATCH ForwardIrpAndForget

Definition at line 109 of file parport.h.