IDebugDataSpaces2::ReadDebuggerData 方法 (dbgeng.h)
ReadDebuggerData 方法返回有关调试器引擎在当前会话期间查询或确定的目标的信息。 可用信息包括某些关键目标内核位置的位置、特定状态值以及许多其他内容。
语法
HRESULT ReadDebuggerData(
[in] ULONG Index,
[out] PVOID Buffer,
[in] ULONG BufferSize,
[out, optional] PULONG DataSize
);
参数
[in] Index
指定要检索的数据的索引。 以下为有效值:
Value | 返回类型 | 说明 |
---|---|---|
DEBUG_DATA_KernBase | ULONG64 | 返回内核映像的基址。 |
DEBUG_DATA_BreakpointWithStatusAddr | ULONG64 | 返回内核函数 断点WithStatusInstruction 的地址。 |
DEBUG_DATA_SavedContextAddr | ULONG64 | 返回在 bug 检查期间保存的上下文记录的地址。 它仅在 bug 检查后有效。 |
DEBUG_DATA_KiCallUserModeAddr | ULONG64 | 返回内核函数 KiCallUserMode 的地址。 |
DEBUG_DATA_KeUserCallbackDispatcherAddr | ULONG64 | 返回内核变量 KeUserCallbackDispatcher。 |
DEBUG_DATA_PsLoadedModuleListAddr | ULONG64 | 返回内核变量 PsLoadedModuleList 的地址。 |
DEBUG_DATA_PsActiveProcessHeadAddr | ULONG64 | 返回内核变量 PsActiveProcessHead 的地址。 |
DEBUG_DATA_PspCidTableAddr | ULONG64 | 返回内核变量 PspCidTable 的地址。 |
DEBUG_DATA_ExpSystemResourcesListAddr | ULONG64 | 返回内核变量 ExpSystemResourcesList 的地址。 |
DEBUG_DATA_ExpPagedPoolDescriptorAddr | ULONG64 | 返回内核变量 ExpPagedPoolDescriptor 的地址。 |
DEBUG_DATA_ExpNumberOfPagedPoolsAddr | ULONG64 | 返回内核变量 ExpNumberOfPagedPools 的地址。 |
DEBUG_DATA_KeTimeIncrementAddr | ULONG64 | 返回内核变量 KeTimeIncrement 的地址。 |
DEBUG_DATA_KeBugCheckCallbackListHeadAddr | ULONG64 | 返回内核变量 KeBugCheckCallbackListHead 的地址。 |
DEBUG_DATA_KiBugcheckDataAddr | ULONG64 | 返回内核变量 KiBugCheckData。 |
DEBUG_DATA_IopErrorLogListHeadAddr | ULONG64 | 返回内核变量 IopErrorLogListHead 的地址。 |
DEBUG_DATA_ObpRootDirectoryObjectAddr | ULONG64 | 返回内核变量 ObpRootDirectoryObject 的地址。 |
DEBUG_DATA_ObpTypeObjectTypeAddr | ULONG64 | 返回内核变量 ObpTypeObjectType 的地址。 |
DEBUG_DATA_MmSystemCacheStartAddr | ULONG64 | 返回内核变量 MmSystemCacheStart 的地址。 |
DEBUG_DATA_MmSystemCacheEndAddr | ULONG64 | 返回内核变量 MmSystemCacheEnd 的地址。 |
DEBUG_DATA_MmSystemCacheWsAddr | ULONG64 | 返回内核变量 MmSystemCacheWs 的地址。 |
DEBUG_DATA_MmPfnDatabaseAddr | ULONG64 | 返回内核变量 MmPfnDatabase 的地址。 |
DEBUG_DATA_MmSystemPtesStartAddr | ULONG64 | 返回内核变量 MmSystemPtesStart。 |
DEBUG_DATA_MmSystemPtesEndAddr | ULONG64 | 返回内核变量 MmSystemPtesEnd。 |
DEBUG_DATA_MmSubsectionBaseAddr | ULONG64 | 返回内核变量 MmSubsectionBase 的地址。 |
DEBUG_DATA_MmNumberOfPagingFilesAddr | ULONG64 | 返回内核变量 MmNumberOfPagingFiles 的地址。 |
DEBUG_DATA_MmLowestPhysicalPageAddr | ULONG64 | 返回内核变量 MmLowestPhysicalPage 的地址。 |
DEBUG_DATA_MmHighestPhysicalPageAddr | ULONG64 | 返回内核变量 MmHighestPhysicalPage 的地址。 |
DEBUG_DATA_MmNumberOfPhysicalPagesAddr | ULONG64 | 返回内核变量 MmNumberOfPhysicalPages 的地址。 |
DEBUG_DATA_MmMaximumNonPagedPoolInBytesAddr | ULONG64 | 返回内核变量 MmMaximumNonPagedPoolInBytes 的地址。 |
DEBUG_DATA_MmNonPagedSystemStartAddr | ULONG64 | 返回内核变量 MmNonPagedSystemStart 的地址。 |
DEBUG_DATA_MmNonPagedPoolStartAddr | ULONG64 | 返回内核变量 MmNonPagedPoolStart 的地址。 |
DEBUG_DATA_MmNonPagedPoolEndAddr | ULONG64 | 返回内核变量 MmNonPagedPoolEnd 的地址。 |
DEBUG_DATA_MmPagedPoolStartAddr | ULONG64 | 返回内核变量 MmPagedPoolStart 的地址。 |
DEBUG_DATA_MmPagedPoolEndAddr | ULONG64 | 返回内核变量 MmPagedPoolEnd 的地址。 |
DEBUG_DATA_MmPagedPoolInformationAddr | ULONG64 | 返回内核变量 MmPagedPoolInfo 的地址。 |
DEBUG_DATA_MmPageSize | ULONG64 | 返回页面大小。 |
DEBUG_DATA_MmSizeOfPagedPoolInBytesAddr | ULONG64 | 返回内核变量 MmSizeOfPagedPoolInBytes 的地址。 |
DEBUG_DATA_MmTotalCommitLimitAddr | ULONG64 | 返回内核变量 MmTotalCommitLimit 的地址。 |
DEBUG_DATA_MmTotalCommittedPagesAddr | ULONG64 | 返回内核变量 MmTotalCommittedPages 的地址。 |
DEBUG_DATA_MmSharedCommitAddr | ULONG64 | 返回内核变量 MmSharedCommit 的地址。 |
DEBUG_DATA_MmDriverCommitAddr | ULONG64 | 返回内核变量 MmDriverCommit 的地址。 |
DEBUG_DATA_MmProcessCommitAddr | ULONG64 | 返回内核变量 MmProcessCommit 的地址。 |
DEBUG_DATA_MmPagedPoolCommitAddr | ULONG64 | 返回内核变量 MmPagedPoolCommit 的地址。 |
DEBUG_DATA_MmExtendedCommitAddr | ULONG64 | 返回内核变量 MmExtendedCommit.的地址。 |
DEBUG_DATA_MmZeroedPageListHeadAddr | ULONG64 | 返回内核变量 MmZeroedPageListHead 的地址。 |
DEBUG_DATA_MmFreePageListHeadAddr | ULONG64 | 返回内核变量 MmFreePageListHead 的地址。 |
DEBUG_DATA_MmStandbyPageListHeadAddr | ULONG64 | 返回内核变量 MmStandbyPageListHead 的地址。 |
DEBUG_DATA_MmModifiedPageListHeadAddr | ULONG64 | 返回内核变量 MmModifiedPageListHead 的地址。 |
DEBUG_DATA_MmModifiedNoWritePageListHeadAddr | ULONG64 | 返回内核变量 MmModifiedNoWritePageListHead 的地址。 |
DEBUG_DATA_MmAvailablePagesAddr | ULONG64 | 返回内核变量 MmAvailablePages 的地址。 |
DEBUG_DATA_MmResidentAvailablePagesAddr | ULONG64 | 返回内核变量 MmResidentAvailablePages 的地址。 |
DEBUG_DATA_PoolTrackTableAddr | ULONG64 | 返回内核变量 PoolTrackTable 的地址。 |
DEBUG_DATA_NonPagedPoolDescriptorAddr | ULONG64 | 返回内核变量 NonPagedPoolDescriptor 的地址。 |
DEBUG_DATA_MmHighestUserAddressAddr | ULONG64 | 返回内核变量 MmHighestUserAddress 的地址。 |
DEBUG_DATA_MmSystemRangeStartAddr | ULONG64 | 返回内核变量 MmSystemRangeStart 的地址。 |
DEBUG_DATA_MmUserProbeAddressAddr | ULONG64 | 返回内核变量 MmUserProbeAddress 的地址。 |
DEBUG_DATA_KdPrintCircularBufferAddr | ULONG64 | 返回内核变量 KdPrintDefaultCircularBuffer。 |
DEBUG_DATA_KdPrintCircularBufferEndAddr | ULONG64 | 返回数组 KdPrintDefaultCircularBuffer 末尾的地址 |
DEBUG_DATA_KdPrintWritePointerAddr | ULONG64 | 返回内核变量 KdPrintWritePointer 的地址。 |
DEBUG_DATA_KdPrintRolloverCountAddr | ULONG64 | 返回内核变量 KdPrintRolloverCount 的地址。 |
DEBUG_DATA_MmLoadedUserImageListAddr | ULONG64 | 返回内核变量 MmLoadedUserImageList 的地址。 |
DEBUG_DATA_PaeEnabled | BOOLEAN |
当目标系统启用了 PAE 时,返回 TRUE 。
否则返回 FALSE 。 |
DEBUG_DATA_SharedUserData | ULONG64 |
返回共享用户模式结构的目标中的地址,KUSER_SHARED_DATA。 KUSER_SHARED_DATA结构在 Windows 驱动程序工具包) 的 ntddk.h (中定义,在 Windows SDK) 中定义 ntexapi.h (。
此结构中包含的某些信息由调试器扩展 !kuser 显示。 |
DEBUG_DATA_ProductType | ULONG |
返回共享用户模式页中 NtProductType 字段的值。
此值的解释方式应与 Windows SDK 中记录的结构 OSVERSIONINFOEX 的 wProductType 字段相同。 |
DEBUG_DATA_SuiteMask | ULONG |
返回共享用户模式页中 SuiteMask 字段的值。
此值的解释方式应与 Windows SDK 中记录的结构 OSVERSIONINFOEX 的 wSuiteMask 字段相同。 |
DEBUG_DATA_DumpWriterStatus | ULONG | 返回转储文件的编写器的状态。 此值特定于操作系统和转储文件类型。 |
以下值对 Windows XP 和更高版本的 Windows 有效:
值 | 返回类型 | 说明 |
---|---|---|
DEBUG_DATA_NtBuildLabAddr | ULONG64 | 返回内核变量 NtBuildLab 的地址。 |
DEBUG_DATA_KiNormalSystemCall | ULONG64 | (Itanium 仅) 返回内核函数 KiNormalSystemCall 的地址。 |
DEBUG_DATA_KiProcessorBlockAddr | ULONG64 | 返回内核变量 KiProcessorBlock。 |
DEBUG_DATA_MmUnloadedDriversAddr | ULONG64 | 返回内核变量 MmUnloadedDrivers 的地址。 |
DEBUG_DATA_MmLastUnloadedDriverAddr | ULONG64 | 返回内核变量 MmLastUnloadedDriver 的地址。 |
DEBUG_DATA_MmTriageActionTakenAddr | ULONG64 | 返回内核变量 VerifierTriageActionTaken 的地址。 |
DEBUG_DATA_MmSpecialPoolTagAddr | ULONG64 | 返回内核变量 MmSpecialPoolTag 的地址。 |
DEBUG_DATA_KernelVerifierAddr | ULONG64 | 返回内核变量 KernelVerifier 的地址。 |
DEBUG_DATA_MmVerifierDataAddr | ULONG64 | 返回内核变量 MmVerifierData 的地址。 |
DEBUG_DATA_MmAllocatedNonPagedPoolAddr | ULONG64 | 返回内核变量 MmAllocatedNonPagedPool 的地址。 |
DEBUG_DATA_MmPeakCommitmentAddr | ULONG64 | 返回内核变量 MmPeakCommitment 的地址。 |
DEBUG_DATA_MmTotalCommitLimitMaximumAddr | ULONG64 | 返回内核变量 MmTotalCommitLimitMaximum 的地址。 |
DEBUG_DATA_CmNtCSDVersionAddr | ULONG64 | 返回内核变量 CmNtCSDVersion 的地址。 |
DEBUG_DATA_MmPhysicalMemoryBlockAddr | ULONG64 | 返回内核变量 MmPhysicalMemoryBlock 的地址。 |
DEBUG_DATA_MmSessionBase | ULONG64 | 返回内核变量 MmSessionBase 的地址。 |
DEBUG_DATA_MmSessionSize | ULONG64 | 返回内核变量 MmSessionSize 的地址。 |
DEBUG_DATA_MmSystemParentTablePage | ULONG64 | (Itanium 仅) 返回内核变量 MmSystemParentTablePage 的地址。 |
以下值对 Windows Server 2003 及更高版本的 Windows 有效:
值 | 返回类型 | 说明 |
---|---|---|
DEBUG_DATA_MmVirtualTranslationBase | ULONG64 | 返回内核变量 MmVirtualTranslationBase 的地址。 |
DEBUG_DATA_OffsetKThreadNextProcessor | USHORT | 返回 KTHREAD 结构中 NextProcessor 字段的偏移量。 |
DEBUG_DATA_OffsetKThreadTeb | USHORT | 返回 KTHREAD 结构中 Teb 字段的偏移量。 |
DEBUG_DATA_OffsetKThreadKernelStack | USHORT | 返回 KTHREAD 结构中 KernelStack 字段的偏移量。 |
DEBUG_DATA_OffsetKThreadInitialStack | USHORT | 返回 KTHREAD 结构中 InitialStack 字段的偏移量。 |
DEBUG_DATA_OffsetKThreadApcProcess | USHORT | 返回 KTHREAD 结构中 ApcState.Process 字段的偏移量。 |
DEBUG_DATA_OffsetKThreadState | USHORT | 返回 KTHREAD 结构中 State 字段的偏移量。 |
DEBUG_DATA_OffsetKThreadBStore | USHORT | (Itanium 仅) 返回 KTHREAD 结构中 InitialBStore 字段的偏移量。 |
DEBUG_DATA_OffsetKThreadBStoreLimit | USHORT | (Itanium 仅) 返回 KTHREAD 结构中 BStoreLimit 字段的偏移量。 |
DEBUG_DATA_SizeEProcess | USHORT | 返回 EPROCESS 结构的大小。 |
DEBUG_DATA_OffsetEprocessPeb | USHORT | 返回 EPROCESS 结构中 Peb 字段的偏移量。 |
DEBUG_DATA_OffsetEprocessParentCID | USHORT | 返回 EPROCESS 结构中 InheritedFromUniqueProcessId 字段的偏移量。 |
DEBUG_DATA_OffsetEprocessDirectoryTableBase | USHORT | 返回 EPROCESS 结构中 DirectoryTableBase 字段的偏移量。 |
DEBUG_DATA_SizePrcb | USHORT | 返回 KPRCB 结构的大小。 |
DEBUG_DATA_OffsetPrcbDpcRoutine | USHORT | 返回 KPRCB 结构中 DpcRoutineActive 字段的偏移量。 |
DEBUG_DATA_OffsetPrcbCurrentThread | USHORT | 返回 KPRCB 结构中 CurrentThread 字段的偏移量。 |
DEBUG_DATA_OffsetPrcbMhz | USHORT | 返回 KPRCB 结构中 MHz 字段的偏移量。 |
DEBUG_DATA_OffsetPrcbCpuType | USHORT |
对于 Itanium 处理器: 返回 KPRCB 结构中 ProcessorModel 字段的偏移量。
对于所有其他处理器: 返回 KPRCB 结构中 CpuType 字段的偏移量。 |
DEBUG_DATA_OffsetPrcbVendorString | USHORT |
对于 Itanium 处理器: 返回 KPRCB 结构中 ProcessorVendorString 字段的偏移量。
对于所有其他处理器: 返回 KPRCB 结构中 VendorString 字段的偏移量。 |
DEBUG_DATA_OffsetPrcbProcessorState | USHORT | 返回 KPRCB 结构中 ProcessorState.ContextFrame 字段的偏移量。 |
DEBUG_DATA_OffsetPrcbNumber | USHORT | 返回 KPRCB 结构中 “数字 ”字段的偏移量。 |
DEBUG_DATA_SizeEThread | USHORT | 返回 ETHREAD 结构的大小。 |
DEBUG_DATA_KdPrintCircularBufferPtrAddr | ULONG64 | 返回内核变量 KdPrintCircularBuffer 的地址。 |
DEBUG_DATA_KdPrintBufferSizeAddr | ULONG64 | 返回内核变量 KdPrintBufferSize 的地址。 |
[out] Buffer
接收指定调试器数据的值。 上表中的“返回类型”列指定返回的数据类型。 可以通过将 Buffer 强制转换为指向该类型的指针来访问数据。
[in] BufferSize
指定缓冲区 缓冲区的大小(以字节为单位)。
[out, optional] DataSize
接收缓冲区 缓冲区中使用的字节数。 如果 DataSize 为 NULL,则不会返回此信息。
返回值
返回代码 | 说明 |
---|---|
|
方法成功。 |
此方法还可以返回错误值。 有关更多详细信息 ,请参阅返回值 。
注解
某些或所有值在某些调试会话中可能不可用。 例如,某些值仅适用于特定版本的操作系统。
有关 ReadDebuggerData 返回的不同值的详细信息,请参阅 Microsoft Windows Internals by David Solomon 和 Mark Russinovich、Microsoft Windows SDK和 Windows Driver Kit (WDK) 。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | dbgeng.h (包括 Dbgeng.h) |