?? hellowdm.h
字號(hào):
#ifdef __cplusplus
extern "C"
{
#endif
#include <wdm.h>
#include <ntddser.h>
#ifdef __cplusplus
}
#endif
#define COMBUFLEN 50000
typedef struct _DEVICE_EXTENSION
{
PDEVICE_OBJECT fdo;
PDEVICE_OBJECT NextStackDevice;
UNICODE_STRING ustrDeviceName; // 設(shè)備名
UNICODE_STRING ustrSymLinkName; // 符號(hào)鏈接名
KSPIN_LOCK IoctlSpinLock;
KSPIN_LOCK WriteSpinLock;
ULONG EventMask;
ULONG HistoryEvents;
ULONG BaudRate;
ULONG RTSstate;
ULONG DTRstate;
SERIAL_TIMEOUTS Timeouts;
SERIAL_LINE_CONTROL Lc;
CHAR Buffer[COMBUFLEN];
struct _SERIAL_DEVICE_EXTENSION* pOther;
PIRP pWaitIrp;
PIRP pReadIrp;
int IsOpen;
ULONG uReadWrite;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;
#define PAGEDCODE code_seg("PAGE")
#define LOCKEDCODE code_seg()
#define INITCODE code_seg("INIT")
#define PAGEDDATA data_seg("PAGE")
#define LOCKEDDATA data_seg()
#define INITDATA data_seg("INIT")
#define arraysize(p) (sizeof(p)/sizeof((p)[0]))
NTSTATUS HelloWDMAddDevice(IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT PhysicalDeviceObject);
NTSTATUS HelloWDMPnp(IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
NTSTATUS HelloWDMDispatchRoutine(IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
NTSTATUS HelloWDMDispatchControlp(IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
NTSTATUS HelloWDMCreate(IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
void HelloWDMUnload(IN PDRIVER_OBJECT DriverObject);
extern "C"
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath);
NTSTATUS HelloWDMClose(IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
NTSTATUS HelloWDMRead(IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
NTSTATUS HelloWDMWrite(IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -