IOCTL_DISK_GET_DRIVE_GEOMETRY_EX IOCTL (ntdddisk.h)
Restituisce informazioni sulla geometria del disco fisico (tipo di supporto, numero di cilindri, tracce per cilindro, settori per traccia e byte per settore).
La differenza tra IOCTL_DISK_GET_DRIVE_GEOMETRY_EX e la richiesta di IOCTL_DISK_GET_DRIVE_GEOMETRY precedente consiste nel fatto che IOCTL_DISK_GET_DRIVE_GEOMETRY_EX può recuperare informazioni da supporti di tipo MBR (Master Boot Record) e GPT (GUID Partition Table), mentre IOCTL_DISK_GET_DRIVE_GEOMETRY può leggere solo supporti in stile MBR.
Codice principale
Buffer di input
Nessuno.
Lunghezza del buffer di input
Nessuno.
Buffer di output
Il driver restituisce i dati di DISK_GEOMETRY_EX nel buffer in corrispondenza di Irp->AssociatedIrp.SystemBuffer. Le dimensioni del buffer di output potrebbero non corrispondere a quella del buffer di input.
Lunghezza del buffer di output
Parameters.DeviceIoControl.OutputBufferLength nella posizione dello stack I/O di IRP indica le dimensioni, in byte, del buffer, che deve essere almeno (sizeof(DISK_GEOMETRY) + sizeof(LARGE_INTEGER)) e fino a (sizeof(DISK_GEOMETRY) + sizeof(LARGE_INTEGER) + sizeof(DISK_PARTITION_INFO) + sizeof(DISK_DETECTION_INFO)).
Blocco di stato
Il campo informazioni è impostato sulle dimensioni, in byte, dei dati restituiti.
Il campo stato restituisce uno dei valori seguenti:
- STATUS_SUCCESS
- STATUS_UNRECOGNIZED_MEDIA
- STATUS_INVALID_PARAMETER
- STATUS_INVALID_DEVICE_REQUEST
- STATUS_INFO_LENGTH_MISMATCH
- STATUS_INSUFFICIENT_RESOURCES
- STATUS_BUFFER_TOO_SMALL
Osservazioni
Solo i chiamanti sopra Partmgr.sys possono chiamare questo IOCTL perché contiene informazioni sulla partizione del disco.
Questo IOCTL usa IOCTL_DISK_GET_DRIVE_GEOMETRY per ottenere la struttura DISK_GEOMETRY e IOCTL_DISK_GET_LENGTH_INFO per ottenere la struttura GET_LENGTH_INFORMATION. Entrambi i tipi di IOCTL sono supportati per l'uso a livello di disk.sys.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | ntdddisk.h (include Ntdddisk.h) |