Partager via


FLT_PARAMETERS pour l’union IRP_MJ_PREPARE_MDL_WRITE

Le membre de l’union FLT_PARAMETERS suivant est utilisé lorsque FLT_IO_PARAMETER_BLOCK.MajorFunction est IRP_MJ_PREPARE_MDL_WRITE.

Syntaxe

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    LARGE_INTEGER           FileOffset;
    ULONG POINTER_ALIGNMENT Length;
    ULONG POINTER_ALIGNMENT Key;
    PMDL                    *MdlChain;
  } PrepareMdlWrite;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

Membres

  • PrepareMdlWrite : Structure contenant les membres suivants.

  • FileOffset : Octet de départ dans le fichier mis en cache.

  • Length : Longueur, en octets, des données à écrire dans le fichier mis en cache.

  • Key : Valeur clé associée à un verrou de plage d’octets sur le fichier cible. Si la plage à écrire chevauche ou est une sous-plage d’une plage verrouillée exclusivement dans le fichier, ce paramètre doit être la clé de ce verrou exclusif. Le verrou exclusif doit être détenu par le processus parent du thread appelant ; sinon, ce paramètre est ignoré.

  • MdlChain : Pointeur vers une variable qui reçoit un pointeur vers une chaîne d’une ou plusieurs listes de descripteurs de mémoire (MDL) qui décrivent les pages contenant les données à écrire.

Notes

IRP_MJ_PREPARE_MDL_WRITE est une opération d’E/S rapide. Elle fait la même chose que IRP_MJ_WRITE + IRP_MN_MDL à l’exception de la différence suivante :

  • L’opération basée sur IRP configure la mise en cache sur le fichier si celui-ci n’est pas déjà mis en cache avant de faire le travail MDL.
  • L’opération Fast IO (opération d'E/S rapide ) échoue si le fichier n’est pas déjà mis en cache.

La structure FLT_PARAMETERS pour les opérations IRP_MJ_PREPARE_MDL_WRITE contient les paramètres pour une opération rapide d’E/S PrepareMdlWrite. L’opération est représentée par une structure de données de rappel (FLT_CALLBACK_DATA). Elle est contenue dans une structure FLT_IO_PARAMETER_BLOCK, avec les paramètres de l’opération dans la structure FLT_IO_PARAMETER_BLOCK à laquelle Iopb pointe.

Si une demande rapide d’E/S IRP_MJ_PREPARE_MDL_WRITE échoue, l’émetteur de l’E/S détermine comment réémettre la demande. Par exemple, la requête peut être rééditée en tant qu’opération basée sur IRP à l’aide de IRP_MJ_WRITE + IRP_MN_MDL.

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