Partager via


IOCTL_DISK_GET_DRIVE_GEOMETRY_EX IOCTL (ntdddisk.h)

Retourne des informations sur la géométrie du disque physique (type de média, nombre de cylindres, pistes par cylindre, secteurs par piste et octets par secteur).

La différence entre IOCTL_DISK_GET_DRIVE_GEOMETRY_EX et l’ancienne demande de IOCTL_DISK_GET_DRIVE_GEOMETRY est que IOCTL_DISK_GET_DRIVE_GEOMETRY_EX peut récupérer des informations à partir d’un support partitionné de type MBR (Master Boot Record) et d’un support de type GPT (GUID Partition Table), tandis que IOCTL_DISK_GET_DRIVE_GEOMETRY ne peut lire que des médias de style MBR.

Code principal

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d'entrée

Aucun.

Longueur de la mémoire tampon d’entrée

Aucun.

Mémoire tampon de sortie

Le pilote retourne les données DISK_GEOMETRY_EX dans la mémoire tampon sur Irp-AssociatedIrp.SystemBuffer>. La taille de la mémoire tampon de sortie peut ne pas être identique à celle de la mémoire tampon d’entrée.

Longueur de la mémoire tampon de sortie

Parameters.DeviceIoControl.OutputBufferLength dans l’emplacement de pile d’E/S de l’IRP indique la taille, en octets, de la mémoire tampon, qui doit être au moins (sizeof(DISK_GEOMETRY) + sizeof(LARGE_INTEGER)) et jusqu’à (sizeof(DISK_GEOMETRY) + sizeof(LARGE_INTEGER) + sizeof(DISK_PARTITION_INFO) + sizeof(DISK_DETECTION_INFO)).

Bloc d’état

Le champ Informations est défini sur la taille, en octets, des données retournées.

Le champ État retourne l’une des valeurs suivantes :

  • STATUS_SUCCESS
  • STATUS_UNRECOGNIZED_MEDIA
  • STATUS_INVALID_PARAMETER
  • STATUS_INVALID_DEVICE_REQUEST
  • STATUS_INFO_LENGTH_MISMATCH
  • STATUS_INSUFFICIENT_RESOURCES
  • STATUS_BUFFER_TOO_SMALL

Remarques

Seuls les appelants au-dessus de Partmgr.sys peuvent appeler ce IOCTL, car il contient des informations de partition de disque.

Ce IOCTL utilise IOCTL_DISK_GET_DRIVE_GEOMETRY pour obtenir la structure DISK_GEOMETRY et IOCTL_DISK_GET_LENGTH_INFO pour obtenir la structure GET_LENGTH_INFORMATION . Ces deux IOCTL sont pris en charge pour une utilisation au niveau disk.sys.

Configuration requise

Condition requise Valeur
En-tête ntdddisk.h (inclure Ntdddisk.h)