Partager via


code de contrôle FSCTL_OFFLOAD_READ

Le code de contrôle FSCTL_OFFLOAD_READ lance une lecture de déchargement pour un bloc de données dans un système de stockage qui prend en charge les primitives de lecture de déchargement.

Pour effectuer cette opération, appelez FltFsControlFile ou ZwFsControlFile avec les paramètres suivants.

Paramètres

  • Instance [in] : FltFsControlFile uniquement. Pointeur de instance opaque pour l’appelant. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

  • FileObject [in] : FltFsControlFile uniquement. Objet pointeur de fichier spécifiant le fichier à partir duquel lire. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

  • FileHandle [in] : ZwFsControlFile uniquement. Handle de fichier du fichier à partir duquel lire. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

  • FsControlCode [in] : code de contrôle de l’opération. Utilisez FSCTL_OFFLOAD_READ pour cette opération.

  • InputBuffer [in] : pointeur vers une structure FSCTL_OFFLOAD_READ_INPUT , qui contient la taille et le décalage d’un bloc de données à lire.

  • InputBufferLength [in] : taille, en octets, de la mémoire tampon pointée par InputBuffer. Cette valeur est sizeof(FSCTL_OFFLOAD_READ_INPUT).

  • OutputBuffer [out] : pointeur vers une structure FSCTL_OFFLOAD_READ_OUTPUT , qui reçoit les résultats de l’opération de lecture de déchargement.

  • OutputBufferLength [out] : taille, en octets, de la mémoire tampon pointée vers le paramètre OutputBuffer . Cette valeur doit être au moins sizeof(FSCTL_OFFLOAD_READ_OUTPUT).

Bloc d’état

FltFsControlFile ou ZwFsControlFile retourne STATUS_SUCCESS si l’opération réussit. Sinon, la fonction appropriée peut retourner l’une des valeurs NTSTATUS suivantes.

Code Signification
STATUS_INVALID_DEVICE_REQUEST Le handle spécifié n’est pas un handle de fichier valide
STATUS_INVALID_PARAMETER Un paramètre n'est pas valide. Consultez la section Notes.
STATUS_VOLUME_DISMOUNTED Le volume du système de fichiers est démonté.
STATUS_NOT_SUPPORTED Les opérations de lecture de déchargement ne sont pas prises en charge sur ce volume.
STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED Le type de fichier demandé n’est pas pris en charge. Les opérations de déchargement ne sont pas prises en charge sur ces types de fichiers : un fichier traité (TxF) ; Fichiers non utilisateur ; Fichiers compressés ; Fichiers chiffrés ; Fichiers partiellement alloués ; Fichiers Metatdata NTFS.
STATUS_FILE_DELETED Le flux de données de ce fichier n’est pas valide.
STATUS_FILE_CLOSED Le handle de fichier est fermé.
STATUS_INVALID_HANDLE Le handle de fichier spécifié n’est pas valide.
STATUS_FILE_LOCK_CONFLICT Accès en lecture insuffisant en raison de l’état actuel de verrouillage des fichiers.
STATUS_END_OF_FILE Le membre FileOffset de FSCTL_OFFLOAD_READ_INPUT commence après la fin du fichier (EOF).
STATUS_DISMOUNTED_VOLUME Une lecture de déchargement ne peut pas se produire sur un volume démonté.
STATUS_INSUFFICIENT_RESOUCES Les ressources disponibles sont insuffisantes pour effectuer la demande.
STATUS_BUFFER_TOO_SMALL OutputBufferLength est trop petit pour que OutputBuffer reçoive une structure FSCTL_OFFLOAD_READ_OUTPUT .

Remarques

La lecture de déchargement est disponible uniquement pour les fichiers normaux. Consultez la description de STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED pour obtenir la liste des types de fichiers non pris en charge.

Il est possible que les lectures démarrent au-delà de la longueur des données valides (VDL), mais pas au-delà d’EOF.

Lorsque STATUS_INVALID_PARAMETER est retourné, l’erreur peut être l’un des paramètres non valides suivants :

  • La taille du fichier est inférieure à PAGE_SIZE.
  • InputBufferLength<sizeof(FSCTL_OFFLOAD_READ_INPUT).
  • Un ou plusieurs de ces membres de FSCTL_OFFLOAD_READ_INPUT sont incorrects :
    • FileOffset n’est pas un multiple de la taille du secteur logique du volume.
    • CopyLength n’est pas un multiple de la taille du secteur logique du volume.
    • La taille n’est pas la taille de la structure FSCTL_OFFLOAD_READ_INPUT .
    • FileOffset + CopyLength>MAXULONGLONG.

Configuration requise

Type d’exigence Condition requise
Client minimal pris en charge Windows 8
En-tête Ntifs.h (inclure Ntifs.h ou Fltkernel.h)

Voir aussi

FltFsControlFile

ZwFsControlFile

FSCTL_OFFLOAD_READ_INPUT

FSCTL_OFFLOAD_READ_OUTPUT