WDF_REQUEST_SEND_OPTIONS_FLAGS-Enumeration (wdfrequest.h)

[Gilt für KMDF und UMDF]

Der WDF_REQUEST_SEND_OPTIONS_FLAGS Enumerationstyp definiert Flags, die in der WDF_REQUEST_SEND_OPTIONS-Struktur eines Treibers verwendet werden.

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;

Konstanten

 
WDF_REQUEST_SEND_OPTION_TIMEOUT
Wert: 0x00000001
Wenn der Treiber dieses Flag festlegt, ist das Timeoutelement der WDF_REQUEST_SEND_OPTIONS-Struktur gültig.
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS
Wert: 0x00000002
Wenn der Treiber dieses Flag festlegt, verarbeitet das Framework die zugeordnete E/A-Anforderung synchron. (Der Treiber muss dieses Flag nicht festlegen, wenn er eine Objektmethode aufruft, deren Name mit "Synchron" endet, z. B. WdfIoTargetSendReadSynchronously.)
WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE
Wert: 0x00000004
Wenn der Treiber dieses Flag festlegt, sendet das Framework die E/A-Anforderung unabhängig vom Status des E/A-Ziels an das E/A-Ziel. Wenn nicht festgelegt, stellt das Framework die Anforderung in die Warteschlange, wenn das Ziel angehalten wird. Durch Festlegen dieses Flags kann ein Treiber eine Anforderung, z. B. eine Anforderung zum Zurücksetzen einer USB-Pipe, an ein Gerät senden, nachdem der Treiber WdfIoTargetStop aufgerufen hat.
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
Wert: 0x00000008
Wenn der Treiber dieses Flag festlegt, sendet der Treiber die Anforderung asynchron und muss nicht benachrichtigt werden, wenn die Anforderung abgeschlossen oder abgebrochen wird. Das Framework sendet die E/A-Anforderung unabhängig vom Status des E/A-Ziels an das E/A-Ziel. Der Treiber legt keine CompletionRoutine-Rückruffunktion fest oder ruft WdfRequestComplete für die Anforderung nicht auf. Wenn der Treiber dieses Flag festlegt, kann er keine anderen Flags festlegen. Weitere Informationen zu diesem Flag finden Sie im abschnitt Hinweise.
WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT
Wert: 0x00010000
Dieses Flag gilt nur für UMDF. Wenn festgelegt ist und der E/A-Anforderungstyp WdfRequestTypeCreate ist, versucht die WdfRequestSend-Methode , die Identitätswechselebene des Clients an das E/A-Ziel des Treibers zu übergeben. Die WdfRequestSend-Methode gibt einen Fehlercode zurück, wenn der Identitätswechselversuch fehlschlägt, es sei denn, der Treiber legt auch das WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE-Flag fest.
WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE
Wert: 0x00020000
Dieses Flag gilt nur für UMDF. Wenn festgelegt, sendet das Framework die Anforderung auch dann, wenn der Identitätswechsel fehlschlägt. Sie können diesen Wert nur mit WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT verwenden.

Hinweise

Ein Treiber, der das WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET-Flag festlegt, formatiert die E/A-Anforderung in der Regel nicht, bevor WdfRequestSend aufgerufen wird , um die Anforderung an ein E/A-Ziel zu senden. Tatsächlich darf ein Treiber, der dieses Flag festlegt, keine der WdfIoTargetFormatRequestForXxx-Methoden aufrufen, bevor WdfRequestSend aufgerufen wird. Der Treiber kann nur die WdfRequestFormatRequestUsingCurrentType - oder WdfRequestWdmFormatUsingStackLocation-Methode verwenden, um die Anforderung zu formatieren.

Ihr Treiber kann das WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET-Flag in den folgenden Situationen nicht festlegen:

Die UMDF-Version dieser Enumeration finden Sie unter WDF_REQUEST_SEND_OPTIONS_FLAGS (UMDF).

Anforderungen

Anforderung Wert
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdfrequest.h (einschließen von Wdf.h)

Weitere Informationen

WDF_REQUEST_SEND_OPTIONS

WdfIoTargetStop