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:
- Der Treiber hat das Anforderungsobjekt erstellt, indem er WdfRequestCreate aufruft.
- Der Treiber sendet die E/A-Anforderung an ein Remote-E/A-Ziel, und der Treiber hat beim Aufrufen von WdfIoTargetOpenByName das WdfIoTargetOpen-Flag angegeben.
- Der Treiber sendet die E/A-Anforderung an ein Remote-E/A-Ziel, und der Treiber hat beim Aufrufen von WdfIoTargetOpenUseExistingDevice sowohl das WdfIoTargetOpen-Flag als auch einen TargetFileObject-Zeiger angegeben.
- Der Anforderungstyp ist WdfRequestTypeCreate , und der Treiber hat das WdfFileObjectNotRequired-Flag nicht festgelegt. (Weitere Informationen zu dieser Situation finden Sie unter Frameworkdateiobjekte.)
Anforderungen
Anforderung | Wert |
---|---|
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdfrequest.h (einschließen von Wdf.h) |