Partager via


Fonction FsRtlKernelFsControlFile (ntifs.h)

La fonction FsRtlKernelFsControlFile génère un IRP FSCTL_XXX explicite, l’envoie dans la pile, attend de façon synchrone qu’il se termine et retourne le résultat. Cette fonction permet à l’appelant d’effectuer cette action par FileObject au lieu de handle.

Syntaxe

NTSTATUS FsRtlKernelFsControlFile(
  [in]  PFILE_OBJECT FileObject,
  [in]  ULONG        FsControlCode,
  [in]  PVOID        InputBuffer,
  [in]  ULONG        InputBufferLength,
  [out] PVOID        OutputBuffer,
  [out] ULONG        OutputBufferLength,
  [out] PULONG       RetOutputBufferSize
);

Paramètres

[in] FileObject

Pointeur vers le FILE_OBJECT sur lequel envoyer l’opération.

[in] FsControlCode

FSCTL_XXX code qui indique l’opération de contrôle du système de fichiers à effectuer. La valeur de ce paramètre détermine les formats et les longueurs requises de InputBuffer et OutputBuffer, ainsi que les paires de paramètres suivantes qui sont requises. Pour plus d’informations sur les codes FSCTL_XXX définis par le système, consultez la section « Remarques » de l’entrée de référence pour DeviceIoControl dans la documentation Microsoft Windows SDK.

[in] InputBuffer

Pointeur vers une mémoire tampon d’entrée allouée à l’appelant qui contient des informations spécifiques au périphérique à donner au pilote cible. Si FsControlCode spécifie une opération qui ne nécessite pas de données d’entrée, ce pointeur est facultatif et peut être NULL. Notez que cette mémoire tampon peut être modifiée lors du retour et que l’appelant doit s’y adapter. Cela est dû au fait que cette mémoire tampon peut être utilisée pour contenir les données de sortie.

[in] InputBufferLength

Longueur de l’objet InputBuffer en octets.

[out] OutputBuffer

Pointeur vers une mémoire tampon de sortie allouée par l’appelant dans laquelle les informations sont retournées à partir du pilote cible. Si FsControlCode spécifie une opération qui ne produit pas de données de sortie, ce pointeur est facultatif et peut être NULL.

[out] OutputBufferLength

Longueur de l’objet OutputBuffer en octets.

[out] RetOutputBufferSize

Reçoit le nombre d’octets réellement écrits (retournés) dans la mémoire tampon de sortie.

Valeur retournée

FsRtlKernelFsControlFile retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, comme l’une des valeurs suivantes.

Valeur Signification
STATUS_INSUFFICIENT_RESOURCES Un échec d’allocation de pool s’est produit.
STATUS_INVALID_PARAMETER Un paramètre non valide a été fourni (par exemple, un Objet FileObject non valide).

Remarques

FsRtlKernelFsControlFile définit l’IRP_MN_KERNEL_CALL code mineur qui lui permet d’effectuer des opérations sans nécessiter de privilèges de gestion du volume pour certaines opérations.

Cette fonction suppose que toutes les mémoires tampons qui lui sont passées sont des mémoires tampons en mode noyau.

Configuration requise

Condition requise Valeur
En-tête ntifs.h

Voir aussi

ZwFsControlFile