Partager via


Fonction FltDeviceIoControlFile (fltkernel.h)

FltDeviceIoControlFile envoie un code de contrôle directement à un pilote de périphérique spécifié, ce qui entraîne l’exécution de l’action spécifiée par le pilote correspondant.

Syntaxe

NTSTATUS FLTAPI FltDeviceIoControlFile(
  [in]            PFLT_INSTANCE Instance,
  [in]            PFILE_OBJECT  FileObject,
  [in]            ULONG         IoControlCode,
  [in, optional]  PVOID         InputBuffer,
  [in]            ULONG         InputBufferLength,
  [out]           PVOID         OutputBuffer,
  [in]            ULONG         OutputBufferLength,
  [out, optional] PULONG        LengthReturned
);

Paramètres

[in] Instance

Pointeur de instance opaque pour l’appelant. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

[in] FileObject

Pointeur d’objet de fichier pour le fichier ou l’appareil qui est la cible de cette requête. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

[in] IoControlCode

IOCTL_ codeXXX qui indique l’opération d’E/S de l’appareil à effectuer. La valeur de ce paramètre détermine les formats et les longueurs requises de InputBuffer et OutputBuffer, et détermine laquelle des paires de paramètres suivantes (InputBuffer et InputBufferLength, ou OutputBufferLength) est requise.

[in, optional] InputBuffer

Pointeur vers une mémoire tampon d’entrée allouée à l’appelant qui contient des informations spécifiques à l’appareil à donner au pilote cible. Si le paramètre IoControlCode spécifie une opération qui ne nécessite pas de données d’entrée, ce paramètre est facultatif et peut être NULL.

[in] InputBufferLength

Taille, en octets, de la mémoire tampon sur InputBuffer. Cette valeur est ignorée si InputBuffer a la valeur NULL.

[out] OutputBuffer

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

[in] OutputBufferLength

Taille, en octets, de la mémoire tampon dans OutputBuffer. Cette valeur est ignorée si OutputBuffer a la valeur NULL.

[out, optional] LengthReturned

Pointeur vers une variable allouée par l’appelant qui reçoit la taille, en octets, des informations retournées dans la mémoire tampon dans OutputBuffer. Ce paramètre est facultatif et peut être NULL.

Valeur retournée

FltDeviceIoControlFile retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée.

Remarques

Pour plus d’informations sur les codes IOCTL_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.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête fltkernel.h (inclure Fltkernel.h)
Bibliothèque FltMgr.lib
IRQL PASSIVE_LEVEL

Voir aussi

FltFsControlFile