WDF_REQUEST_COMPLETION_PARAMS struttura (wdfrequest.h)

[Si applica a KMDF e UMDF]

La struttura WDF_REQUEST_COMPLETION_PARAMS contiene parametri associati al completamento di una richiesta di I/O.

Sintassi

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;

Members

Size

Dimensione, in byte, della struttura.

Type

Valore WDF_REQUEST_TYPE che identifica il tipo di richiesta.

IoStatus

Struttura IO_STATUS_BLOCK per la richiesta.

Parameters

Valori specifici della richiesta.

Parameters.Write

Parameters.Write.Buffer

Handle per un oggetto memoria framework. Questo oggetto identifica il buffer specificato dal driver quando ha formattato la richiesta e l'ha inviata a una destinazione di I/O.

Parameters.Write.Length

Lunghezza, in byte, del trasferimento.

Parameters.Write.Offset

Indirizzo iniziale all'interno del buffer per il trasferimento dei dati.

Parameters.Read

Parameters.Read.Buffer

Handle per un oggetto memoria framework. Questo oggetto identifica il buffer specificato dal driver quando ha formattato la richiesta e l'ha inviata a una destinazione di I/O.

Parameters.Read.Length

Lunghezza, in byte, del trasferimento.

Parameters.Read.Offset

Indirizzo iniziale all'interno del buffer per il trasferimento dei dati.

Parameters.Ioctl

Parameters.Ioctl.IoControlCode

Parameters.Ioctl.Input

Parameters.Ioctl.Input.Buffer

Handle per un oggetto memoria framework. Questo oggetto identifica il buffer di input specificato dal driver quando ha formattato la richiesta e l'ha inviata a una destinazione di I/O.

Parameters.Ioctl.Input.Offset

Indirizzo iniziale all'interno del buffer per il trasferimento dei dati.

Parameters.Ioctl.Output

Parameters.Ioctl.Output.Buffer

Handle per un oggetto memoria framework. Questo oggetto identifica i buffer di output specificati dal driver quando ha formattato la richiesta e l'ha inviata a una destinazione di I/O.

Parameters.Ioctl.Output.Offset

Indirizzo iniziale all'interno del buffer per il trasferimento dei dati.

Parameters.Ioctl.Output.Length

Lunghezza, in byte, del trasferimento.

Parameters.Others

Parameters.Others.Argument1

L'uso di questo membro è definito dallo stack di driver. Vedere la sezione Osservazioni.

Parameters.Others.Argument1.Ptr

Parameters.Others.Argument1.Value

Parameters.Others.Argument2

L'uso di questo membro è definito dallo stack di driver.

Parameters.Others.Argument2.Ptr

Parameters.Others.Argument2.Value

Parameters.Others.Argument3

L'uso di questo membro è definito dallo stack di driver.

Parameters.Others.Argument3.Ptr

Parameters.Others.Argument3.Value

Parameters.Others.Argument4

L'uso di questo membro è definito dallo stack di driver.

Parameters.Others.Argument4.Ptr

Parameters.Others.Argument4.Value

Parameters.Usb

Per i dispositivi USB, questo membro contiene un puntatore a una struttura WDF_USB_REQUEST_COMPLETION_PARAMS .

Parameters.Usb.Completion

Commenti

La struttura WDF_REQUEST_COMPLETION_PARAMS viene usata come input per il metodo WdfRequestGetCompletionParams e la funzione di callback Di completamento di un driver.

In entrambi i casi, la struttura dei parametri di completamento contiene informazioni valide solo se il driver ha formattato la richiesta chiamando uno dei metodi WdfIoTargetFormatXxx . Ad esempio, vedere WdfIoTargetFormatRequestForRead.

Prima di chiamare WdfRequestGetCompletionParams per recuperare le informazioni di completamento di I/O per una richiesta, il driver deve prima chiamare WDF_REQUEST_COMPLETION_PARAMS_INIT per inizializzare la struttura WDF_REQUEST_COMPLETION_PARAMS .

I membri Parameters.Others.Argument sono argomenti personalizzati che un driver in genere passa lo stack e può tornare dopo il completamento della richiesta. Vengono usati per dati dipendenti dallo stack di driver non standard. Ad esempio, un driver USB specifica un puntatore a un PUNTATORE in Parameters.Others.Argument1 quando invia una richiesta di IOCTL_INTERNAL_USB_SUBMIT_URB allo stack USB. Analogamente, un driver Bluetooth specifica un puntatore a un blocco richiesta BRB (Bluetooth Request Block) in Parameters.Others.Argument1 quando riceve un IOCTL_INTERNAL_BTH_SUBMIT_BRB.

Requisiti

Requisito Valore
Versione KMDF minima 1.0
Versione UMDF minima 2,0
Intestazione wdfrequest.h (include Wdf.h)

Vedi anche

CompletamentoRoutine

IO_STATUS_BLOCK

WDF_REQUEST_COMPLETION_PARAMS_INIT

WDF_REQUEST_TYPE

WdfRequestGetCompletionParams