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

📄 dvkrnldata.h

📁 该代码为我学习winnt内核时所写
💻 H
字号:
// dvKrnlData.h
//
// Generated by C DriverWizard 3.2.0 (Build 2485)
// Requires DDK Only
// File created on 9/12/2006
//
#ifndef __DVKRNLDATA_H__
#define __DVKRNLDATA_H__

// Memory allocation pool tag
#define DVKRNLDATA_POOL_TAG 'rKvd'

// Make all pool allocations tagged
#undef ExAllocatePool
#define ExAllocatePool(type, size) \
    ExAllocatePoolWithTag(type, size, DVKRNLDATA_POOL_TAG);

// global (per driver) data block
typedef struct _DVKRNLDATA_DATA
{
    UNICODE_STRING      RegistryPath;
} DVKRNLDATA_DATA, *PDVKRNLDATA_DATA;

extern DVKRNLDATA_DATA g_Data;

// The device extension for the device object
typedef struct _DVKRNLDATA_DEVICE_EXTENSION
{
    PDEVICE_OBJECT          DeviceObject;
    LONG                    OpenHandleCount;
} DVKRNLDATA_DEVICE_EXTENSION, *PDVKRNLDATA_DEVICE_EXTENSION;

#ifdef __cplusplus
extern "C" {
#endif

// prototype for DriverEntry function
NTSTATUS __stdcall DriverEntry(
    IN  PDRIVER_OBJECT  DriverObject,
    IN  PUNICODE_STRING RegistryPath
    );

VOID __stdcall dvKrnlDataUnload(
    IN  PDRIVER_OBJECT  DriverObject
    );

NTSTATUS __stdcall dvKrnlDataDeviceIoControlDispatch(
    IN  PDEVICE_OBJECT  DeviceObject,
    IN  PIRP            Irp
    );

NTSTATUS __stdcall dvKrnlDataCreateDispatch(
    IN  PDEVICE_OBJECT  DeviceObject,
    IN  PIRP            Irp
    );

NTSTATUS __stdcall dvKrnlDataCloseDispatch(
    IN  PDEVICE_OBJECT  DeviceObject,
    IN  PIRP            Irp
    );

NTSTATUS __stdcall dvKrnlDataReadDispatch(
    IN  PDEVICE_OBJECT  DeviceObject,
    IN  PIRP            Irp
    );

NTSTATUS __stdcall dvKrnlDataWriteDispatch(
    IN  PDEVICE_OBJECT  DeviceObject,
    IN  PIRP            Irp
    );

NTSTATUS __stdcall dvKrnlDataShutdownDispatch(
    IN  PDEVICE_OBJECT  DeviceObject,
    IN  PIRP            Irp
    );

NTSTATUS __stdcall dvKrnlDataReadMem(
    IN  PDVKRNLDATA_DEVICE_EXTENSION pDeviceCtx,
    IN  PVOID   pInput,
    IN  DWORD   dwInput,
    OUT PVOID   pOutput,
    IN  DWORD   dwOutput,
    OUT PDWORD  pdwOutLen
    );

NTSTATUS __stdcall dvKrnlDataGetIDT(
    IN  PDVKRNLDATA_DEVICE_EXTENSION pDeviceCtx,
    OUT PVOID   pOutput,
    IN  DWORD   dwOutput,
    OUT PDWORD  pdwOutLen
    );

NTSTATUS __stdcall dvKrnlDataGetSST(
    IN  PDVKRNLDATA_DEVICE_EXTENSION pDeviceCtx,
    OUT PVOID   pOutput,
    IN  DWORD   dwOutput,
    OUT PDWORD  pdwOutLen
    );

NTSTATUS __stdcall dvKrnlDataGetPhysical(
    IN  PDVKRNLDATA_DEVICE_EXTENSION pDeviceCtx,
    IN  PVOID   pInput,
    IN  DWORD   dwInput,
    OUT PVOID   pOutput,
    IN  DWORD   dwOutput,
    OUT PDWORD  pdwOutLen
    );

NTSTATUS __stdcall dvKrnlDataHideProc(
    IN  PDVKRNLDATA_DEVICE_EXTENSION pDeviceCtx,
    IN  PVOID   pInput,
    IN  DWORD   dwInput
    );

#ifdef __cplusplus
}
#endif

///////////////////////////////////////////////////////////////////////////////////////////////////
// Debug
///////////////////////////////////////////////////////////////////////////////////////////////////

// definition of debug levels

#define DBG_NONE            0
#define DBG_ERR             1
#define DBG_WARN            2
#define DBG_TRACE           3
#define DBG_INFO            4
#define DBG_VERB            5

// definition of debug areas

#define DBG_GENERAL         (1 << 0)
#define DBG_PNP             (1 << 1)
#define DBG_POWER           (1 << 2)
#define DBG_COUNT           (1 << 3)
#define DBG_CREATECLOSE     (1 << 4)
#define DBG_WMI             (1 << 5)
#define DBG_UNLOAD          (1 << 6)
#define DBG_IO              (1 << 7)
#define DBG_INIT            (1 << 8)

#define DBG_ALL             0xFFFFFFFF

#if DBG

VOID dvKrnlDataDebugPrint(
    IN ULONG    Area,
    IN ULONG    Level,
    IN PCCHAR   Format,
    IN          ...
    );

VOID dvKrnlDataDumpIrp(
    IN PIRP Irp
    );

PCHAR IrpMajorFunctionString(
    IN  UCHAR MajorFunction
    );

PCHAR PnPMinorFunctionString(
    IN  UCHAR   MinorFunction
    );

PCHAR PowerMinorFunctionString(
    IN  UCHAR   MinorFunction
    );

PCHAR SystemPowerStateString(
    IN  SYSTEM_POWER_STATE  SystemState
    );

PCHAR DevicePowerStateString(
    IN  DEVICE_POWER_STATE  DeviceState
    );

PCHAR WMIMinorFunctionString (
    IN  UCHAR MinorFunction
    );

#else	// !DBG

__inline VOID dvKrnlDataDebugPrint(
    IN ULONG    Area,
    IN ULONG    Level,
    IN PCCHAR   Format,
    IN          ...
    )
{
}

#define dvKrnlDataDumpIrp(Irp)
#define IrpMajorFunctionString(MajorFunction)
#define PnPMinorFunctionString(MinorFunction)
#define PowerMinorFunctionString(MinorFunction)
#define SystemPowerStateString(SystemState) 0
#define DevicePowerStateString(DeviceState) 0
#define WMIMinorFunctionString(MinorFunction)
#define dvKrnlDataTdiDumpAddress(Address)

#endif	// DBG

#endif  // __DVKRNLDATA_H__

⌨️ 快捷键说明

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