FsRtlKernelFsControlFile, fonction (ntifs.h)
La fonction FsRtlKernelFsControlFile génère un IRP FSCTL_XXX explicite, l’envoie à la pile, attend de façon synchrone qu’elle se termine et retourne le résultat. Cette fonction permet à l’appelant d’effectuer cette action en FileObject au lieu de gérer.
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 la FILE_OBJECT pour 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 des InputBuffer et OutputBuffer, ainsi que les paires de paramètres suivantes. Pour plus d’informations sur les codes de 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 du Kit de développement logiciel (SDK) Microsoft Windows.
[in] InputBuffer
Pointeur vers une mémoire tampon d’entrée allouée par l’appelant qui contient des informations spécifiques à l’appareil à 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’adapter à cela. Cela est dû au fait que cette mémoire tampon peut être utilisée pour contenir les données de sortie.
[in] InputBufferLength
Longueur du 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 par le 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 du OutputBuffer en octets.
[out] RetOutputBufferSize
Reçoit le nombre d’octets réellement écrits (retournés) dans la mémoire tampon de sortie.
Valeur de retour
FsRtlKernelFsControlFile retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple 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 FileObjectnon valide). |
Remarques
FsRtlKernelFsControlFile définit le code secondaire IRP_MN_KERNEL_CALL qui lui permet d’effectuer des opérations sans nécessiter de privilège de volume pour certaines opérations.
Cette fonction part du principe que toutes les mémoires tampons transmises sont des mémoires tampons en mode noyau.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | ntifs.h |