windows-nt/Source/XPSP1/NT/public/internal/base/inc/kdextsfn.h
2020-09-26 16:20:57 +08:00

150 lines
3.1 KiB
C

/*++
Copyright (c) 1992-2000 Microsoft Corporation
Module Name:
kdextsfn.h
Abstract:
This has definitions for info exported by kdexts.dll.
Environment:
User Mode.
Revision History:
Kshitiz K. Sharma (kksharma) 2/14/2001
--*/
#ifndef _KDEXTSFN_H
#define _KDEXTSFN_H
//
// device.c
//
typedef struct _DEBUG_DEVICE_OBJECT_INFO {
ULONG SizeOfStruct; // must be == sizeof(DEBUG_DEVICE_OBJECT_INFO)
ULONG64 DevObjAddress;
ULONG ReferenceCount;
BOOL QBusy;
ULONG64 DriverObject;
ULONG64 CurrentIrp;
ULONG64 DevExtension;
ULONG64 DevObjExtension;
} DEBUG_DEVICE_OBJECT_INFO, *PDEBUG_DEVICE_OBJECT_INFO;
// GetDevObjInfo
typedef HRESULT
(WINAPI *PGET_DEVICE_OBJECT_INFO)(
IN PDEBUG_CLIENT Client,
IN ULONG64 DeviceObject,
OUT PDEBUG_DEVICE_OBJECT_INFO pDevObjInfo);
//
// driver.c
//
typedef struct _DEBUG_DRIVER_OBJECT_INFO {
ULONG SizeOfStruct; // must be == sizef(DEBUG_DRIVER_OBJECT_INFO)
ULONG DriverSize;
ULONG64 DriverObjAddress;
ULONG64 DriverStart;
ULONG64 DriverExtension;
ULONG64 DeviceObject;
UNICODE_STRING64 DriverName;
} DEBUG_DRIVER_OBJECT_INFO, *PDEBUG_DRIVER_OBJECT_INFO;
// GetDrvObjInfo
typedef HRESULT
(WINAPI *PGET_DRIVER_OBJECT_INFO)(
IN PDEBUG_CLIENT Client,
IN ULONG64 DriverObject,
OUT PDEBUG_DRIVER_OBJECT_INFO pDrvObjInfo);
//
// irp.c
//
typedef struct _DEBUG_IRP_STACK_INFO {
UCHAR Major;
UCHAR Minor;
ULONG64 DeviceObject;
ULONG64 FileObject;
ULONG64 CompletionRoutine;
ULONG64 StackAddress;
} DEBUG_IRP_STACK_INFO, *PDEBUG_IRP_STACK_INFO;
typedef struct _DEBUG_IRP_INFO {
ULONG SizeOfStruct; // Must be == sizeof(DEBUG_IRP_INFO)
ULONG64 IrpAddress;
ULONG StackCount;
ULONG CurrentLocation;
ULONG64 MdlAddress;
ULONG64 Thread;
ULONG64 CancelRoutine;
DEBUG_IRP_STACK_INFO CurrentStack;
} DEBUG_IRP_INFO, *PDEBUG_IRP_INFO;
// GetIrpInfo
typedef HRESULT
(WINAPI * PGET_IRP_INFO)(
IN PDEBUG_CLIENT Client,
IN ULONG64 Irp,
OUT PDEBUG_IRP_INFO IrpInfo
);
//
// pool.c
//
typedef struct _DEBUG_POOL_DATA {
ULONG SizeofStruct;
ULONG64 PoolBlock;
ULONG64 Pool;
ULONG PreviousSize;
ULONG Size;
ULONG PoolTag;
ULONG64 ProcessBilled;
ULONG Free:1;
ULONG LargePool:1;
ULONG SpecialPool:1;
ULONG Pageable:1;
ULONG Protected:1;
ULONG Allocated:1;
ULONG Reserved:26;
ULONG64 Reserved2[4];
CHAR PoolTagDescription[64];
} DEBUG_POOL_DATA, *PDEBUG_POOL_DATA;
// GetPoolData
typedef HRESULT
(WINAPI *PGET_POOL_DATA)(
PDEBUG_CLIENT Client,
ULONG64 Pool,
PDEBUG_POOL_DATA PoolData
);
typedef enum _DEBUG_POOL_REGION {
DbgPoolRegionUnknown,
DbgPoolRegionSpecial,
DbgPoolRegionPaged,
DbgPoolRegionNonPaged,
DbgPoolRegionCode,
DbgPoolRegionNonPagedExpansion,
DbgPoolRegionMax,
} DEBUG_POOL_REGION;
// GetPoolRegion
typedef HRESULT
(WINAPI *PGET_POOL_REGION)(
PDEBUG_CLIENT Client,
ULONG64 Pool,
DEBUG_POOL_REGION *PoolRegion
);
#endif // _KDEXTSFN_H