📄 demodriver.h
字号:
//**************************************************************************************************//
//* *//
//* Copyright (C) 2003, James Antognini, antognini@mindspring.com. *//
//* *//
//**************************************************************************************************//
#define JADrvNm "DemoDriver"
#define JADrvNmW L"DemoDriver"
#ifdef JADriverKernelMode
#ifdef __cplusplus // C++ conversion
extern "C"
{
#endif
// Print macro that turns on only when debugging is on.
#if DBG
#define DbgPrint(arg) DbgPrint arg
#else
#define DbgPrint(arg)
#endif
#ifdef __cplusplus // C++ conversion
}
#endif
//***************************************************************************//
// //
// Prototypes. //
// //
//***************************************************************************//
#ifdef __cplusplus // C++ conversion
extern "C"
{
#endif
NTSTATUS
DemoDrvDispatch2(
IN PDEVICE_OBJECT,
IN PIRP
);
NTSTATUS
DemoDrvDispatchAny(
IN PDEVICE_OBJECT,
IN PIRP
);
VOID
DemoDrvUnload(IN PDRIVER_OBJECT);
int
DemoDrvTechnique(
IN PDEVICE_OBJECT,
IN PIRP,
IN PVOID,
IN ULONG,
IN PVOID,
IN ULONG
);
#ifdef __cplusplus // C++ conversion
}
#endif
//***************************************************************************//
// //
// Globals. //
// //
//***************************************************************************//
#ifdef _DemoDriverPart1 // Expand only if first piece of driver.
PDRIVER_OBJECT pMstrJADrvObj = NULL;
PDEVICE_OBJECT pJAMstrDevObj = NULL; // "Master" device object, created in DriverEntry.
#endif
typedef struct // Device extension.
{
ULONG ulOpen; // OPENs against device.
PDEVICE_OBJECT pMstrDevObj;
PDEVICE_OBJECT pPhysDevObj;
UNICODE_STRING JAUniSymLinkName;
UNICODE_STRING JAUniDeviceName;
UNICODE_STRING JARegPath;
ANSI_STRING DriverName;
} DemoDrvExtension,
* pDemoDrvExtension;
extern pDemoDrvExtension pMstrDevExt;
#endif // end if defined JADriverKernelMode.
#define FILE_DEVICE_DemoDrv 0x00008500
#define DemoDrv_TEST (ULONG) CTL_CODE(FILE_DEVICE_DemoDrv, \
0x01, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS \
)
#define DemoDrv_TEST2 (ULONG) CTL_CODE(FILE_DEVICE_DemoDrv, \
0x02, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS \
)
typedef struct _DemoDrvTestStr
{
ULONG x1;
ULONG x2;
ULONG x3;
}
DemoDrvTestStr,
*pDemoDrvTestStr;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -