Condividi tramite


FSCTL_OFFLOAD_WRITE codice di controllo

Il codice di controllo FSCTL_OFFLOAD_WRITE avvia una scrittura offload per un blocco di dati in un sistema di archiviazione che supporta le primitive di scrittura di offload.

Per eseguire questa operazione, i driver minifilter chiamano FltFsControlFile con i parametri seguenti e i file system, i reindirizzamenti e i driver di filtro del file system legacy chiamano 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 scrivere. Questo parametro è obbligatorio e non può essere NULL.

  • FileHandle [in]: ZwFsControlFile solo. Handle file del file da scrivere in. Questo parametro è obbligatorio e non può essere NULL.

  • FsControlCode [in]: codice di controllo per l'operazione. Usare FSCTL_OFFLOAD_WRITE per questa operazione.

  • InputBuffer [in]: puntatore a una struttura FSCTL_OFFLOAD_WRITE_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_WRITE_INPUT).

  • OutputBuffer [out]: puntatore a una struttura FSCTL_OFFLOAD_WRITE_INPUT , che contiene le dimensioni e l'offset di un blocco di dati da leggere.

  • 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_NOT_SUPPORTED Le operazioni di lettura di offload non sono supportate in questo volume.
STATUS_OFFLOAD_WRITE_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_TOO_LATE Un'operazione di scrittura è stata tentata di un volume dopo che è stata smontata.
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 Impossibile concedere l'accesso in lettura o scrittura a causa dello stato di blocco del file corrente.
STATUS_END_OF_FILE Il membro FileOffset diFSCTL_OFFLOAD_WRITE_INPUT inizia dopo la fine del file (EOF).
STATUS_DISMOUNTED_VOLUME Non è possibile eseguire una scrittura offload in un volume smontato.
STATUS_MEDIA_WRITE_PROTECTED Il volume è di sola lettura.
STATUS_INSUFFICIENT_RESOUCES Le risorse insufficienti sono disponibili per completare la richiesta.
STATUS_BUFFER_TOO_SMALL InputBufferLength è troppo piccolo per InputBuffer per contenere una strutturaFSCTL_OFFLOAD_WRITE_INPUT o OutputBufferLength è troppo piccolo per OutputBuffer per ricevere una struttura FSCTL_OFFLOAD_WRITE_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_WRITE_FILE_NOT_SUPPORTED .

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_OUTPUT).
  • Uno o più di questi membri diFSCTL_OFFLOAD_WRITE_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. TransferOffset non è un multiplo delle dimensioni del settore logico del volume. Le dimensioni non sono le dimensioni della strutturaFSCTL_OFFLOAD_WRITE_INPUT . FileOffset> Lunghezza dati valida (VDL) per il file. FileOffset + CopyLength>MAXULONGLONGLONG.

Requisiti

Tipo di requisito Requisito
Client minimo supportato Windows 8
Intestazione Ntifs.h (include Ntifs.h o Fltkernel.h)

Vedi anche

FltFsControlFile

ZwFsControlFile

FSCTL_OFFLOAD_WRITE_INPUT

FSCTL_OFFLOAD_WRITE_OUTPUT