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

C++
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;

Angehörige

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

Bemerkungen

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.

Anforderungen

Anforderung Wert
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Header- wdfrequest.h (include Wdf.h)

Siehe auch

CompletionRoutine-

IO_STATUS_BLOCK

WDF_REQUEST_COMPLETION_PARAMS_INIT

WDF_REQUEST_TYPE

WdfRequestGetCompletionParams