FSCTL_ALLOW_EXTENDED_DASD_IO IOCTL (winioctl.h)

Sinaliza que o driver do sistema de arquivos não executará verificações de limite de E/S em chamadas de leitura ou gravação de partição. Em vez disso, as verificações de limite são executadas pelo driver de dispositivo.

Para executar essa operação, chame a função DeviceIoControl com os parâmetros a seguir.

C++
BOOL DeviceIoControl(
  (HANDLE) hDevice,              // handle to device
  FSCTL_ALLOW_EXTENDED_DASD_IO,  // dwIoControlCodeNULL,                          // lpInBuffer0,                             // nInBufferSizeNULL,                          // lpOutBuffer0,                             // nOutBufferSize(LPDWORD) lpBytesReturned,     // number of bytes returned
  (LPOVERLAPPED) lpOverlapped    // OVERLAPPED structure
);

Comentários

Uma chamada usando o código de controle FSCTL_ALLOW_EXTENDED_DASD_IO só deve ser usada com muito cuidado por programadores familiarizados com a estrutura subjacente de uma unidade de disco rígido e sistema de arquivos. O uso inadequado ou a verificação imprecisa em operações de gravação subsequentes na partição podem resultar em danos aos dados na partição ou destruição de toda a partição.

O código de controle FSCTL_ALLOW_EXTENDED_DASD_IO é usado para sinalizar que o driver do sistema de arquivos não execute nenhuma verificação de limite de E/S em chamadas de leitura ou gravação feitas com o identificador especificado. FSCTL_ALLOW_EXTENDED_DASD_IO permite o acesso a setores ocultos, uma parte da partição que pode existir entre o primeiro setor da partição (o bloco de parâmetros de inicialização) e o primeiro setor útil da partição. FSCTL_ALLOW_EXTENDED_DASD_IO também permite o acesso a clusters perdidos, que podem existir entre o último cluster útil e o final da partição.

Solicitações de E/S emitidas após essa operação são passadas diretamente para o driver de dispositivo. Se essas chamadas subsequentes solicitarem dados além do limite de partição, o driver fará com que eles falhem.

Para obter as implicações de E/S sobreposta nesta operação, consulte a seção Comentários de DeviceIoControl.

Para recuperar um identificador para uma partição, chame CreateFile com o parâmetro lpFileName definido como uma cadeia de caracteres do seguinte formulário:

\.\X:

em que X é a letra da unidade.

O aplicativo que chama CreateFile também deve especificar os sinalizadores FILE_SHARE_READ e FILE_SHARE_WRITE no parâmetro dwShareMode de CreateFile. Para obter mais informações, consulte a seção Dispositivos de disco em CreateFile.

Para determinar a estrutura de partição da unidade e determinar se o sistema reconhece a partição, use o código de controle IOCTL_DISK_GET_DRIVE_LAYOUT_EX ou IOCTL_DISK_GET_DRIVE_LAYOUT , conforme apropriado. Para obter informações semelhantes sobre uma única partição, use o código de controle IOCTL_DISK_GET_PARTITION_INFO_EX ou IOCTL_DISK_GET_PARTITION_INFO , conforme apropriado. Para determinar o tamanho de um cluster, use a função GetDiskFreeSpaceEx ou GetDiskFreeSpace , conforme apropriado.

Em Windows Server 2012, essa função é compatível com as tecnologias a seguir.

Tecnologia Com suporte
Protocolo SMB (SMB) 3.0 No
TFO (Failover transparente) do SMB 3.0 No
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) No
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho winioctl.h (inclua Windows.h)

Confira também

CreateFile

DeviceIoControl

Códigos de controle de gerenciamento de arquivos

GetDiskFreeSpace

GetDiskFreeSpaceEx

IOCTL_DISK_GET_DRIVE_LAYOUT

IOCTL_DISK_GET_DRIVE_LAYOUT_EX

IOCTL_DISK_GET_PARTITION_INFO

IOCTL_DISK_GET_PARTITION_INFO_EX

OVERLAPPED