WDF_REQUEST_SEND_OPTIONS_FLAGS-Aufzählung (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 Kennzeichen festlegt, ist das Timeout Member 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 es eine Objektmethode aufruft, deren Name mit "Synchron" endet, z. B. WdfIoTargetSendReadSynchronously.) |
WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE Wert: 0x00000004 Wenn der Treiber dieses Kennzeichen festlegt, sendet das Framework unabhängig vom Status des E/A-Ziels die E/A-Anforderung an das E/A-Ziel. Wenn sie nicht festgelegt ist, wird die Anforderung vom Framework in die Warteschlange gestellt, wenn das Ziel beendet wird. Wenn Sie dieses Kennzeichen festlegen, kann ein Treiber eine Anforderung, z. B. eine Anforderung zum Zurücksetzen eines USB-Pipes, auf ein Gerät senden, nachdem der Treiber WdfIoTargetStopaufgerufen hat. |
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET Wert: 0x00000008 Wenn der Treiber dieses Kennzeichen 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 auf. Wenn der Treiber dieses Kennzeichen festlegt, kann es keine anderen Flags festlegen. Weitere Informationen zu dieser Kennzeichnung finden Sie im folgenden Abschnitt "Hinweise". |
WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT Wert: 0x00010000 Dieses Flag gilt nur für UMDF. Wenn festgelegt und der E/A-Anforderungstyp WdfRequestTypeCreateist, 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 weiterhin, auch wenn der Identitätswechsel fehlschlägt. Sie können diesen Wert nur mit WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENTverwenden. |
Bemerkungen
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, keinen der WdfIoTargetFormatRequestForXxx--Methoden aufrufen, bevor WdfRequestSendaufgerufen wird. Der Treiber kann nur die WdfRequestFormatRequestUsingCurrentType oder WdfRequestWdmFormatUsingStackLocation Methode zum Formatieren der Anforderung verwenden.
Ihr Treiber kann in den folgenden Situationen nicht die WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET-Kennzeichnung festlegen:
- Der Treiber hat das Anforderungsobjekt erstellt, indem WdfRequestCreateaufgerufen wird.
- Der Treiber sendet die E/A-Anforderung an ein Remote-E/A-Ziel, und der Treiber hat das WdfIoTargetOpenByName Flag angegeben, wenn er WdfIoTargetOpenaufgerufen wird.
- Der Treiber sendet die E/A-Anforderung an ein Remote-E/A-Ziel, und der Treiber hat sowohl das WdfIoTargetOpenUseExistingDevice Flag als auch ein TargetFileObject Zeiger angegeben, wenn er WdfIoTargetOpenaufgerufen wird.
- Der Anforderungstyp ist WdfRequestTypeCreate und der Treiber hat das WdfFileObjectNotRequired Flag nicht festgelegt. (Weitere Informationen zu dieser Situation finden Sie unter Framework-Dateiobjekte.)
Anforderungen
Anforderung | Wert |
---|---|
Minimale KMDF-Version | 1.0 |
Mindest-UMDF-Version | 2.0 |
Header- | wdfrequest.h (include Wdf.h) |