📄 charsample.h
字号:
VOID CharSamplePendingIoCancelRoutine(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS CharSampleIncrementIoCount(
IN PCHARSAMPLE_IO_LOCK IoLock
);
VOID CharSampleDecrementIoCount(
IN PCHARSAMPLE_IO_LOCK IoLock
);
VOID CharSampleLockIo(
IN PCHARSAMPLE_IO_LOCK IoLock
);
VOID CharSampleWaitForStopIo(
IN PCHARSAMPLE_IO_LOCK IoLock
);
VOID CharSampleUnlockIo(
IN PCHARSAMPLE_IO_LOCK IoLock
);
VOID CharSampleFlushPendingIo(
IN PCHARSAMPLE_IO_LOCK IoLock,
IN PFILE_OBJECT FileObject
);
VOID CharSampleInvalidateIo(
IN PCHARSAMPLE_IO_LOCK IoLock,
IN NTSTATUS ErrorStatus
);
#ifdef __cplusplus
}
#endif
BOOLEAN CharSampleIsStoppable(
IN PCHARSAMPLE_DEVICE_EXTENSION DeviceExtension
);
BOOLEAN CharSampleIsRemovable(
IN PCHARSAMPLE_DEVICE_EXTENSION DeviceExtension
);
BOOLEAN CharSampleAcquireRemoveLock(
IN PCHARSAMPLE_DEVICE_EXTENSION DeviceExtension
);
VOID CharSampleReleaseRemoveLock(
IN PCHARSAMPLE_DEVICE_EXTENSION DeviceExtension
);
VOID CharSampleWaitForSafeRemove(
IN PCHARSAMPLE_DEVICE_EXTENSION DeviceExtension
);
NTSTATUS CharSampleSubmitIrpSync(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
VOID CharSampleStallQueues(
IN PCHARSAMPLE_DEVICE_EXTENSION DeviceExtension
);
VOID CharSampleRestartQueues(
IN PCHARSAMPLE_DEVICE_EXTENSION DeviceExtension
);
VOID CharSampleFlushQueues(
IN PCHARSAMPLE_DEVICE_EXTENSION DeviceExtension,
IN PFILE_OBJECT FileObject
);
///////////////////////////////////////////////////////////////////////////////////////////////////
// Pnp
///////////////////////////////////////////////////////////////////////////////////////////////////
// define this PnP IRP. This IRP is only defined in ntddk.h normally
#if !defined(IRP_MN_QUERY_LEGACY_BUS_INFORMATION)
#define IRP_MN_QUERY_LEGACY_BUS_INFORMATION 0x18
#endif // IRP_MN_QUERY_LEGACY_BUS_INFORMATION
NTSTATUS CharSampleStartDevice(
IN PCHARSAMPLE_DEVICE_EXTENSION DeviceExtension,
IN PIRP Irp
);
NTSTATUS CharSampleFreeResources(
IN PCHARSAMPLE_DEVICE_EXTENSION DeviceExtension
);
///////////////////////////////////////////////////////////////////////////////////////////////////
// Power
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
// Registry
///////////////////////////////////////////////////////////////////////////////////////////////////
PVOID CharSampleRegQueryValueKey(
IN HANDLE RegKeyHandle,
IN PWSTR SubKeyName,
IN PWSTR ValueName,
OUT PULONG Length
);
VOID CharSampleRegEnumerateKeys(
IN HANDLE RegKeyHandle
);
VOID CharSampleRegEnumerateValueKeys(
IN HANDLE RegKeyHandle
);
///////////////////////////////////////////////////////////////////////////////////////////////////
// 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
#ifdef CHARSAMPLE_WMI_TRACE
/*
tracepdb -f objchk_wxp_x86\i386\CharSample.pdb -p C:\CharSample
SET TRACE_FORMAT_SEARCH_PATH=C:\CharSample
tracelog -start CharSample -guid CharSample.ctl -f CharSample.log -flags 0x7FFFFFFF -level 5
tracelog -stop CharSample
tracefmt -o CharSample.txt -f CharSample.log
*/
#define WPP_AREA_LEVEL_LOGGER(Area,Lvl) WPP_LEVEL_LOGGER(Area)
#define WPP_AREA_LEVEL_ENABLED(Area,Lvl) (WPP_LEVEL_ENABLED(Area) && WPP_CONTROL(WPP_BIT_##Area).Level >= Lvl)
#define WPP_CONTROL_GUIDS \
WPP_DEFINE_CONTROL_GUID(CharSample,(C5358348,1E92,434E,A320,7658733D2887), \
WPP_DEFINE_BIT(DBG_GENERAL) /* bit 0 = 0x00000001 */ \
WPP_DEFINE_BIT(DBG_PNP) /* bit 1 = 0x00000002 */ \
WPP_DEFINE_BIT(DBG_POWER) /* bit 2 = 0x00000004 */ \
WPP_DEFINE_BIT(DBG_COUNT) /* bit 3 = 0x00000008 */ \
WPP_DEFINE_BIT(DBG_CREATECLOSE) /* bit 4 = 0x00000010 */ \
WPP_DEFINE_BIT(DBG_WMI) /* bit 5 = 0x00000020 */ \
WPP_DEFINE_BIT(DBG_UNLOAD) /* bit 6 = 0x00000040 */ \
WPP_DEFINE_BIT(DBG_IO) /* bit 7 = 0x00000080 */ \
WPP_DEFINE_BIT(DBG_INIT) /* bit 8 = 0x00000100 */ \
WPP_DEFINE_BIT(DBG_09) /* bit 9 = 0x00000200 */ \
WPP_DEFINE_BIT(DBG_10) /* bit 10 = 0x00000400 */ \
WPP_DEFINE_BIT(DBG_11) /* bit 11 = 0x00000800 */ \
WPP_DEFINE_BIT(DBG_12) /* bit 12 = 0x00001000 */ \
WPP_DEFINE_BIT(DBG_13) /* bit 13 = 0x00002000 */ \
WPP_DEFINE_BIT(DBG_14) /* bit 14 = 0x00004000 */ \
WPP_DEFINE_BIT(DBG_15) /* bit 15 = 0x00008000 */ \
WPP_DEFINE_BIT(DBG_16) /* bit 16 = 0x00010000 */ \
WPP_DEFINE_BIT(DBG_17) /* bit 17 = 0x00020000 */ \
WPP_DEFINE_BIT(DBG_18) /* bit 18 = 0x00040000 */ \
WPP_DEFINE_BIT(DBG_19) /* bit 19 = 0x00080000 */ \
WPP_DEFINE_BIT(DBG_20) /* bit 20 = 0x00100000 */ \
WPP_DEFINE_BIT(DBG_21) /* bit 21 = 0x00200000 */ \
WPP_DEFINE_BIT(DBG_22) /* bit 22 = 0x00400000 */ \
WPP_DEFINE_BIT(DBG_23) /* bit 23 = 0x00800000 */ \
WPP_DEFINE_BIT(DBG_24) /* bit 24 = 0x01000000 */ \
WPP_DEFINE_BIT(DBG_25) /* bit 25 = 0x02000000 */ \
WPP_DEFINE_BIT(DBG_26) /* bit 26 = 0x04000000 */ \
WPP_DEFINE_BIT(DBG_27) /* bit 27 = 0x08000000 */ \
WPP_DEFINE_BIT(DBG_28) /* bit 28 = 0x10000000 */ \
WPP_DEFINE_BIT(DBG_29) /* bit 29 = 0x20000000 */ \
WPP_DEFINE_BIT(DBG_30) /* bit 30 = 0x40000000 */ \
WPP_DEFINE_BIT(DBG_31) /* bit 31 = 0x80000000 */ \
)
__inline VOID CharSampleDumpIrp(
IN PIRP Irp
)
{
}
__inline PCHAR SystemPowerStateString(
IN SYSTEM_POWER_STATE SystemState
)
{
return "";
}
__inline PCHAR DevicePowerStateString(
IN DEVICE_POWER_STATE DeviceState
)
{
return "";
}
#else
// 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
VOID CharSampleDebugPrint(
IN ULONG Area,
IN ULONG Level,
IN PCCHAR Format,
IN ...
);
VOID CharSampleDumpIrp(
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
);
#endif
#endif // __CHARSAMPLE_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -