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 | 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 | 부울 |
대상 시스템에 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
버퍼 버퍼에 사용된 바이트 수를 받습니다. DataSize NULL 경우 이 정보가 반환되지 않습니다.
반환 값
반환 코드 | 묘사 |
---|---|
|
메서드가 성공했습니다. |
이 메서드는 오류 값을 반환할 수도 있습니다. 자세한 내용은 반환 값 참조하세요.
발언
일부 또는 모든 값은 특정 디버깅 세션에서 사용할 수 없습니다. 예를 들어 일부 값은 특정 버전의 운영 체제에서만 사용할 수 있습니다.
ReadDebuggerData반환된 다양한 값에 대한 자세한 내용은 David Solomon 및 Mark Russinovich, Microsoft Windows SDK 및 WDK(Windows 드라이버 키트)가 Microsoft Windows 내부 참조하세요.
요구 사항
요구 | 값 |
---|---|
대상 플랫폼 | 바탕 화면 |
헤더 | dbgeng.h(Dbgeng.h 포함) |