Share via


structure FSCTL_OFFLOAD_READ_OUTPUT (ntifs.h)

La structure FSCTL_OFFLOAD_READ_OUTPUT contient la sortie de la demande de code de contrôle FSCTL_OFFLOAD_READ .

Syntaxe

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

Membres

Size

La taille de cette structure. Définissez ce membre sur sizeof(FSCTL_OFFLOAD_READ_OUTPUT).

Flags

Indicateurs de résultat. Cette valeur est une combinaison au niveau du bit OU de ces valeurs :

Valeur Signification
OFFLOAD_READ_FLAG_FILE_TOO_SMALL
0x00000001
Le fichier à lire est trop petit pour une opération de déchargement.
OFFLOAD_READ_FLAG_ALL_ZERO_BEYOND_CURRENT_RANGE
0x00000002
La plage qui s’étend au-delà de la plage sélectionnée contient tous les zéros.
OFFLOAD_READ_FLAG_CANNOT_OFFLOAD_BEYOND_CURRENT_RANGE
0x00000004
L’opération de déchargement ne peut pas se terminer au-delà de la plage sélectionnée. Une méthode de lecture non déchargée doit être utilisée pour terminer l’opération.

TransferLength

Longueur, en octets, des données représentées par Jeton.

Token[512]

Tableau d’octets qui contient une structure de jetons, STORAGE_OFFLOAD_TOKEN, représentant des données de fichier dans une plage spécifiée dans FSCTL_OFFLOAD_READ_INPUT. Le contenu du jeton ne doit pas être modifié entre les opérations de déchargement.

Remarques

Si l’opération de FSCTL_OFFLOAD_READ réussit, le fournisseur de copie de l’appareil de stockage retourne, dans FSCTL_OFFLOAD_READ_OUTPUT, une valeur de jeton unique identifiant la partie des données de fichier lues.

Le fournisseur de copie conserve les données lues pendant toute la durée dans le membre TokenTimeToLive de la structure FSCTL_OFFLOAD_READ_INPUT .

Le jeton représente une région contiguë du fichier commençant par le décalage demandé dans le membre FileOffset de FSCTL_OFFLOAD_READ_INPUT. La longueur copiée résultante, TransferLength, peut être inférieure à ce qui a été spécifié à l’origine dans le membre CopyLength de FSCTL_OFFLOAD_READ_INPUT. Une valeur plus petite indique que Token a pu représenter logiquement moins de données que ce qui a été demandé.

Si moins de données que celles demandées ont été transférées, l’opération de lecture peut être terminée en effectuant une autre FSCTL_OFFLOAD_READ demande. La requête suivante utilise le membre FileOffset mis à jour dans la structure FSCTL_OFFLOAD_READ_INPUT avec la valeur dans TransferLength et une longueur de lecture ajustée de la longueur précédente moins la valeur dans TransferLength. En outre, une opération de lecture incomplète peut être effectuée via une méthode de lecture non déchargée, à l’aide de la routine ZwReadFile , par exemple.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8.
En-tête ntifs.h (include Ntifs.h, Fltkernel.h)

Voir aussi

FSCTL_OFFLOAD_READ

FSCTL_OFFLOAD_READ_INPUT

STORAGE_OFFLOAD_TOKEN