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 대상 시스템이 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

지정된 디버거 데이터의 값을 받습니다. 위 표의 "반환 형식" 열은 반환되는 데이터 형식을 지정합니다. 버퍼를 해당 형식에 대한 포인터로 캐스팅하여 데이터에 액세스할 수 있습니다.

[in] BufferSize

퍼 버퍼의 크기(바이트)를 지정합니다.

[out, optional] DataSize

퍼 버퍼에 사용된 바이트 수를 받습니다. DataSizeNULL이면 이 정보가 반환되지 않습니다.

반환 값

반환 코드 Description
S_OK
메서드를 성공적으로 수행했습니다.
 

이 메서드는 오류 값을 반환할 수도 있습니다. 자세한 내용은 반환 값을 참조하세요.

설명

특정 디버깅 세션에서 일부 또는 모든 값을 사용할 수 없습니다. 예를 들어 일부 값은 특정 버전의 운영 체제에서만 사용할 수 있습니다.

ReadDebuggerData에서 반환하는 다양한 값에 대한 자세한 내용은 David Solomon의 Microsoft Windows Internals 및 Mark Russinovich, Microsoft Windows SDK 및 WDK(Windows 드라이버 키트)를 참조하세요.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 dbgeng.h(Dbgeng.h 포함)