FSCTL_ALLOW_EXTENDED_DASD_IO IOCTL (winioctl.h)

Indica al controlador del sistema de archivos que no realice ninguna comprobación de límites de E/S en las llamadas de lectura o escritura de particiones. En su lugar, el controlador del dispositivo realiza comprobaciones de límites.

Para realizar esta operación, llame a la función DeviceIoControl con los siguientes parámetros.

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
);

Comentarios

Las llamadas que usan el código de control de FSCTL_ALLOW_EXTENDED_DASD_IO solo deben usarse con mucha precaución por parte de los programadores familiarizados con la estructura subyacente de una unidad de disco duro y un sistema de archivos. El uso incorrecto o la comprobación inexacta de las operaciones de escritura posteriores en la partición puede provocar daños en los datos de la partición o la destrucción de toda la partición.

El código de control de FSCTL_ALLOW_EXTENDED_DASD_IO se usa para indicar al controlador del sistema de archivos que no realice ninguna comprobación de límites de E/S en las llamadas de lectura o escritura realizadas con el identificador especificado. FSCTL_ALLOW_EXTENDED_DASD_IO permite el acceso a sectores ocultos, una parte de la partición que podría existir entre el primer sector de la partición (el bloque de parámetros de arranque) y el primer sector útil de la partición. FSCTL_ALLOW_EXTENDED_DASD_IO también permite el acceso a clústeres perdidos, que pueden existir entre el último clúster útil y el final de la partición.

Las solicitudes de E/S emitidas después de esta operación se pasan directamente al controlador del dispositivo. Si estas llamadas posteriores solicitan datos más allá del límite de partición, el controlador hace que se produzcan errores.

Para conocer las implicaciones de la E/S superpuesta en esta operación, consulte la sección Comentarios de DeviceIoControl.

Para recuperar un identificador de una partición, llame a CreateFile con el parámetro lpFileName establecido en una cadena del siguiente formulario:

\.\X:

donde X es la letra de unidad.

La aplicación que llama a CreateFile también debe especificar las marcas FILE_SHARE_READ y FILE_SHARE_WRITE en el parámetro dwShareMode de CreateFile. Para obtener más información, vea la sección Dispositivos de disco en CreateFile.

Para determinar la estructura de partición de la unidad y determinar si el sistema reconoce la partición, use el código de control IOCTL_DISK_GET_DRIVE_LAYOUT_EX o IOCTL_DISK_GET_DRIVE_LAYOUT , según corresponda. Para obtener información similar sobre una sola partición, use el código de control IOCTL_DISK_GET_PARTITION_INFO_EX o IOCTL_DISK_GET_PARTITION_INFO , según corresponda. Para determinar el tamaño de un clúster, use la función GetDiskFreeSpaceEx o GetDiskFreeSpace , según corresponda.

En Windows Server 2012, esta función es compatible con las siguientes tecnologías.

Tecnología Compatible
Protocolo Bloque de mensajes del servidor (SMB) 3.0 No
Conmutación por error transparente (TFO) de SMB 3.0 No
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO) No
Sistema de archivos de Volumen compartido de clúster (CsvFS)
Sistema de archivos resistente a errores (ReFS)

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado winioctl.h (incluya Windows.h)

Consulte también

CreateFile

DeviceIoControl

Códigos de control de administración de archivos

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