Partager via


énumération WDF_REQUEST_SEND_OPTIONS_FLAGS (wdfrequest.h)

[S’applique à KMDF et UMDF]

Le type d’énumération WDF_REQUEST_SEND_OPTIONS_FLAGS définit les indicateurs utilisés dans la structure de WDF_REQUEST_SEND_OPTIONS d’un pilote.

Syntax

typedef enum _WDF_REQUEST_SEND_OPTIONS_FLAGS {
  WDF_REQUEST_SEND_OPTION_TIMEOUT = 0x00000001,
  WDF_REQUEST_SEND_OPTION_SYNCHRONOUS = 0x00000002,
  WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE = 0x00000004,
  WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET = 0x00000008,
  WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT = 0x00010000,
  WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE = 0x00020000
} WDF_REQUEST_SEND_OPTIONS_FLAGS;

Constantes

 
WDF_REQUEST_SEND_OPTION_TIMEOUT
Valeur : 0x00000001
Si le pilote définit cet indicateur, le membre Timeout de la structure WDF_REQUEST_SEND_OPTIONS est valide.
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS
Valeur : 0x00000002
Si le pilote définit cet indicateur, l’infrastructure gère la requête d’E/S associée de manière synchrone. (Le pilote n’a pas besoin de définir cet indicateur s’il appelle une méthode d’objet dont le nom se termine par « Synchronously », telle que WdfIoTargetSendReadSynchronously.)
WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE
Valeur : 0x00000004
Si le pilote définit cet indicateur, l’infrastructure envoie la demande d’E/S à la cible d’E/S, quel que soit l’état de la cible d’E/S. S’il n’est pas défini, l’infrastructure met en file d’attente la requête si la cible est arrêtée. La définition de cet indicateur permet à un pilote d’envoyer une demande, telle qu’une demande de réinitialisation d’un canal USB, à un appareil après que le pilote a appelé WdfIoTargetStop.
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
Valeur : 0x00000008
Si le pilote définit cet indicateur, le pilote envoie la requête de manière asynchrone et n’a pas besoin d’être averti lorsque la demande est terminée ou annulée. Le framework envoie la demande d’E/S à la cible d’E/S, quel que soit l’état de la cible d’E/S. Le pilote ne définit pas de fonction de rappel CompletionRoutine ou n’appelle pas WdfRequestComplete pour la requête. Si le pilote définit cet indicateur, il ne peut pas définir d’autres indicateurs. Pour plus d’informations sur cet indicateur, consultez la section Remarques suivante.
WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT
Valeur : 0x00010000
Cet indicateur s’applique uniquement à UMDF. Si la valeur est définie et si le type de demande d’E/S est WdfRequestTypeCreate, la méthode WdfRequestSend tente de passer le niveau d’emprunt d’identité du client à la cible d’E/S du pilote. La méthode WdfRequestSend retourne un code d’erreur si la tentative d’emprunt d’identité échoue, sauf si le pilote définit également l’indicateur WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE .
WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE
Valeur : 0x00020000
Cet indicateur s’applique uniquement à UMDF. Si cette option est définie, l’infrastructure envoie toujours la demande même si l’emprunt d’identité échoue. Vous pouvez utiliser cette valeur uniquement avec WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT.

Remarques

Un pilote qui définit l’indicateur WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET ne met généralement pas en forme la demande d’E/S avant d’appeler WdfRequestSend pour envoyer la demande à une cible d’E/S. En fait, un pilote qui définit cet indicateur ne doit appeler aucune des méthodes WdfIoTargetFormatRequestForXxx avant d’appeler WdfRequestSend. Le pilote peut utiliser uniquement la méthode WdfRequestFormatRequestUsingCurrentType ou WdfRequestWdmFormatUsingStackLocation pour mettre en forme la requête.

Votre pilote ne peut pas définir l’indicateur WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET dans les situations suivantes :

Pour obtenir la version UMDF de cette énumération, consultez WDF_REQUEST_SEND_OPTIONS_FLAGS (UMDF).

Configuration requise

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

Voir aussi

WDF_REQUEST_SEND_OPTIONS

WdfIoTargetStop