Partager via


FLT_PARAMETERS pour l’union IRP_MJ_READ

Le composant union suivant est utilisé lorsque le champ MajorFunction de la structure FLT_IO_PARAMETER_BLOCK de l’opération est IRP_MJ_READ.

Syntaxe

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    ULONG                   Length;
    ULONG POINTER_ALIGNMENT Key;
    LARGE_INTEGER           ByteOffset;
    PVOID                   ReadBuffer;
    PMDL                    MdlAddress;
  } Read;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

Membres

  • Lecture : Structure contenant les membres suivants.

  • Longueur : longueur, en octets, des données à lire.

  • Key : Valeur clé associée à un verrou de plage d’octets sur le fichier cible.

  • ByteOffset : début du décalage d’octet dans le fichier des données à lire.

  • ReadBuffer : pointeur vers une mémoire tampon qui reçoit les données lues à partir du fichier. Ce membre est facultatif et peut être NULL si un MDL est fourni dans MdlAddress. Consultez Remarques.

  • MdlAddress : Adresse d’une liste de descripteurs de mémoire (MDL) qui décrit la mémoire tampon vers laquelle pointe le membre ReadBuffer . Ce membre est facultatif et peut être NULL si une mémoire tampon est fournie dans ReadBuffer. Consultez Remarques.

Notes

La structure FLT_PARAMETERS pour les opérations de IRP_MJ_READ contient les paramètres d’une opération de lecture représentée par une structure de données de rappel (FLT_CALLBACK_DATA). Elle est contenue dans une structure FLT_IO_PARAMETER_BLOCK.

Si une mémoire tampon ReadBuffer et MdlAddress est fournie, il est recommandé que les mini-filtres utilisent le fichier MDL. Mémoire à laquelle ReadBuffer pointe est valide lorsqu’il s’agit d’une adresse en mode utilisateur accessible dans le contexte du processus appelant ou s’il s’agit d’une adresse en mode noyau.

Si un mini-filtre modifie la valeur de MdlAddress, après son rappel post-opération, Filter Manager libère le MDL actuellement stocké dans MdlAddress et restaure la valeur précédente de MdlAddress.

Si le bit IRP_MN_COMPLETE est défini dans Iopb-MinorFunction>, MdlAddress est l’adresse à envoyer à CcMdlReadComplete.

Si le bit IRP_MN_MDL (et non le bit IRP_MN_COMPLETE) est défini dans Iopb-MinorFunction>, MdlAddress est l’adresse à envoyer à CcMdlRead.

IRP_MJ_READ peut être une opération basée sur IRP ou une opération d’E/S rapide.

Spécifications

Type de condition requise Exigence
En-tête Fltkernel.h (inclure Fltkernel.h)

Voir aussi

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FLT_IS_FASTIO_OPERATION

FLT_IS_FS_FILTER_OPERATION

FLT_IS_IRP_OPERATION

FLT_PARAMETERS

FltReadFile

IRP_MJ_READ

ZwReadFile