Метод IDebugDataSpaces3::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 |
Возвращает значение TRUE , если в целевой системе включен PAE.
В противном случае возвращает значение FALSE . |
DEBUG_DATA_SharedUserData | ULONG64 |
Возвращает адрес в целевом объекте общей структуры пользовательского режима, KUSER_SHARED_DATA. Структура KUSER_SHARED_DATA определена в ntddk.h (в комплекте драйверов Windows) и ntexapi.h (в windows SDK).
Некоторые сведения, содержащиеся в этой структуре, отображаются расширением отладчика !kuser. |
DEBUG_DATA_ProductType | ULONG |
Возвращает значение поля NtProductType на странице общего пользовательского режима.
Это значение должно интерпретироваться так же, как поле wProductType структуры OSVERSIONINFOEX, которое описано в пакете WINDOWS SDK. |
DEBUG_DATA_SuiteMask | ULONG |
Возвращает значение поля SuiteMask на странице общего пользовательского режима.
Это значение следует интерпретировать так же, как и поле wSuiteMask структуры OSVERSIONINFOEX, которое задокументировано в windows SDK. |
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 | Возвращает смещение поля NextProcessor в структуре KTHREAD. |
DEBUG_DATA_OffsetKThreadTeb | USHORT | Возвращает смещение поля Teb в структуре KTHREAD. |
DEBUG_DATA_OffsetKThreadKernelStack | USHORT | Возвращает смещение поля KernelStack в структуре KTHREAD. |
DEBUG_DATA_OffsetKThreadInitialStack | USHORT | Возвращает смещение поля InitialStack в структуре KTHREAD. |
DEBUG_DATA_OffsetKThreadApcProcess | USHORT | Возвращает смещение поля ApcState.Process в структуре KTHREAD. |
DEBUG_DATA_OffsetKThreadState | USHORT | Возвращает смещение поля State в структуре KTHREAD. |
DEBUG_DATA_OffsetKThreadBStore | USHORT | (только Itanium) Возвращает смещение поля InitialBStore в структуре KTHREAD. |
DEBUG_DATA_OffsetKThreadBStoreLimit | USHORT | (только Itanium) Возвращает смещение поля BStoreLimit в структуре KTHREAD. |
DEBUG_DATA_SizeEProcess | USHORT | Возвращает размер структуры EPROCESS. |
DEBUG_DATA_OffsetEprocessPeb | USHORT | Возвращает смещение поля Peb в структуре EPROCESS. |
DEBUG_DATA_OffsetEprocessParentCID | USHORT | Возвращает смещение поля InheritedFromUniqueProcessId в структуре EPROCESS. |
DEBUG_DATA_OffsetEprocessDirectoryTableBase | USHORT | Возвращает смещение поля DirectoryTableBase в структуре EPROCESS. |
DEBUG_DATA_SizePrcb | USHORT | Возвращает размер структуры KPRCB. |
DEBUG_DATA_OffsetPrcbDpcRoutine | USHORT | Возвращает смещение поля DpcRoutineActive в структуре KPRCB. |
DEBUG_DATA_OffsetPrcbCurrentThread | USHORT | Возвращает смещение поля CurrentThread в структуре KPRCB. |
DEBUG_DATA_OffsetPrcbMhz | USHORT | Возвращает смещение поля МГц в структуре KPRCB. |
DEBUG_DATA_OffsetPrcbCpuType | USHORT |
Для процессоров Itanium: Возвращает смещение поля ProcessorModel в структуре KPRCB.
Для всех остальных процессоров: Возвращает смещение поля CpuType в структуре KPRCB. |
DEBUG_DATA_OffsetPrcbVendorString | USHORT |
Для процессоров Itanium: Возвращает смещение поля ProcessorVendorString в структуре KPRCB.
Для всех остальных процессоров: Возвращает смещение поля VendorString в структуре KPRCB. |
DEBUG_DATA_OffsetPrcbProcessorState | USHORT | Возвращает смещение поля ProcessorState.ContextFrame в структуре KPRCB. |
DEBUG_DATA_OffsetPrcbNumber | USHORT | Возвращает смещение поля Число в структуре KPRCB. |
DEBUG_DATA_SizeEThread | USHORT | Возвращает размер структуры ETHREAD. |
DEBUG_DATA_KdPrintCircularBufferPtrAddr | ULONG64 | Возвращает адрес переменной ядра KdPrintCircularBuffer. |
DEBUG_DATA_KdPrintBufferSizeAddr | ULONG64 | Возвращает адрес переменной ядра KdPrintBufferSize. |
[out] Buffer
Получает значение указанных данных отладчика. Столбец "Тип возвращаемого значения" в приведенной выше таблице указывает возвращаемый тип данных. Доступ к данным можно получить путем приведения буфера к указателю на этот тип.
[in] BufferSize
Задает размер буфера буфера буфера в байтах.
[out, optional] DataSize
Получает количество байтов, используемых в буфере буфера. Если DataSize имеет значение NULL, эти сведения не возвращаются.
Возвращаемое значение
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
Этот метод также может возвращать значения ошибок. Дополнительные сведения см. в разделе Возвращаемые значения .
Комментарии
Некоторые или все значения могут быть недоступны в определенных сеансах отладки. Например, некоторые значения доступны только для определенных версий операционной системы.
Дополнительные сведения о различных значениях, возвращаемых ReadDebuggerData, см. в статье Microsoft Windows Internals by David Solomon and Mark Russinovich, the Microsoft Windows SDK, and the Windows Driver Kit (WDK).
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | dbgeng.h (включая Dbgeng.h) |