⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gg.h

📁 书中的主要程序文件。在打开例题的.dsw文件后,请读者在 tools菜单下的 Options 的 Directories 标签中选择 Executable files
💻 H
📖 第 1 页 / 共 2 页
字号:
NTSTATUS
SerialMouseInternalDeviceControl(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    );

NTSTATUS
SerialMouseAddDevice (
    IN PDRIVER_OBJECT   Driver,
    IN PDEVICE_OBJECT   PDO
    );

NTSTATUS
SerialMouseCreate(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    );

NTSTATUS
SerialMouseClose(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    );

NTSTATUS
SerialMousePnP(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    );

NTSTATUS
SerialMousePower(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    );

VOID
SerialGGemoveDevice(
    PDEVICE_EXTENSION DeviceExtension,
    PIRP Irp
    );

NTSTATUS
SerialMouseSystemControl(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    );

VOID
SerialMouseUnload(
    IN PDRIVER_OBJECT DriverObject
    );

NTSTATUS
SerialMouseInitializeHardware(
    IN PDEVICE_EXTENSION DeviceExtension
    );

VOID
SerialMouseGetDebugFlags(
    IN PUNICODE_STRING RegPath
    );

VOID
SerialMouseServiceParameters(
    IN PDEVICE_EXTENSION DeviceExtension,
    IN HANDLE            Handle
    );

NTSTATUS
SerialMouseInitializePort(
    PDEVICE_EXTENSION DeviceExtension
    );

VOID
SerialGGestorePort(
    PDEVICE_EXTENSION DeviceExtension
    );

NTSTATUS
SerialMouseSetReadTimeouts(
    PDEVICE_EXTENSION DeviceExtension,
    ULONG               Timeout
    );

NTSTATUS
SerialMousepIoSyncIoctl(
    BOOLEAN          Internal,
	ULONG            Ioctl,
	PDEVICE_OBJECT   DeviceObject, 
	PKEVENT          Event,
	PIO_STATUS_BLOCK Iosb
    );

/*--
NTSTATUS
SerialMouseIoSyncIoctl(
	ULONG            Ioctl,
	PDEVICE_OBJECT   DeviceObject, 
	PKEVENT          Event,
	PIO_STATUS_BLOCK Iosb
    );
  ++*/
#define SerialMouseIoSyncIoctl(Ioctl, DeviceObject, Event, Iosb)  \
        SerialMousepIoSyncIoctl(FALSE, Ioctl, DeviceObject, Event, Iosb)

/*--
NTSTATUS
SerialMouseIoSyncInteralIoctl(
	ULONG            Ioctl,
	PDEVICE_OBJECT   DeviceObject, 
	PKEVENT          Event,
	PIO_STATUS_BLOCK Iosb
    );
  ++*/
#define SerialMouseIoSyncInternalIoctl(Ioctl, DeviceObject, Event, Iosb) \
        SerialMousepIoSyncIoctl(TRUE, Ioctl, DeviceObject, Event, Iosb)                                   


NTSTATUS
SerialMousepIoSyncIoctlEx(
    BOOLEAN          Internal,
	ULONG            Ioctl,                     // io control code
    PDEVICE_OBJECT   DeviceObject,              // object to call
	PKEVENT          Event,                     // event to wait on
	PIO_STATUS_BLOCK Iosb,                      // used inside IRP
	PVOID            InBuffer,    OPTIONAL      // input buffer
	ULONG            InBufferLen, OPTIONAL      // input buffer length
	PVOID            OutBuffer,   OPTIONAL      // output buffer 
	ULONG            OutBufferLen OPTIONAL      // output buffer length 
    );

/*--
NTSTATUS
SerialMouseIoSyncIoctlEx(
	ULONG            Ioctl,                     // io control code
    PDEVICE_OBJECT   DeviceObject,              // object to call
	PKEVENT          Event,                     // event to wait on
	PIO_STATUS_BLOCK Iosb,                      // used inside IRP
	PVOID            InBuffer,    OPTIONAL      // input buffer
	ULONG            InBufferLen, OPTIONAL      // input buffer length
	PVOID            OutBuffer,   OPTIONAL      // output buffer 
	ULONG            OutBufferLen OPTIONAL      // output buffer length 
    );
  ++*/
#define SerialMouseIoSyncIoctlEx(Ioctl, DeviceObject, Event, Iosb,           \
                                 InBuffer, InBufferLen, OutBuffer,           \
                                 OutBufferLen)                               \
        SerialMousepIoSyncIoctlEx(FALSE, Ioctl, DeviceObject, Event, Iosb,   \
                                  InBuffer, InBufferLen, OutBuffer,          \
                                  OutBufferLen)                           

/*--
NTSTATUS
SerialMouseIoSyncInternalIoctlEx(
	ULONG            Ioctl,                     // io control code
    PDEVICE_OBJECT   DeviceObject,              // object to call
	PKEVENT          Event,                     // event to wait on
	PIO_STATUS_BLOCK Iosb,                      // used inside IRP
	PVOID            InBuffer,    OPTIONAL      // input buffer
	ULONG            InBufferLen, OPTIONAL      // input buffer length
	PVOID            OutBuffer,   OPTIONAL      // output buffer 
	ULONG            OutBufferLen OPTIONAL      // output buffer length 
    );
  ++*/
#define SerialMouseIoSyncInternalIoctlEx(Ioctl, DeviceObject, Event, Iosb,  \
                                         InBuffer, InBufferLen, OutBuffer,  \
                                         OutBufferLen)                      \
        SerialMousepIoSyncIoctlEx(TRUE, Ioctl, DeviceObject, Event, Iosb,   \
                                  InBuffer, InBufferLen, OutBuffer,         \
                                  OutBufferLen)                           

NTSTATUS
SerialGGeadSerialPort (
    PDEVICE_EXTENSION	DeviceExtension,
	PCHAR 				ReadBuffer,
	USHORT 				Buflen,
	PUSHORT 			ActualBytesRead
	);

NTSTATUS
SerialMouseWriteSerialPort (
    PDEVICE_EXTENSION   DeviceExtension,
    PCHAR               WriteBuffer,
    ULONG               NumBytes,
    PIO_STATUS_BLOCK    IoStatusBlock
    );

NTSTATUS
SerialMouseWait (
    IN PDEVICE_EXTENSION    DeviceExtension,
    IN LONG                 Timeout
    );

NTSTATUS
SerialGGeadComplete (
    IN PDEVICE_OBJECT       DeviceObject,
    IN PIRP                 Irp,
    IN PDEVICE_EXTENSION    DeviceExtension  
    );

NTSTATUS
SerialMouseStartRead (
    IN PDEVICE_EXTENSION DeviceExtension
    );

//
// ioctl.c and SerialMouse definitions
//
    
//
// Function prototypes
//

NTSTATUS
SerialMouseSetFifo(
    PDEVICE_EXTENSION DeviceExtension,
    UCHAR             Value
    );

NTSTATUS
SerialMouseGetLineCtrl(
    PDEVICE_EXTENSION       DeviceExtension,
    PSERIAL_LINE_CONTROL    SerialLineControl
    );

NTSTATUS
SerialMouseSetLineCtrl(
    PDEVICE_EXTENSION       DeviceExtension,
    PSERIAL_LINE_CONTROL    SerialLineControl
    );

NTSTATUS
SerialMouseGetModemCtrl(
    PDEVICE_EXTENSION DeviceExtension,
    PULONG            ModemCtrl
    );

NTSTATUS
SerialMouseSetModemCtrl(
    PDEVICE_EXTENSION DeviceExtension,
    ULONG             Value,
    PULONG            OldValue          OPTIONAL
    );

NTSTATUS
SerialMouseGetBaudRate(
    PDEVICE_EXTENSION DeviceExtension,
    PULONG            BaudRate
    );

NTSTATUS
SerialMouseSetBaudRate(
    PDEVICE_EXTENSION DeviceExtension,
    ULONG             BaudRate
    );

NTSTATUS
SerialGGeadChar(
    PDEVICE_EXTENSION   DeviceExtension,
    PUCHAR              Value
    );

NTSTATUS
SerialMouseFlushReadBuffer(
    PDEVICE_EXTENSION   DeviceExtension 
    );

NTSTATUS
SerialMouseWriteChar(
    PDEVICE_EXTENSION   DeviceExtension,
    UCHAR Value
    );

NTSTATUS
SerialMouseWriteString(
    PDEVICE_EXTENSION   DeviceExtension,
    PSZ Buffer
    );

NTSTATUS
SerialMouseSetWmiDataItem(
    IN PDEVICE_OBJECT   DeviceObject,
    IN PIRP             Irp,
    IN ULONG            GuidIndex,
    IN ULONG            InstanceIndex,
    IN ULONG            DataItemId,
    IN ULONG            BufferSize,
    IN PUCHAR           Buffer
    );

NTSTATUS
SerialMouseSetWmiDataBlock(
    IN PDEVICE_OBJECT   DeviceObject,
    IN PIRP             Irp,
    IN ULONG            GuidIndex,
    IN ULONG            InstanceIndex,
    IN ULONG            BufferSize,
    IN PUCHAR           Buffer
    );

NTSTATUS
SerialMouseQueryWmiDataBlock(
    IN PDEVICE_OBJECT   DeviceObject,
    IN PIRP             Irp,
    IN ULONG            GuidIndex,
    IN ULONG            InstanceIndex,
    IN ULONG            InstanceCount,
    IN OUT PULONG       InstanceLengthArray,
    IN ULONG            BufferAvail,
    OUT PUCHAR          Buffer
    );

NTSTATUS
SerialMouseQueryWmiRegInfo(
    IN PDEVICE_OBJECT   DeviceObject,
    OUT PULONG          RegFlags,
    OUT PUNICODE_STRING InstanceName,
    OUT PUNICODE_STRING *RegistryPath,
    OUT PUNICODE_STRING MofResourceName,
    OUT PDEVICE_OBJECT  *Pdo
    );


extern WMIGUIDREGINFO WmiGuidList[1];

#endif // _GG_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -