📄 hellowdm.h
字号:
//
//Created by
//Tsinghua University E.E. Tanzhangxi(xtan) 1999.9.7
//
#ifndef HELLOWDM_H
#define HELLOWDM_H
#ifdef __cplusplus
extern "C" {
#endif
#include <wdm.h>
#ifdef __cplusplus
} // extern "C"
#endif
#define arraysize(p) (sizeof(p)/sizeof((p)[0]))
typedef struct tagDEVICE_EXTENSION {
PDEVICE_OBJECT DeviceObject;
PDEVICE_OBJECT LowerDeviceObject;
UNICODE_STRING ifname;
LONG usage;
KEVENT evRemove;
PULONG idle;
BOOLEAN started;
BOOLEAN enabled;
BOOLEAN iospace;
BOOLEAN mappedport;
BOOLEAN removing;
DEVICE_POWER_STATE power;
ULONG nports;
PUCHAR base;
PKINTERRUPT InterruptObject;
PUCHAR buffer;
ULONG nbytes;
ULONG numxfer;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;
#define SIMPLE_IDLE_CONSERVATION 30
#define SIMPLE_IDLE_PERFORMANCE 600
NTSTATUS CompleteRequest(IN PIRP Irp, IN NTSTATUS status, IN ULONG info);
NTSTATUS ForwardAndWait(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
BOOLEAN LockDevice(IN PDEVICE_EXTENSION pdx);
BOOLEAN LockDevice(IN PDEVICE_OBJECT fdo);
NTSTATUS OnRequestComplete(IN PDEVICE_OBJECT fdo, IN PIRP Irp, IN PKEVENT pev);
NTSTATUS StartDevice(PDEVICE_OBJECT fdo, PCM_PARTIAL_RESOURCE_LIST list);
VOID RemoveDevice(IN PDEVICE_OBJECT fdo);
VOID StopDevice(PDEVICE_OBJECT fdo);
VOID StartIo(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
VOID OnCancelActiveIrp(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
void UnlockDevice(IN PDEVICE_EXTENSION pdx);
void UnlockDevice(IN PDEVICE_OBJECT fdo);
// I/O request handlers
NTSTATUS RequestCreate(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
NTSTATUS RequestClose(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
NTSTATUS RequestControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
NTSTATUS RequestPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
NTSTATUS AddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT pdo);
VOID DriverUnload(IN PDRIVER_OBJECT fdo);
NTSTATUS DefaultPnpHandler(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
NTSTATUS HandleRemoveDevice(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
NTSTATUS HandleStartDevice(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
NTSTATUS HandleStopDevice(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
// {3d93c5c0-0085-11d1-821e-0080c88327ab}
#ifndef FAR
#define FAR
#endif
DEFINE_GUID(GUID_HELLOWDM, 0x3d93c5c0, 0x0085, 0x11d1, 0x82, 0x1e, 0x00,
0x80, 0xc8, 0x83, 0x27, 0xab);
#endif // HELLOWDM_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -