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)

Weitere Informationen

CompletionRoutine

IO_STATUS_BLOCK

WDF_REQUEST_COMPLETION_PARAMS_INIT

WDF_REQUEST_TYPE

WdfRequestGetCompletionParams