IDebugDataSpaces::ReadDebuggerData 方法 (dbgeng.h)

ReadDebuggerData 方法返回有关 调试器引擎 在当前会话期间查询或确定的目标的信息。 可用信息包括某些密钥目标内核位置、特定状态值和许多其他内容的位置。

语法

HRESULT ReadDebuggerData(
  [in]            ULONG  Index,
  [out]           PVOID  Buffer,
  [in]            ULONG  BufferSize,
  [out, optional] PULONG DataSize
);

参数

[in] Index

指定要检索的数据的索引。 以下值有效:

价值 返回类型 描述
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 布尔 当目标系统启用了 PAE 时,返回 TRUE

否则返回 FALSE

DEBUG_DATA_SharedUserData ULONG64 返回共享用户模式结构目标中的地址,KUSER_SHARED_DATA。 KUSER_SHARED_DATA结构在 ntddk.h(在 Windows 驱动程序工具包中)和 ntexapi.h(在 Windows SDK 中)中定义。

此结构中包含的某些信息由调试器扩展 !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 结构中 状态 字段的偏移量。
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

接收缓冲区 缓冲区中使用的字节数。 如果 DataSizeNULL,则不会返回此信息。

返回值

返回代码 描述
S_OK
该方法成功。
 

此方法还可以返回错误值。 有关详细信息,请参阅 返回值

言论

某些或所有值在某些调试会话中可能不可用。 例如,某些值仅适用于作系统的特定版本。

有关 ReadDebuggerData返回的不同值的详细信息,请参阅 David 所罗门和 Mark Russinovich、Microsoft Windows SDK 和 Windows 驱动程序工具包(WDK)Microsoft Windows 内部

要求

要求 价值
目标平台 桌面
标头 dbgeng.h (包括 Dbgeng.h)