Partager via


Méthode IDebugDataSpaces3 ::ReadDebuggerData (dbgeng.h)

La méthode ReadDebuggerData retourne des informations sur la cible que le moteur du débogueur a interrogée ou déterminée pendant la session active. Les informations disponibles incluent les emplacements de certains emplacements clés du noyau cible, des valeurs status spécifiques et un certain nombre d’autres éléments.

Syntaxe

HRESULT ReadDebuggerData(
  [in]            ULONG  Index,
  [out]           PVOID  Buffer,
  [in]            ULONG  BufferSize,
  [out, optional] PULONG DataSize
);

Paramètres

[in] Index

Spécifie l’index des données à récupérer. Les valeurs suivantes sont valides :

Value Type de retour Description
DEBUG_DATA_KernBase ULONG64 Retourne l’adresse de base de l’image du noyau.
DEBUG_DATA_BreakpointWithStatusAddr ULONG64 Retourne l’adresse de la fonction de noyau BreakpointWithStatusInstruction.
DEBUG_DATA_SavedContextAddr ULONG64 Retourne l’adresse de l’enregistrement de contexte enregistré lors d’une vérification de bogue. Elle n’est valide qu’après une vérification de bogue.
DEBUG_DATA_KiCallUserModeAddr ULONG64 Retourne l’adresse de la fonction de noyau KiCallUserMode.
DEBUG_DATA_KeUserCallbackDispatcherAddr ULONG64 Renvoie la variable de noyau KeUserCallbackDispatcher.
DEBUG_DATA_PsLoadedModuleListAddr ULONG64 Retourne l’adresse de la variable de noyau PsLoadedModuleList.
DEBUG_DATA_PsActiveProcessHeadAddr ULONG64 Retourne l’adresse de la variable de noyau PsActiveProcessHead.
DEBUG_DATA_PspCidTableAddr ULONG64 Retourne l’adresse de la variable de noyau PspCidTable.
DEBUG_DATA_ExpSystemResourcesListAddr ULONG64 Retourne l’adresse de la variable de noyau ExpSystemResourcesList.
DEBUG_DATA_ExpPagedPoolDescriptorAddr ULONG64 Retourne l’adresse de la variable de noyau ExpPagedPoolDescriptor.
DEBUG_DATA_ExpNumberOfPagedPoolsAddr ULONG64 Retourne l’adresse de la variable de noyau ExpNumberOfPagedPools.
DEBUG_DATA_KeTimeIncrementAddr ULONG64 Renvoie l’adresse de la variable de noyau KeTimeIncrement.
DEBUG_DATA_KeBugCheckCallbackListHeadAddr ULONG64 Renvoie l’adresse de la variable de noyau KeBugCheckCallbackListHead.
DEBUG_DATA_KiBugcheckDataAddr ULONG64 Retourne la variable de noyau KiBugCheckData.
DEBUG_DATA_IopErrorLogListHeadAddr ULONG64 Renvoie l’adresse de la variable de noyau IopErrorLogListHead.
DEBUG_DATA_ObpRootDirectoryObjectAddr ULONG64 Retourne l’adresse de la variable de noyau ObpRootDirectoryObject.
DEBUG_DATA_ObpTypeObjectTypeAddr ULONG64 Retourne l’adresse de la variable de noyau ObpTypeObjectType.
DEBUG_DATA_MmSystemCacheStartAddr ULONG64 Retourne l’adresse de la variable de noyau MmSystemCacheStart.
DEBUG_DATA_MmSystemCacheEndAddr ULONG64 Retourne l’adresse de la variable de noyau MmSystemCacheEnd.
DEBUG_DATA_MmSystemCacheWsAddr ULONG64 Retourne l’adresse de la variable de noyau MmSystemCacheWs.
DEBUG_DATA_MmPfnDatabaseAddr ULONG64 Retourne l’adresse de la variable de noyau MmPfnDatabase.
DEBUG_DATA_MmSystemPtesStartAddr ULONG64 Retourne la variable de noyau MmSystemPtesStart.
DEBUG_DATA_MmSystemPtesEndAddr ULONG64 Retourne la variable de noyau MmSystemPtesEnd.
DEBUG_DATA_MmSubsectionBaseAddr ULONG64 Retourne l’adresse de la variable de noyau MmSubsectionBase.
DEBUG_DATA_MmNumberOfPagingFilesAddr ULONG64 Retourne l’adresse de la variable de noyau MmNumberOfPagingFiles.
DEBUG_DATA_MmLowestPhysicalPageAddr ULONG64 Retourne l’adresse de la variable de noyau MmLowestPhysicalPage.
DEBUG_DATA_MmHighestPhysicalPageAddr ULONG64 Retourne l’adresse de la variable de noyau MmHighestPhysicalPage.
DEBUG_DATA_MmNumberOfPhysicalPagesAddr ULONG64 Renvoie l’adresse de la variable de noyau MmNumberOfPhysicalPages.
DEBUG_DATA_MmMaximumNonPagedPoolInBytesAddr ULONG64 Renvoie l’adresse de la variable de noyau MmMaximumNonPagedPoolInBytes.
DEBUG_DATA_MmNonPagedSystemStartAddr ULONG64 Retourne l’adresse de la variable de noyau MmNonPagedSystemStart.
DEBUG_DATA_MmNonPagedPoolStartAddr ULONG64 Retourne l’adresse de la variable de noyau MmNonPagedPoolStart.
DEBUG_DATA_MmNonPagedPoolEndAddr ULONG64 Renvoie l’adresse de la variable de noyau MmNonPagedPoolEnd.
DEBUG_DATA_MmPagedPoolStartAddr ULONG64 Retourne l’adresse de la variable de noyau MmPagedPoolStart.
DEBUG_DATA_MmPagedPoolEndAddr ULONG64 Retourne l’adresse de la variable de noyau MmPagedPoolEnd.
DEBUG_DATA_MmPagedPoolInformationAddr ULONG64 Retourne l’adresse de la variable de noyau MmPagedPoolInfo.
DEBUG_DATA_MmPageSize ULONG64 Retourne la taille de page.
DEBUG_DATA_MmSizeOfPagedPoolInBytesAddr ULONG64 Retourne l’adresse de la variable de noyau MmSizeOfPagedPoolInBytes.
DEBUG_DATA_MmTotalCommitLimitAddr ULONG64 Renvoie l’adresse de la variable de noyau MmTotalCommitLimit.
DEBUG_DATA_MmTotalCommittedPagesAddr ULONG64 Renvoie l’adresse de la variable de noyau MmTotalCommittedPages.
DEBUG_DATA_MmSharedCommitAddr ULONG64 Retourne l’adresse de la variable de noyau MmSharedCommit.
DEBUG_DATA_MmDriverCommitAddr ULONG64 Retourne l’adresse de la variable de noyau MmDriverCommit.
DEBUG_DATA_MmProcessCommitAddr ULONG64 Retourne l’adresse de la variable de noyau MmProcessCommit.
DEBUG_DATA_MmPagedPoolCommitAddr ULONG64 Renvoie l’adresse de la variable de noyau MmPagedPoolCommit.
DEBUG_DATA_MmExtendedCommitAddr ULONG64 Retourne l’adresse de la variable de noyau MmExtendedCommit..
DEBUG_DATA_MmZeroedPageListHeadAddr ULONG64 Retourne l’adresse de la variable de noyau MmZeroedPageListHead.
DEBUG_DATA_MmFreePageListHeadAddr ULONG64 Renvoie l’adresse de la variable de noyau MmFreePageListHead.
DEBUG_DATA_MmStandbyPageListHeadAddr ULONG64 Renvoie l’adresse de la variable de noyau MmStandbyPageListHead.
DEBUG_DATA_MmModifiedPageListHeadAddr ULONG64 Renvoie l’adresse de la variable de noyau MmModifiedPageListHead.
DEBUG_DATA_MmModifiedNoWritePageListHeadAddr ULONG64 Renvoie l’adresse de la variable de noyau MmModifiedNoWritePageListHead.
DEBUG_DATA_MmAvailablePagesAddr ULONG64 Renvoie l’adresse de la variable de noyau MmAvailablePages.
DEBUG_DATA_MmResidentAvailablePagesAddr ULONG64 Renvoie l’adresse de la variable de noyau MmResidentAvailablePages.
DEBUG_DATA_PoolTrackTableAddr ULONG64 Retourne l’adresse de la variable de noyau PoolTrackTable.
DEBUG_DATA_NonPagedPoolDescriptorAddr ULONG64 Retourne l’adresse de la variable de noyau NonPagedPoolDescriptor.
DEBUG_DATA_MmHighestUserAddressAddr ULONG64 Renvoie l’adresse de la variable de noyau MmHighestUserAddress.
DEBUG_DATA_MmSystemRangeStartAddr ULONG64 Retourne l’adresse de la variable de noyau MmSystemRangeStart.
DEBUG_DATA_MmUserProbeAddressAddr ULONG64 Retourne l’adresse de la variable de noyau MmUserProbeAddress.
DEBUG_DATA_KdPrintCircularBufferAddr ULONG64 Renvoie la variable de noyau KdPrintDefaultCircularBuffer.
DEBUG_DATA_KdPrintCircularBufferEndAddr ULONG64 Renvoie l’adresse de la fin du tableau KdPrintDefaultCircularBuffer
DEBUG_DATA_KdPrintWritePointerAddr ULONG64 Retourne l’adresse de la variable de noyau KdPrintWritePointer.
DEBUG_DATA_KdPrintRolloverCountAddr ULONG64 Retourne l’adresse de la variable de noyau KdPrintRolloverCount.
DEBUG_DATA_MmLoadedUserImageListAddr ULONG64 Retourne l’adresse de la variable de noyau MmLoadedUserImageList.
DEBUG_DATA_PaeEnabled BOOLEAN Retourne TRUE lorsque l’environnement PAE est activé sur le système cible.

Retourne FALSE dans le cas contraire.

DEBUG_DATA_SharedUserData ULONG64 Retourne l’adresse dans la cible de la structure en mode utilisateur partagée, KUSER_SHARED_DATA. La structure KUSER_SHARED_DATA est définie dans ntddk.h (dans le Kit de pilotes Windows) et ntexapi.h (dans le Kit de développement logiciel (SDK) Windows.

Certaines des informations contenues dans cette structure sont affichées par l’extension du débogueur !kuser.

DEBUG_DATA_ProductType ULONG Retourne la valeur du champ NtProductType dans la page partagée en mode utilisateur.

Cette valeur doit être interprétée de la même façon que le champ wProductType de la structure OSVERSIONINFOEX, qui est documenté dans le Kit de développement logiciel (SDK) Windows.

DEBUG_DATA_SuiteMask ULONG Retourne la valeur du champ SuiteMask dans la page partagée en mode utilisateur.

Cette valeur doit être interprétée de la même façon que le champ wSuiteMask de la structure OSVERSIONINFOEX, qui est documenté dans le Kit de développement logiciel (SDK) Windows.

DEBUG_DATA_DumpWriterStatus ULONG Retourne le status du writer du fichier de vidage. Cette valeur est spécifique au système d’exploitation et au type de fichier de vidage.
 

Les valeurs suivantes sont valides pour Windows XP et les versions ultérieures de Windows :

Valeur Type de retour Description
DEBUG_DATA_NtBuildLabAddr ULONG64 Retourne l’adresse de la variable de noyau NtBuildLab.
DEBUG_DATA_KiNormalSystemCall ULONG64 (Itanium uniquement) Retourne l’adresse de la fonction de noyau KiNormalSystemCall.
DEBUG_DATA_KiProcessorBlockAddr ULONG64 Retourne la variable de noyau KiProcessorBlock.
DEBUG_DATA_MmUnloadedDriversAddr ULONG64 Retourne l’adresse de la variable de noyau MmUnloadedDrivers.
DEBUG_DATA_MmLastUnloadedDriverAddr ULONG64 Retourne l’adresse de la variable de noyau MmLastUnloadedDriver.
DEBUG_DATA_MmTriageActionTakenAddr ULONG64 Retourne l’adresse de la variable de noyau VerifierTriageActionTaken.
DEBUG_DATA_MmSpecialPoolTagAddr ULONG64 Retourne l’adresse de la variable de noyau MmSpecialPoolTag.
DEBUG_DATA_KernelVerifierAddr ULONG64 Retourne l’adresse de la variable de noyau KernelVerifier.
DEBUG_DATA_MmVerifierDataAddr ULONG64 Retourne l’adresse de la variable de noyau MmVerifierData.
DEBUG_DATA_MmAllocatedNonPagedPoolAddr ULONG64 Retourne l’adresse de la variable de noyau MmAllocatedNonPagedPool.
DEBUG_DATA_MmPeakCommitmentAddr ULONG64 Retourne l’adresse de la variable de noyau MmPeakCommitment.
DEBUG_DATA_MmTotalCommitLimitMaximumAddr ULONG64 Retourne l’adresse de la variable de noyau MmTotalCommitLimitMaximum.
DEBUG_DATA_CmNtCSDVersionAddr ULONG64 Retourne l’adresse de la variable de noyau CmNtCSDVersion.
DEBUG_DATA_MmPhysicalMemoryBlockAddr ULONG64 Retourne l’adresse de la variable de noyau MmPhysicalMemoryBlock.
DEBUG_DATA_MmSessionBase ULONG64 Retourne l’adresse de la variable de noyau MmSessionBase.
DEBUG_DATA_MmSessionSize ULONG64 Retourne l’adresse de la variable de noyau MmSessionSize.
DEBUG_DATA_MmSystemParentTablePage ULONG64 (Itanium uniquement) Retourne l’adresse de la variable de noyau MmSystemParentTablePage.
 

Les valeurs suivantes sont valides pour Windows Server 2003 et versions ultérieures de Windows :

Valeur Type de retour Description
DEBUG_DATA_MmVirtualTranslationBase ULONG64 Retourne l’adresse de la variable de noyau MmVirtualTranslationBase.
DEBUG_DATA_OffsetKThreadNextProcessor USHORT Retourne le décalage du champ NextProcessor dans la structure KTHREAD.
DEBUG_DATA_OffsetKThreadTeb USHORT Retourne le décalage du champ Teb dans la structure KTHREAD.
DEBUG_DATA_OffsetKThreadKernelStack USHORT Retourne le décalage du champ KernelStack dans la structure KTHREAD.
DEBUG_DATA_OffsetKThreadInitialStack USHORT Retourne le décalage du champ InitialStack dans la structure KTHREAD.
DEBUG_DATA_OffsetKThreadApcProcess USHORT Retourne le décalage du champ ApcState.Process dans la structure KTHREAD.
DEBUG_DATA_OffsetKThreadState USHORT Retourne le décalage du champ État dans la structure KTHREAD.
DEBUG_DATA_OffsetKThreadBStore USHORT (Itanium uniquement) Retourne le décalage du champ InitialBStore dans la structure KTHREAD.
DEBUG_DATA_OffsetKThreadBStoreLimit USHORT (Itanium uniquement) Retourne le décalage du champ BStoreLimit dans la structure KTHREAD.
DEBUG_DATA_SizeEProcess USHORT Retourne la taille de la structure EPROCESS.
DEBUG_DATA_OffsetEprocessPeb USHORT Retourne le décalage du champ Peb dans la structure EPROCESS.
DEBUG_DATA_OffsetEprocessParentCID USHORT Retourne le décalage du champ InheritedFromUniqueProcessId dans la structure EPROCESS.
DEBUG_DATA_OffsetEprocessDirectoryTableBase USHORT Retourne le décalage du champ DirectoryTableBase dans la structure EPROCESS.
DEBUG_DATA_SizePrcb USHORT Retourne la taille de la structure KPRCB.
DEBUG_DATA_OffsetPrcbDpcRoutine USHORT Retourne le décalage du champ DpcRoutineActive dans la structure KPRCB.
DEBUG_DATA_OffsetPrcbCurrentThread USHORT Retourne le décalage du champ CurrentThread dans la structure KPRCB.
DEBUG_DATA_OffsetPrcbMhz USHORT Retourne le décalage du champ MHz dans la structure KPRCB.
DEBUG_DATA_OffsetPrcbCpuType USHORT Pour les processeurs Itanium : Retourne le décalage du champ ProcessorModel dans la structure KPRCB.

Pour tous les autres processeurs : Retourne le décalage du champ CpuType dans la structure KPRCB.

DEBUG_DATA_OffsetPrcbVendorString USHORT Pour les processeurs Itanium : Retourne le décalage du champ ProcessorVendorString dans la structure KPRCB.

Pour tous les autres processeurs : Retourne le décalage du champ VendorString dans la structure KPRCB.

DEBUG_DATA_OffsetPrcbProcessorState USHORT Retourne le décalage du champ ProcessorState.ContextFrame dans la structure KPRCB.
DEBUG_DATA_OffsetPrcbNumber USHORT Retourne le décalage du champ Number dans la structure KPRCB.
DEBUG_DATA_SizeEThread USHORT Retourne la taille de la structure ETHREAD.
DEBUG_DATA_KdPrintCircularBufferPtrAddr ULONG64 Retourne l’adresse de la variable de noyau KdPrintCircularBuffer.
DEBUG_DATA_KdPrintBufferSizeAddr ULONG64 Retourne l’adresse de la variable de noyau KdPrintBufferSize.

[out] Buffer

Reçoit la valeur des données de débogueur spécifiées. La colonne « Type de retour » dans le tableau ci-dessus spécifie le type de données retourné. Les données sont accessibles en castant Buffer vers un pointeur vers ce type.

[in] BufferSize

Spécifie la taille en octets de la mémoire tampon.

[out, optional] DataSize

Reçoit le nombre d’octets utilisés dans la mémoire tampon. Si DataSize a la valeur NULL, ces informations ne sont pas retournées.

Valeur retournée

Code de retour Description
S_OK
La méthode a réussi.
 

Cette méthode peut également retourner des valeurs d’erreur. Pour plus d’informations, consultez Valeurs de retour.

Remarques

Certaines ou toutes les valeurs peuvent ne pas être disponibles dans certaines sessions de débogage. Par exemple, certaines des valeurs sont disponibles uniquement pour des versions particulières du système d’exploitation.

Pour plus d’informations sur les différentes valeurs retournées par ReadDebuggerData, consultez Microsoft Windows Internals by David Solomon et Mark Russinovich, the Microsoft Windows SDK et windows Driver Kit (WDK).

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête dbgeng.h (inclure Dbgeng.h)