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,则不会返回此信息。
返回值
返回代码 | 描述 |
---|---|
|
该方法成功。 |
此方法还可以返回错误值。 有关详细信息,请参阅 返回值。
言论
某些或所有值在某些调试会话中可能不可用。 例如,某些值仅适用于作系统的特定版本。
有关 ReadDebuggerData返回的不同值的详细信息,请参阅 David 所罗门和 Mark Russinovich、Microsoft Windows SDK 和 Windows 驱动程序工具包(WDK)Microsoft Windows 内部。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | dbgeng.h (包括 Dbgeng.h) |