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) |