FSCTL_ALLOW_EXTENDED_DASD_IO IOCTL (winioctl.h)
Segnala al driver del file system di non eseguire alcun controllo dei limiti 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
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 ); |
Osservazioni
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. Un uso improprio o un controllo non accurato nelle successive operazioni di scrittura 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 dei limiti 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 (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 l'esito negativo.
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 specificare anche 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, utilizzare il codice di controllo IOCTL_DISK_GET_DRIVE_LAYOUT_EX o IOCTL_DISK_GET_DRIVE_LAYOUT, in base alle esigenze. Per informazioni simili su una singola partizione, usare il codice di controllo IOCTL_DISK_GET_PARTITION_INFO_EX o IOCTL_DISK_GET_PARTITION_INFO, in base alle esigenze. Per determinare le dimensioni di un cluster, usare il GetDiskFreeSpaceEx o funzione GetDiskFreeSpace, in base alle esigenze.
In Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.
Tecnologia | Sostenuto |
---|---|
Protocollo SMB (Server Message Block) 3.0 | No |
SMB 3.0 Transparent Failover (TFO) | No |
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) | No |
Cluster Shared Volume File System (CsvFS) | Sì |
Resilient File System (ReFS) | Sì |
Fabbisogno
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) |
Vedere anche
codici di controllo di gestione file
IOCTL_DISK_GET_DRIVE_LAYOUT_EX