共用方式為


IDebugDataSpaces4::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 傳回核心函式 BreakpointWithStatusInstruction 的位址。
DEBUG_DATA_SavedContextAddr ULONG64 傳回錯誤檢查期間所儲存內容記錄的位址。 只有在錯誤檢查之後才有效。
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

接收緩衝區 緩衝區中使用的位元元組數目。 如果 DataSizeNULL,則不會傳回這項資訊。

傳回值

傳回碼 描述
S_OK
此方法成功。
 

這個方法也可以傳回錯誤值。 如需詳細資訊,請參閱 傳回值

備註

某些或所有值在某些偵錯會話中可能無法使用。 例如,某些值僅適用於特定版本的操作系統。

如需 ReadDebuggerData 所傳回之不同值的詳細數據,請參閱 Microsoft Windows Internals byDavid 和 Mark Russinovich、Microsoft Windows SDK,以及 Windows 驅動程式套件 (WDK) 。

規格需求

需求
目標平台 桌面
標頭 dbgeng.h (包含 Dbgeng.h)