estrutura WDF_REQUEST_COMPLETION_PARAMS (wdfrequest.h)

[Aplica-se a KMDF e UMDF]

A estrutura WDF_REQUEST_COMPLETION_PARAMS contém parâmetros associados à conclusão de uma solicitação de E/S.

Sintaxe

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;

Membros

Size

O tamanho, em bytes, dessa estrutura.

Type

Um valor WDF_REQUEST_TYPE que identifica o tipo de solicitação.

IoStatus

Uma estrutura IO_STATUS_BLOCK para a solicitação.

Parameters

Valores específicos da solicitação.

Parameters.Write

Parameters.Write.Buffer

Um identificador para um objeto de memória de estrutura. Esse objeto identifica o buffer que o driver especificou quando formatou a solicitação e a enviou para um destino de E/S.

Parameters.Write.Length

Comprimento, em bytes, da transferência.

Parameters.Write.Offset

Endereço inicial dentro do buffer para a transferência de dados.

Parameters.Read

Parameters.Read.Buffer

Um identificador para um objeto de memória de estrutura. Esse objeto identifica o buffer que o driver especificou quando formatou a solicitação e a enviou para um destino de E/S.

Parameters.Read.Length

Comprimento, em bytes, da transferência.

Parameters.Read.Offset

Endereço inicial dentro do buffer para a transferência de dados.

Parameters.Ioctl

Parameters.Ioctl.IoControlCode

Parameters.Ioctl.Input

Parameters.Ioctl.Input.Buffer

Um identificador para um objeto de memória de estrutura. Esse objeto identifica o buffer de entrada que o driver especificou quando formatou a solicitação e a enviou para um destino de E/S.

Parameters.Ioctl.Input.Offset

Endereço inicial dentro do buffer para a transferência de dados.

Parameters.Ioctl.Output

Parameters.Ioctl.Output.Buffer

Um identificador para um objeto de memória de estrutura. Esse objeto identifica os buffers de saída que o driver especificou quando formatou a solicitação e a enviou para um destino de E/S.

Parameters.Ioctl.Output.Offset

Endereço inicial dentro do buffer para a transferência de dados.

Parameters.Ioctl.Output.Length

Comprimento, em bytes, da transferência.

Parameters.Others

Parameters.Others.Argument1

O uso desse membro é definido pela pilha de driver. Consulte Observações.

Parameters.Others.Argument1.Ptr

Parameters.Others.Argument1.Value

Parameters.Others.Argument2

O uso desse membro é definido pela pilha de driver.

Parameters.Others.Argument2.Ptr

Parameters.Others.Argument2.Value

Parameters.Others.Argument3

O uso desse membro é definido pela pilha de driver.

Parameters.Others.Argument3.Ptr

Parameters.Others.Argument3.Value

Parameters.Others.Argument4

O uso desse membro é definido pela pilha de driver.

Parameters.Others.Argument4.Ptr

Parameters.Others.Argument4.Value

Parameters.Usb

Para dispositivos USB, esse membro contém um ponteiro para uma estrutura WDF_USB_REQUEST_COMPLETION_PARAMS .

Parameters.Usb.Completion

Comentários

A estrutura WDF_REQUEST_COMPLETION_PARAMS é usada como entrada para o método WdfRequestGetCompletionParams e a função de retorno de chamada CompletionRoutine de um driver.

Em ambos os casos, a estrutura de parâmetros de conclusão conterá informações válidas somente se o driver tiver formatado a solicitação chamando um dos métodos WdfIoTargetFormatXxx . Por exemplo, consulte WdfIoTargetFormatRequestForRead.

Antes de chamar WdfRequestGetCompletionParams para recuperar as informações de conclusão de E/S de uma solicitação, o driver deve primeiro chamar WDF_REQUEST_COMPLETION_PARAMS_INIT para inicializar a estrutura de WDF_REQUEST_COMPLETION_PARAMS .

Os membros Parameters.Others.Argument são argumentos personalizados que um driver normalmente passa para baixo da pilha (e pode chegar de volta após a conclusão da solicitação). Eles são usados para dados dependentes de pilha de driver não padrão. Por exemplo, um driver USB especifica um ponteiro para um URB em Parameters.Others.Argument1 quando envia uma solicitação IOCTL_INTERNAL_USB_SUBMIT_URB para a pilha USB. Da mesma forma, um driver Bluetooth especifica um ponteiro para um BRB (Bloco de Solicitação Bluetooth) em Parameters.Others.Argument1 quando recebe um IOCTL_INTERNAL_BTH_SUBMIT_BRB.

Requisitos

Requisito Valor
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdfrequest.h (inclua Wdf.h)

Confira também

Completionroutine

IO_STATUS_BLOCK

WDF_REQUEST_COMPLETION_PARAMS_INIT

WDF_REQUEST_TYPE

WdfRequestGetCompletionParams