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.
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;
Size
Die Größe dieser Struktur in Byte.
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 Framework-Speicherobjekt. Dieses Objekt identifiziert den Puffer, den der Beim Formatieren der Anforderung angegebene Treiber an ein E/A-Ziel gesendet hat.
Parameters.Write.Length
Länge der Übertragung in Bytes.
Parameters.Write.Offset
Die Anfangsadresse innerhalb des Puffers für die Datenübertragung.
Parameters.Read
Parameters.Read.Buffer
Ein Handle für ein Framework-Speicherobjekt. Dieses Objekt identifiziert den Puffer, den der Beim Formatieren der Anforderung angegebene Treiber an ein E/A-Ziel gesendet hat.
Parameters.Read.Length
Länge der Übertragung in Bytes.
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 Framework-Speicherobjekt. 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 Framework-Speicherobjekt. Dieses Objekt identifiziert die Ausgabepuffer, die der Treiber beim Formatieren der Anforderung angegeben 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 Bytes.
Parameters.Others
Parameters.Others.Argument1
Die Verwendung dieses Elements wird durch den Treiberstapel definiert. Siehe Anmerkungen.
Parameters.Others.Argument1.Ptr
Parameters.Others.Argument1.Value
Parameters.Others.Argument2
Die Verwendung dieses Elements wird durch den Treiberstapel definiert.
Parameters.Others.Argument2.Ptr
Parameters.Others.Argument2.Value
Parameters.Others.Argument3
Die Verwendung dieses Elements wird durch den Treiberstapel definiert.
Parameters.Others.Argument3.Ptr
Parameters.Others.Argument3.Value
Parameters.Others.Argument4
Die Verwendung dieses Elements wird durch den Treiberstapel definiert.
Parameters.Others.Argument4.Ptr
Parameters.Others.Argument4.Value
Parameters.Usb
Für USB-Geräte enthält dieses Element einen Zeiger auf eine WDF_USB_REQUEST_COMPLETION_PARAMS Struktur.
Parameters.Usb.Completion
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 Abschlussparameter nur gültige Informationen, wenn der Treiber die Anforderung formatiert hat, indem eine der WdfIoTargetFormat-Xxx--Methoden aufgerufen wird. Siehe z. B. WdfIoTargetFormatRequestForRead.
Vor dem Aufrufen 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 normalerweise den Stapel übergibt (und kann nach Abschluss der Anforderung zurückgesendet werden). Sie werden für nicht standardmäßige, treiberstapelabhängige Daten verwendet. Beispielsweise gibt ein USB-Treiber einen Zeiger auf einen URB in Parameters.Others.Argument1 an, wenn eine IOCTL_INTERNAL_USB_SUBMIT_URB Anforderung an den USB-Stapel gesendet wird. Ebenso gibt ein Bluetooth-Treiber einen Zeiger auf einen BRB (Bluetooth Request Block) in Parameters.Others.Argument1 an, wenn ein IOCTL_INTERNAL_BTH_SUBMIT_BRBempfangen wird.
Anforderung | Wert |
---|---|
Minimale KMDF-Version | 1.0 |
Mindest-UMDF-Version | 2.0 |
Header- | wdfrequest.h (include Wdf.h) |