Partager via


PWINDBG_IOCTL_ROUTINE fonction de rappel (wdbgexts.h)

La fonction PWINDBG_IOCTL_ROUTINE (Ioctl) effectue différentes opérations. La plupart de ses fonctionnalités reflètent les fonctionnalités d’autres fonctions dans wdbgexts.h.

Syntaxe

PWINDBG_IOCTL_ROUTINE PwindbgIoctlRoutine;

ULONG PwindbgIoctlRoutine(
  USHORT IoctlType,
  PVOID lpvData,
  ULONG cbSize
)
{...}

Paramètres

IoctlType

Spécifie l’opération Ioctl à effectuer. Pour obtenir la liste des valeurs IoctlType possibles, consultez la section « Remarques ».

lpvData

Pointe vers l’adresse d’une structure de données. Le type de structure requis dépend de la valeur de IoctlType.

cbSize

Spécifie la taille de la structure vers laquelle lpvData pointe.

Valeur retournée

La signification de la valeur de retour dépend de IoctlType. Consultez la page de l’opération Ioctl correspondante pour connaître la signification de la valeur de retour.

Remarques

La fonction Ioctl est le point d’entrée de nombreuses fonctionnalités fournies pour les extensions WdbgExts. La plupart des autres fonctions de wdbgexts.h sont simplement des wrappers pour les appels à Ioctl.

Le tableau suivant répertorie les valeurs IoctlType possibles. Si IoctlType correspond à une autre fonction, cette fonction est fournie ; sinon, un lien vers la page décrivant l’opération Ioctl est fourni.

Constante IoctlType Fonction équivalente structure lpData
IG_KD_CONTEXT

GetKdContext

IG_READ_CONTROL_SPACE

ReadControlSpace

ReadControlSpace64

IG_WRITE_CONTROL_SPACE WriteControlSpace
IG_READ_IO_SPACE

ReadIoSpace

ReadIoSpace64

IG_WRITE_IO_SPACE

WriteIoSpace

WriteIoSpace64

IG_READ_PHYSICAL

ReadPhysical

IG_WRITE_PHYSICAL

WritePhysical

IG_READ_IO_SPACE_EX

ReadIoSpaceEx

ReadIoSpaceEx64

IG_WRITE_IO_SPACE_EX

WriteIoSpaceEx

WriteIoSpaceEx64

IG_SET_THREAD

SetThreadForOperation

SetThreadForOperation64

IG_READ_MSR

ReadMsr

IG_WRITE_MSR

WriteMsr

IG_GET_DEBUGGER_DATA

GetDebuggerData

IG_GET_KERNEL_VERSION

DBGKD_GET_VERSION64

IG_RELOAD_SYMBOLS ReloadSymbols
IG_GET_SET_SYMPATH

GetSetSympath

IG_GET_EXCEPTION_RECORD
IG_IS_PTR64 IsPtr64

IG_GET_BUS_DATA

GETSETBUSDATA

IG_SET_BUS_DATA

GETSETBUSDATA

IG_DUMP_SYMBOL_INFO

SYM_DUMP_PARAM

IG_LOWMEM_CHECK

Consultez la section Notes.
IG_SEARCH_MEMORY SearchMemory
IG_GET_CURRENT_THREAD GetCurrentThreadAddr
IG_GET_CURRENT_PROCESS GetCurrentProcessAddr
IG_GET_TYPE_SIZE GetTypeSize
IG_GET_CURRENT_PROCESS_HANDLE GetCurrentProcessHandle
IG_GET_INPUT_LINE GetInputLine
IG_GET_EXPRESSION_EX GetExpressionEx
IG_TRANSLATE_VIRTUAL_TO_PHYSICAL TranslateVirtualToPhysical
IG_GET_CACHE_SIZE GetDebuggerCacheSize
IG_READ_PHYSICAL_WITH_FLAGS ReadPhysicalWithFlags
IG_WRITE_PHYSICAL_WITH_FLAGS WritePhysicalWithFlags

IG_POINTER_SEARCH_PHYSICAL

POINTER_SEARCH_PHYSICAL

IG_GET_THREAD_OS_INFO

WDBGEXTS_THREAD_OS_INFO

IG_GET_CLR_DATA_INTERFACE
IG_GET_TEB_ADDRESS GetTebAddress
IG_GET_PEB_ADDRESS GetPebAddress
 

L’opération Ioctl IG_LOWMEM_CHECK recherche la corruption de la mémoire dans les 4 Go de mémoire faibles.

Cette opération Ioctl ne prend aucun paramètre et les paramètres lpvData et cbSizeOfContext doivent être définis sur NULL et zéro respectivement.

Valeur de retour

Si aucune mémoire endommagée n’a été trouvée, la valeur de retour est TRUE ; sinon, elle est FALSE.

Cette opération n’est disponible que dans le débogage en mode noyau et n’est utile que lorsque le noyau a été démarré à l’aide de l’option /nolowmem .

Lorsque le noyau est démarré avec l’option /nolowmem , le noyau, les pilotes, le système d’exploitation et les applications sont chargés en mémoire au-dessus de 4 Go, tandis que les 4 Go de mémoire faibles sont remplis avec un modèle unique. L’opération Ioctl IG_LOWMEM_CHECK vérifie la corruption de ce modèle.

Cela peut être utilisé pour vérifier qu’un pilote fonctionne correctement lors de l’utilisation d’adresses physiques d’une longueur supérieure à 32 bits. Consultez Extension d’adresse physique (PAE),/pae et /nolowmem dans le Kit de pilotes Windows.

Configuration requise

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