Поделиться через


Метод 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 Возвращает значение 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 Возвращает смещение поля Number в структуре 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, эти сведения не возвращаются.

Возвращаемое значение

Код возврата Описание
S_OK
Метод выполнен успешно.
 

Этот метод также может возвращать значения ошибок. Дополнительные сведения см. в разделе Возвращаемые значения .

Комментарии

Некоторые или все значения могут быть недоступны в определенных сеансах отладки. Например, некоторые значения доступны только для определенных версий операционной системы.

Дополнительные сведения о различных значениях, возвращаемых ReadDebuggerData, см. в разделе Microsoft Windows Internals дэвида Соломона и Марка Руссиновича, Microsoft Windows SDK и комплект драйверов Windows (WDK).

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть dbgeng.h (включая Dbgeng.h)