FSCTL_OFFLOAD_READ_OUTPUT struttura (ntifs.h)

La struttura FSCTL_OFFLOAD_READ_OUTPUT contiene l'output per la richiesta di codice di controllo FSCTL_OFFLOAD_READ .

Sintassi

typedef struct _FSCTL_OFFLOAD_READ_OUTPUT {
  ULONG     Size;
  ULONG     Flags;
  ULONGLONG TransferLength;
  UCHAR     Token[512];
} FSCTL_OFFLOAD_READ_OUTPUT, *PFSCTL_OFFLOAD_READ_OUTPUT;

Members

Size

Dimensione della struttura. Impostare questo membro su sizeof(FSCTL_OFFLOAD_READ_OUTPUT).

Flags

Flag dei risultati. Questo valore è una combinazione OR bit per bit di questi valori:

Valore Significato
OFFLOAD_READ_FLAG_FILE_TOO_SMALL
0x00000001
Il file da cui leggere è troppo piccolo per un'operazione di offload.
OFFLOAD_READ_FLAG_ALL_ZERO_BEYOND_CURRENT_RANGE
0x00000002
L'intervallo che si estende oltre l'intervallo selezionato contiene tutti gli zero.
OFFLOAD_READ_FLAG_CANNOT_OFFLOAD_BEYOND_CURRENT_RANGE
0x00000004
L'operazione di offload non può completare oltre l'intervallo selezionato. Per completare l'operazione, è necessario usare un metodo di lettura non caricato.

TransferLength

Lunghezza, in byte, di dati rappresentati da Token.

Token[512]

Matrice di byte che contiene una struttura di token, STORAGE_OFFLOAD_TOKEN, che rappresenta i dati di un file all'interno di un intervallo specificato in FSCTL_OFFLOAD_READ_INPUT. Il contenuto del token deve rimanere invariato tra le operazioni di offload.

Commenti

Se l'operazione di FSCTL_OFFLOAD_READ ha esito positivo, il provider di copia del dispositivo di archiviazione restituisce, in FSCTL_OFFLOAD_READ_OUTPUT, un valore token univoco che identifica la parte dei dati del file letti.

Il provider di copia mantiene i dati letti per la durata nel membro TokenTimeToLive della struttura FSCTL_OFFLOAD_READ_INPUT .

Il token rappresenta un'area contigua del file a partire dall'offset richiesto nel membro FileOffset di FSCTL_OFFLOAD_READ_INPUT. La lunghezza risultante copiata, TransferLength, può essere inferiore a quella originariamente specificata nel membro CopyLength di FSCTL_OFFLOAD_READ_INPUT. Un valore più piccolo indica che token è stato in grado di rappresentare logicamente meno dati di quanto richiesto.

Se sono stati trasferiti meno dati richiesti, l'operazione di lettura può essere completata eseguendo un'altra richiesta di FSCTL_OFFLOAD_READ . La richiesta successiva usa il membro FileOffset aggiornato nella struttura FSCTL_OFFLOAD_READ_INPUT con il valore in TransferLength e una lunghezza di lettura modificata della lunghezza precedente meno il valore in TransferLength. Inoltre, un'operazione di lettura incompleta può essere completata tramite un metodo di lettura non caricato, usando la routine ZwReadFile , ad esempio.

Requisiti

Requisito Valore
Client minimo supportato Windows 8
Intestazione ntifs.h (include Ntifs.h, Fltkernel.h)

Vedi anche

FSCTL_OFFLOAD_READ

FSCTL_OFFLOAD_READ_INPUT

STORAGE_OFFLOAD_TOKEN