FSCTL_OFFLOAD_READ codice di controllo
Il codice di controllo FSCTL_OFFLOAD_READ avvia una lettura offload per un blocco di dati in un sistema di archiviazione che supporta le primitive di lettura di offload.
Per eseguire questa operazione, chiamare FltFsControlFile o ZwFsControlFile con i parametri seguenti.
Parametri
Istanza [in]: Solo FltFsControlFile . Puntatore opaco dell'istanza per il chiamante. Questo parametro è obbligatorio e non può essere NULL.
FileObject [in]: Solo FltFsControlFile . Oggetto puntatore file che specifica il file da cui leggere. Questo parametro è obbligatorio e non può essere NULL.
FileHandle [in]: ZwFsControlFile solo. Handle file del file da cui leggere. Questo parametro è obbligatorio e non può essere NULL.
FsControlCode [in]: codice di controllo per l'operazione. Usare FSCTL_OFFLOAD_READ per questa operazione.
InputBuffer [in]: puntatore a una struttura FSCTL_OFFLOAD_READ_INPUT che contiene le dimensioni e l'offset di un blocco di dati da leggere.
InputBufferLength [in]: dimensioni, in byte, del buffer a cui punta InputBuffer. Questo valore è sizeof(FSCTL_OFFLOAD_READ_INPUT).
OutputBuffer [out]: puntatore a una struttura FSCTL_OFFLOAD_READ_OUTPUT , che riceve i risultati dell'operazione di lettura di offload.
OutputBufferLength [out]: dimensioni, in byte, del buffer a cui punta il parametro OutputBuffer . Questo valore deve essere almeno sizeof(FSCTL_OFFLOAD_READ_OUTPUT).
Blocco dello stato
FltFsControlFile o ZwFsControlFile restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, la funzione appropriata potrebbe restituire uno dei valori NTSTATUS seguenti.
Codice | Significato |
---|---|
STATUS_INVALID_DEVICE_REQUEST | L'handle specificato non è un handle di file valido |
STATUS_INVALID_PARAMETER | Un parametro non è valido. Vedere la sezione Osservazioni. |
STATUS_VOLUME_DISMOUNTED | Il volume del file system è smontato. |
STATUS_NOT_SUPPORTED | Le operazioni di lettura di offload non sono supportate in questo volume. |
STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED | Il tipo di file richiesto non è supportato. Le operazioni di offload non sono supportate in questi tipi di file: un file transacted (TxF); File non utente; File compressi; File crittografati; File sparse; File metatdata NTFS. |
STATUS_FILE_DELETED | Il flusso di dati per questo file non è valido. |
STATUS_FILE_CLOSED | L'handle di file è chiuso. |
STATUS_INVALID_HANDLE | L'handle di file specificato non è valido. |
STATUS_FILE_LOCK_CONFLICT | Accesso in lettura insufficiente a causa dello stato di blocco del file corrente. |
STATUS_END_OF_FILE | Il membro FileOffset di FSCTL_OFFLOAD_READ_INPUT inizia dopo la fine del file (EOF). |
STATUS_DISMOUNTED_VOLUME | Impossibile eseguire una lettura offload in un volume smontato. |
STATUS_INSUFFICIENT_RESOUCES | Le risorse insufficienti sono disponibili per completare la richiesta. |
STATUS_BUFFER_TOO_SMALL | OutputBufferLength è troppo piccolo per OutputBuffer per ricevere una struttura FSCTL_OFFLOAD_READ_OUTPUT . |
Commenti
La lettura offload è disponibile solo per i file normali. Per un elenco di tipi di file non supportati, vedere la descrizione per STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED .
È possibile che le letture inizino oltre la lunghezza dati valida (VDL), ma non oltre EOF.
Quando viene restituito STATUS_INVALID_PARAMETER, l'errore potrebbe essere uno dei seguenti parametri non validi:
- Le dimensioni del file sono inferiori a PAGE_SIZE.
- InputBufferLength<
sizeof(FSCTL_OFFLOAD_READ_INPUT)
. - Uno o più di questi membri di FSCTL_OFFLOAD_READ_INPUT non sono corretti:
- FileOffset non è un multiplo delle dimensioni del settore logico del volume.
- CopyLength non è un multiplo delle dimensioni del settore logico del volume.
- Le dimensioni non sono le dimensioni della struttura FSCTL_OFFLOAD_READ_INPUT .
- FileOffset + CopyLength>MAXULONGLONGLONG.
Requisiti
Tipo di requisito | Requisito |
---|---|
Client minimo supportato | Windows 8 |
Intestazione | Ntifs.h (include Ntifs.h o Fltkernel.h) |