Compartilhar via


FSCTL_ALLOW_EXTENDED_DASD_IO IOCTL (winioctl.h)

Sinaliza o driver do sistema de arquivos para não executar nenhuma verificação 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 do 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
);

Observações

Uma chamada usando o código de controle FSCTL_ALLOW_EXTENDED_DASD_IO só deve ser usada com grande cuidado por programadores familiarizados com a estrutura subjacente de uma unidade de disco rígido e sistema de arquivos. O uso incorreto 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 o driver do sistema de arquivos para não executar 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 do 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 da 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:

onde 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.

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

Tecnologia Suportado
Protocolo SMB (Bloco de Mensagens do Servidor) 3.0 Não
TFO (Failover Transparente) do SMB 3.0 Não
SMB 3.0 com Compartilhamentos de Arquivos de Expansão (SO) Não
Sistema de Arquivos de Volume Compartilhado de Cluster (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim

Requisitos

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

Consulte 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

SOBREPOSTOS