WDF_REQUEST_COMPLETION_PARAMS-Struktur (wdfrequest.h)
[Gilt für KMDF und UMDF]
Die WDF_REQUEST_COMPLETION_PARAMS-Struktur enthält Parameter, die dem Abschluss einer E/A-Anforderung zugeordnet sind.
Syntax
typedef struct _WDF_REQUEST_COMPLETION_PARAMS {
ULONG Size;
WDF_REQUEST_TYPE Type;
IO_STATUS_BLOCK IoStatus;
union {
struct {
WDFMEMORY Buffer;
size_t Length;
size_t Offset;
} Write;
struct {
WDFMEMORY Buffer;
size_t Length;
size_t Offset;
} Read;
struct {
ULONG IoControlCode;
struct {
WDFMEMORY Buffer;
size_t Offset;
} Input;
struct {
WDFMEMORY Buffer;
size_t Offset;
size_t Length;
} Output;
} Ioctl;
struct {
union {
PVOID Ptr;
ULONG_PTR Value;
} Argument1;
union {
PVOID Ptr;
ULONG_PTR Value;
} Argument2;
union {
PVOID Ptr;
ULONG_PTR Value;
} Argument3;
union {
PVOID Ptr;
ULONG_PTR Value;
} Argument4;
} Others;
struct {
PWDF_USB_REQUEST_COMPLETION_PARAMS Completion;
} Usb;
} Parameters;
} WDF_REQUEST_COMPLETION_PARAMS, *PWDF_REQUEST_COMPLETION_PARAMS;
Member
Size
Die Größe (in Bytes) dieser Struktur.
Type
Ein WDF_REQUEST_TYPE Wert, der den Anforderungstyp identifiziert.
IoStatus
Eine IO_STATUS_BLOCK-Struktur für die Anforderung.
Parameters
Anforderungsspezifische Werte für die Anforderung.
Parameters.Write
Parameters.Write.Buffer
Ein Handle für ein Frameworkspeicherobjekt. Dieses Objekt identifiziert den Puffer, den der Treiber beim Formatieren der Anforderung angegeben und an ein E/A-Ziel gesendet hat.
Parameters.Write.Length
Länge der Übertragung in Byte.
Parameters.Write.Offset
Die Anfangsadresse innerhalb des Puffers für die Datenübertragung.
Parameters.Read
Parameters.Read.Buffer
Ein Handle für ein Frameworkspeicherobjekt. Dieses Objekt identifiziert den Puffer, den der Treiber beim Formatieren der Anforderung angegeben und an ein E/A-Ziel gesendet hat.
Parameters.Read.Length
Länge der Übertragung in Byte.
Parameters.Read.Offset
Die Anfangsadresse innerhalb des Puffers für die Datenübertragung.
Parameters.Ioctl
Parameters.Ioctl.IoControlCode
Parameters.Ioctl.Input
Parameters.Ioctl.Input.Buffer
Ein Handle für ein Frameworkspeicherobjekt. Dieses Objekt identifiziert den Eingabepuffer, den der Treiber beim Formatieren der Anforderung angegeben und an ein E/A-Ziel gesendet hat.
Parameters.Ioctl.Input.Offset
Die Anfangsadresse innerhalb des Puffers für die Datenübertragung.
Parameters.Ioctl.Output
Parameters.Ioctl.Output.Buffer
Ein Handle für ein Frameworkspeicherobjekt. Dieses Objekt identifiziert die Ausgabepuffer, die der Treiber angegeben hat, als er die Anforderung formatiert und an ein E/A-Ziel gesendet hat.
Parameters.Ioctl.Output.Offset
Die Anfangsadresse innerhalb des Puffers für die Datenübertragung.
Parameters.Ioctl.Output.Length
Länge der Übertragung in Byte.
Parameters.Others
Parameters.Others.Argument1
Die Verwendung dieses Members wird durch den Treiberstapel definiert. Siehe Hinweise.
Parameters.Others.Argument1.Ptr
Parameters.Others.Argument1.Value
Parameters.Others.Argument2
Die Verwendung dieses Members wird durch den Treiberstapel definiert.
Parameters.Others.Argument2.Ptr
Parameters.Others.Argument2.Value
Parameters.Others.Argument3
Die Verwendung dieses Members wird durch den Treiberstapel definiert.
Parameters.Others.Argument3.Ptr
Parameters.Others.Argument3.Value
Parameters.Others.Argument4
Die Verwendung dieses Members wird durch den Treiberstapel definiert.
Parameters.Others.Argument4.Ptr
Parameters.Others.Argument4.Value
Parameters.Usb
Bei USB-Geräten enthält dieses Element einen Zeiger auf eine WDF_USB_REQUEST_COMPLETION_PARAMS-Struktur .
Parameters.Usb.Completion
Hinweise
Die WDF_REQUEST_COMPLETION_PARAMS-Struktur wird als Eingabe für die WdfRequestGetCompletionParams-Methode und die CompletionRoutine-Rückruffunktion eines Treibers verwendet.
In beiden Fällen enthält die Struktur der Vervollständigungsparameter nur dann gültige Informationen, wenn der Treiber die Anforderung durch Aufrufen einer der Xxx-Methoden von WdfIoTargetFormat formatiert hat. Beispiel : WdfIoTargetFormatRequestForRead.
Vor dem Aufrufen von WdfRequestGetCompletionParams zum Abrufen der E/A-Abschlussinformationen für eine Anforderung muss der Treiber zuerst WDF_REQUEST_COMPLETION_PARAMS_INIT aufrufen, um die WDF_REQUEST_COMPLETION_PARAMS-Struktur zu initialisieren.
Die Parameters.Others.Argument-Member sind benutzerdefinierte Argumente, die ein Treiber in der Regel im Stapel übergibt (und nach Abschluss der Anforderung wieder eintreffen können). Sie werden für nicht standardmäßige, treiberstapelabhängige Daten verwendet. Beispielsweise gibt ein USB-Treiber einen Zeiger auf eine URB in Parameters.Others.Argument1 an, wenn er eine IOCTL_INTERNAL_USB_SUBMIT_URB-Anforderung an den USB-Stapel sendet. Ebenso gibt ein Bluetooth-Treiber einen Zeiger auf einen BRB (Bluetooth Request Block) in Parameters.Others.Argument1 an, wenn er eine IOCTL_INTERNAL_BTH_SUBMIT_BRB empfängt.
Anforderungen
Anforderung | Wert |
---|---|
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdfrequest.h (include Wdf.h) |