ReactOS 0.4.16-dev-106-g10b08aa
parport.h File Reference
#include <ntddk.h>
#include <ndk/haltypes.h>
#include <ntddpar.h>
#include <stdio.h>
#include "hardware.h"
#include <debug.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 68 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 21 of file parport.h.

22{
DEVICE_STATE
Definition: parport.h:22
@ dsSurpriseRemoved
Definition: parport.h:27
@ dsStopped
Definition: parport.h:23
@ dsPaused
Definition: parport.h:25
@ dsStarted
Definition: parport.h:24
@ dsRemoved
Definition: parport.h:26

Function Documentation

◆ FdoCleanup()

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

Definition at line 462 of file fdo.c.

464{
465 DPRINT("FdoCleanup()\n");
466
467 Irp->IoStatus.Information = 0;
468 Irp->IoStatus.Status = STATUS_SUCCESS;
470
471 return STATUS_SUCCESS;
472}
_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 442 of file fdo.c.

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

Referenced by DispatchClose().

◆ FdoCreate()

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

Definition at line 409 of file fdo.c.

411{
412 PFDO_DEVICE_EXTENSION DeviceExtension;
415
416 DPRINT("FdoCreate()\n");
417
419 DeviceExtension = (PFDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
420
421 if (Stack->Parameters.Create.Options & FILE_DIRECTORY_FILE)
422 {
423 DPRINT1("Not a directory\n");
425 goto done;
426 }
427
428 DPRINT("Open parallel port %lu: successful\n", DeviceExtension->PortNumber);
429 DeviceExtension->OpenCount++;
430
431done:
432 Irp->IoStatus.Status = Status;
433 Irp->IoStatus.Information = 0;
435
436 return Status;
437}
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 505 of file fdo.c.

507{
513
514 DPRINT("FdoPnp()\n");
515
517 MinorFunction = Stack->MinorFunction;
518
519 switch (MinorFunction)
520 {
521 /* FIXME: do all these minor functions
522 IRP_MN_QUERY_REMOVE_DEVICE 0x1
523 IRP_MN_REMOVE_DEVICE 0x2
524 {
525 TRACE_(SERIAL, "IRP_MJ_PNP / IRP_MN_REMOVE_DEVICE\n");
526 IoAcquireRemoveLock
527 IoReleaseRemoveLockAndWait
528 pass request to DeviceExtension-LowerDriver
529 disable interface
530 IoDeleteDevice(Fdo) and/or IoDetachDevice
531 break;
532 }
533 IRP_MN_CANCEL_REMOVE_DEVICE 0x3
534 IRP_MN_STOP_DEVICE 0x4
535 IRP_MN_QUERY_STOP_DEVICE 0x5
536 IRP_MN_CANCEL_STOP_DEVICE 0x6
537 IRP_MN_QUERY_DEVICE_RELATIONS / BusRelations (optional) 0x7
538 IRP_MN_QUERY_DEVICE_RELATIONS / RemovalRelations (optional) 0x7
539 IRP_MN_QUERY_INTERFACE (optional) 0x8
540 IRP_MN_QUERY_CAPABILITIES (optional) 0x9
541 IRP_MN_FILTER_RESOURCE_REQUIREMENTS (optional) 0xd
542 IRP_MN_QUERY_PNP_DEVICE_STATE (optional) 0x14
543 IRP_MN_DEVICE_USAGE_NOTIFICATION (required or optional) 0x16
544 IRP_MN_SURPRISE_REMOVAL 0x17
545 */
546 case IRP_MN_START_DEVICE: /* 0x0 */
547 DPRINT("IRP_MJ_PNP / IRP_MN_START_DEVICE\n");
548
549 /* Call lower driver */
550 FdoExtension = DeviceObject->DeviceExtension;
552
553 ASSERT(FdoExtension->Common.PnpState == dsStopped);
554
555 if (IoForwardIrpSynchronously(FdoExtension->LowerDevice, Irp))
556 {
557 Status = Irp->IoStatus.Status;
558 if (NT_SUCCESS(Status))
559 {
561 Stack->Parameters.StartDevice.AllocatedResources,
562 Stack->Parameters.StartDevice.AllocatedResourcesTranslated);
563 }
564 }
565 break;
566
567 case IRP_MN_QUERY_DEVICE_RELATIONS: /* (optional) 0x7 */
568 switch (Stack->Parameters.QueryDeviceRelations.Type)
569 {
570 case BusRelations:
571 DPRINT("IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / BusRelations\n");
573 Irp->IoStatus.Status = Status;
575 return Status;
576
577 case RemovalRelations:
578 DPRINT("IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / RemovalRelations\n");
580
581 default:
582 DPRINT("IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / Unknown type 0x%lx\n",
583 Stack->Parameters.QueryDeviceRelations.Type);
585 }
586 break;
587
588 case IRP_MN_FILTER_RESOURCE_REQUIREMENTS: /* (optional) 0xd */
589 DPRINT("IRP_MJ_PNP / IRP_MN_FILTER_RESOURCE_REQUIREMENTS\n");
591
592 default:
593 DPRINT("Unknown minor function 0x%x\n", MinorFunction);
595 }
596
597 Irp->IoStatus.Information = Information;
598 Irp->IoStatus.Status = Status;
600
601 return Status;
602}
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:1699
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
Definition: wdfrequest.h:1049
@ RemovalRelations
Definition: iotypes.h:2155
@ BusRelations
Definition: iotypes.h:2152
#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 607 of file fdo.c.

609{
610 PDEVICE_OBJECT LowerDevice;
611
612 DPRINT("FdoPower()\n");
613
614 LowerDevice = ((PFDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->LowerDevice;
617 return PoCallDriver(LowerDevice, Irp);
618}
#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 477 of file fdo.c.

479{
480 DPRINT("FdoRead()\n");
481
482 Irp->IoStatus.Information = 0;
483 Irp->IoStatus.Status = STATUS_NOT_SUPPORTED;
486}
#define STATUS_NOT_SUPPORTED
Definition: ntstatus.h:423

Referenced by DispatchRead().

◆ FdoWrite()

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

Definition at line 491 of file fdo.c.

493{
494 DPRINT("FdoWrite()\n");
495
496 Irp->IoStatus.Information = 0;
497 Irp->IoStatus.Status = STATUS_NOT_SUPPORTED;
500}

Referenced by DispatchWrite().

◆ GetUserBuffer()

PVOID GetUserBuffer ( IN PIRP  Irp)

Definition at line 32 of file misc.c.

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

Referenced by PdoWrite().

◆ PdoCleanup()

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

Definition at line 67 of file pdo.c.

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

Referenced by DispatchCleanup().

◆ PdoClose()

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

Definition at line 47 of file pdo.c.

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

Referenced by DispatchClose().

◆ PdoCreate()

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

Definition at line 14 of file pdo.c.

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

Referenced by DispatchCreate().

◆ PdoPnp()

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

Definition at line 161 of file pdo.c.

163{
165 DPRINT("PdoPnp()\n");
166
167 Status = Irp->IoStatus.Status;
169 return Status;
170}

Referenced by DispatchPnp().

◆ PdoPower()

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

Definition at line 175 of file pdo.c.

177{
179 PIO_STACK_LOCATION IoStack;
180
181 DPRINT("PdoPower()\n");
182
184
185 switch (IoStack->MinorFunction)
186 {
187 case IRP_MN_SET_POWER:
189 Irp->IoStatus.Status = STATUS_SUCCESS;
190 break;
191 }
192
193 Status = Irp->IoStatus.Status;
196 return Status;
197}
#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 81 of file pdo.c.

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

Referenced by DispatchRead().

◆ PdoWrite()

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

Definition at line 95 of file pdo.c.

97{
98 PPDO_DEVICE_EXTENSION PdoDeviceExtension;
99 PFDO_DEVICE_EXTENSION FdoDeviceExtension;
100 PIO_STACK_LOCATION IoStack;
102 ULONG i;
104 ULONG ulCount;
105
106 DPRINT("PdoWrite()\n");
107
108 PdoDeviceExtension = (PPDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
109 FdoDeviceExtension = (PFDO_DEVICE_EXTENSION)PdoDeviceExtension->AttachedFdo->DeviceExtension;
110
112
114 DPRINT("Length: %lu\n", IoStack->Parameters.Write.Length);
115 DPRINT("Buffer: %p\n", Buffer);
116
117 for (i = 0; i < IoStack->Parameters.Write.Length; i++)
118 {
119 ulCount = 0;
120
121 do
122 {
124 PortStatus = READ_PORT_UCHAR(UlongToPtr(FdoDeviceExtension->BaseAddress + 1));
125 ulCount++;
126 }
127 while (ulCount < 500000 && !(PortStatus & LP_PBUSY));
128
129 if (ulCount == 500000)
130 {
131 DPRINT("Timed out\n");
132
133 Irp->IoStatus.Information = 0;
134 Irp->IoStatus.Status = STATUS_TIMEOUT;
136
137 return STATUS_TIMEOUT;
138 }
139
140 /* Write character */
141 WRITE_PORT_UCHAR(UlongToPtr(FdoDeviceExtension->BaseAddress), Buffer[i]);
142
144
145 WRITE_PORT_UCHAR(UlongToPtr(FdoDeviceExtension->BaseAddress + 2), (LP_PSELECP | LP_PINITP | LP_PSTROBE));
146
148
149 WRITE_PORT_UCHAR(UlongToPtr(FdoDeviceExtension->BaseAddress + 2), (LP_PSELECP | LP_PINITP));
150 }
151
152 Irp->IoStatus.Information = 0;
153 Irp->IoStatus.Status = STATUS_SUCCESS;
155 return STATUS_SUCCESS;
156}
Definition: bufpool.h:45
#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:32
#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 STATUS_TIMEOUT
Definition: ntstatus.h:81
#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::@3974::@3979 Write
union _IO_STACK_LOCATION::@1575 Parameters
PDEVICE_OBJECT AttachedFdo
Definition: parport.h:59
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 112 of file parport.h.