énumération WDF_FILEOBJECT_CLASS (wdfdevice.h)

[S’applique à KMDF et UMDF]

L’énumération WDF_FILEOBJECT_CLASS définit des valeurs qui identifient si un pilote nécessite un objet de fichier d’infrastructure pour représenter un fichier qu’une application ou un autre pilote tente de créer ou d’ouvrir. Ces valeurs spécifient également l’emplacement où l’infrastructure peut stocker le handle de l’objet.

Syntax

typedef enum _WDF_FILEOBJECT_CLASS {
  WdfFileObjectInvalid = 0,
  WdfFileObjectNotRequired = 1,
  WdfFileObjectWdfCanUseFsContext = 2,
  WdfFileObjectWdfCanUseFsContext2 = 3,
  WdfFileObjectWdfCannotUseFsContexts = 4,
  WdfFileObjectCanBeOptional = 0x80000000
} WDF_FILEOBJECT_CLASS, *PWDF_FILEOBJECT_CLASS;

Constantes

 
WdfFileObjectInvalid
Valeur : 0
Réservé à un usage interne.
WdfFileObjectNotRequired
Valeur : 1
Le pilote ne nécessite pas d’objet de fichier d’infrastructure.
WdfFileObjectWdfCanUseFsContext
Valeur : 2
Le pilote nécessite un objet de fichier d’infrastructure. L’infrastructure peut stocker le handle de l’objet dans le membre FsContext de la structure FILE_OBJECT du modèle de pilote Windows (WDM) du fichier.
WdfFileObjectWdfCanUseFsContext2
Valeur : 3
Le pilote nécessite un objet de fichier d’infrastructure. L’infrastructure peut stocker le handle de l’objet dans le membre FsContext2 de la structure de FILE_OBJECT WDM du fichier.
WdfFileObjectWdfCannotUseFsContexts
Valeur : 4
Le pilote nécessite un objet de fichier d’infrastructure. L’infrastructure ne peut pas stocker le handle de l’objet dans le membre FsContext ou FsContext2 de la structure FILE_OBJECT WDM du fichier, car un ou plusieurs pilotes utilisent ces membres. Par conséquent, l’infrastructure doit stocker le handle en interne.
WdfFileObjectCanBeOptional
Valeur : 0x80000000
Le pilote nécessite généralement un objet de fichier d’infrastructure, mais il peut également gérer des situations spéciales dans lesquelles un objet de fichier d’infrastructure est manquant ou différent. Pour plus d’informations sur ces situations, consultez la section Remarques suivante.

WdfFileObjectCanBeOptional est un indicateur de bits que votre pilote peut OU avec la valeur d’énumérateur WdfFileObjectWdfCanUseFsContext, WdfFileObjectWdfCanUseFsContext2 ou WdfFileObjectWdfCannotUseFsContexts .

La plupart des pilotes basés sur l’infrastructure n’utilisent pas cet indicateur de bits.

La valeur WdfFileObjectCanBeOptional est disponible dans la version 1.9 et les versions ultérieures de KMDF.

Remarques

L’énumération WDF_FILEOBJECT_CLASS est utilisée dans la structure WDF_FILEOBJECT_CONFIG.

Si votre pilote appelle WdfRequestGetFileObject pour obtenir des objets de fichier d’infrastructure pour les demandes d’E/S, et si vous savez que certains des paquets de demandes d’E/S WDM que votre pilote reçoit n’incluent pas d’objets de fichier WDM, le pilote peut définir l’indicateur de bits WdfFileObjectCanBeOptional .

Si votre pilote définit la valeur WdfFileObjectWdfCanUseFsContext, WdfFileObjectWdfCanUseFsContext2 ou WdfFileObjectWdfCannotUseFsContexts et ne définit pas l’indicateur de bits WdfFileObjectCanBeOptional , le vérificateur de l’infrastructure signale une erreur pour les cas suivants lorsque le pilote appelle la méthode WdfRequestGetFileObject :

  • Un IRP n’inclut pas d’objet de fichier WDM.
  • Un IRP inclut un objet de fichier WDM, mais l’objet file est différent de celui inclus dans l’IRP de création de fichier.
Si l’indicateur de bits WdfFileObjectCanBeOptional est défini, le vérificateur de l’infrastructure ignore ces cas.

Configuration requise

Condition requise Valeur
Version KMDF minimale 1.0
Version UMDF minimale 2.0
En-tête wdfdevice.h (inclure Wdf.h)

Voir aussi

FILE_OBJECT

WDF_FILEOBJECT_CONFIG