Compartilhar via


IOCTL_DISK_GET_DRIVE_GEOMETRY_EX IOCTL (ntdddisk.h)

Retorna informações sobre a geometria do disco físico (tipo de mídia, número de cilindros, faixas por cilindro, setores por faixa e bytes por setor).

A diferença entre IOCTL_DISK_GET_DRIVE_GEOMETRY_EX e a solicitação de IOCTL_DISK_GET_DRIVE_GEOMETRY mais antiga é que IOCTL_DISK_GET_DRIVE_GEOMETRY_EX pode recuperar informações do tipo MBR (Registro mestre de inicialização) e mídia particionada do tipo GPT (Tabela de Partição GUID), enquanto IOCTL_DISK_GET_DRIVE_GEOMETRY só pode ler mídia no estilo MBR.

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

Nenhum.

Comprimento do buffer de entrada

Nenhum.

Buffer de saída

O driver retorna os dados DISK_GEOMETRY_EX no buffer em Irp-AssociatedIrp.SystemBuffer>. O tamanho do buffer de saída pode não ter o mesmo tamanho que o buffer de entrada.

Comprimento do buffer de saída

Parameters.DeviceIoControl.OutputBufferLength no local da pilha de E/S do IRP indica o tamanho, em bytes, do buffer, que deve ser pelo menos (sizeof(DISK_GEOMETRY) + sizeof(LARGE_INTEGER)) e até (sizeof(DISK_GEOMETRY) + sizeof(LARGE_INTEGER) + sizeof(DISK_PARTITION_INFO) + sizeof(DISK_DETECTION_INFO)).

Bloco de status

O campo Informações é definido como o tamanho, em bytes, dos dados retornados.

O campo Status retorna um dos seguintes valores:

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

Comentários

Somente os chamadores acima Partmgr.sys podem chamar esse IOCTL, pois ele contém informações de partição de disco.

Este IOCTL usa IOCTL_DISK_GET_DRIVE_GEOMETRY para obter a estrutura DISK_GEOMETRY e IOCTL_DISK_GET_LENGTH_INFO para obter a estrutura GET_LENGTH_INFORMATION . Ambos os IOCTL têm suporte para uso no nível disk.sys.

Requisitos

Requisito Valor
Cabeçalho ntdddisk.h (inclua Ntdddisk.h)