demodriver.h
来自「撰写windows驱动须知(Essentials Of Building Win」· C头文件 代码 · 共 120 行
H
120 行
//**************************************************************************************************//
//* *//
//* 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 + =
减小字号Ctrl + -
显示快捷键?