Share via


FSCTL_ALLOW_EXTENDED_DASD_IO IOCTL (winioctl.h)

Segnala al driver del file system di non eseguire controlli limite di I/O sulle chiamate di lettura o scrittura della partizione. I controlli limite vengono invece eseguiti dal driver di dispositivo.

Per eseguire questa operazione, chiamare la funzione DeviceIoControl con i parametri seguenti.

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

Commenti

Una chiamata che usa il codice di controllo FSCTL_ALLOW_EXTENDED_DASD_IO deve essere usata solo con grande cautela dai programmatori che hanno familiarità con la struttura sottostante di un'unità disco rigido e di un file system. L'uso improprio o il controllo non accurato nelle operazioni di scrittura successive nella partizione può causare danni ai dati nella partizione o alla distruzione dell'intera partizione.

Il codice di controllo FSCTL_ALLOW_EXTENDED_DASD_IO viene usato per segnalare al driver del file system di non eseguire controlli limite di I/O su chiamate di lettura o scrittura effettuate con l'handle specificato. FSCTL_ALLOW_EXTENDED_DASD_IO consente l'accesso a settori nascosti, una parte della partizione che potrebbe esistere tra il primo settore della partizione (il blocco di parametri di avvio) e il primo settore utile della partizione. FSCTL_ALLOW_EXTENDED_DASD_IO consente anche l'accesso ai cluster persi, che potrebbero esistere tra l'ultimo cluster utile e la fine della partizione.

Le richieste di I/O inviate dopo l'operazione vengono passate direttamente al driver di dispositivo. Se queste chiamate successive richiedono dati oltre il limite della partizione, il driver li causa un errore.

Per le implicazioni dell'I/O sovrapposto in questa operazione, vedere la sezione Osservazioni di DeviceIoControl.

Per recuperare un handle in una partizione, chiamare CreateFile con il parametro lpFileName impostato su una stringa del formato seguente:

\.\X:

dove X è la lettera di unità.

L'applicazione che chiama CreateFile deve anche specificare i flag FILE_SHARE_READ e FILE_SHARE_WRITE nel parametro dwShareMode di CreateFile. Per altre informazioni, vedere la sezione Dispositivi disco in CreateFile.

Per determinare la struttura di partizione dell'unità e per determinare se il sistema riconosce la partizione, usare il codice di controllo IOCTL_DISK_GET_DRIVE_LAYOUT_EX o IOCTL_DISK_GET_DRIVE_LAYOUT , se necessario. Per informazioni simili su una singola partizione, usare il codice di controllo IOCTL_DISK_GET_PARTITION_INFO_EX o IOCTL_DISK_GET_PARTITION_INFO , a seconda delle esigenze. Per determinare le dimensioni di un cluster, usare la funzione GetDiskFreeSpaceEx o GetDiskFreeSpace , in base alle esigenze.

In Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.

Tecnologia Supportato
Protocollo SMB (Server Message Block) 3.0 No
Failover trasparente SMB 3.0 (TFO) No
SMB 3.0 con condivisioni file di scalabilità orizzontale (SO) No
File system del volume condiviso cluster (CsvFS)
Resilient File System (ReFS)

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione winioctl.h (include Windows.h)

Vedi anche

CreateFile

Deviceiocontrol

Codici di controllo della gestione dei file

GetDiskFreeSpace

Getdiskfreespaceex

IOCTL_DISK_GET_DRIVE_LAYOUT

IOCTL_DISK_GET_DRIVE_LAYOUT_EX

IOCTL_DISK_GET_PARTITION_INFO

IOCTL_DISK_GET_PARTITION_INFO_EX

SOVRAPPOSTA