Compartilhar via


Função WdfIoQueueRetrieveRequestByFileObject (wdfio.h)

[Aplica-se a KMDF e UMDF]

O método WdfIoQueueRetrieveRequestByFileObject recupera a próxima solicitação de E/S disponível, de uma fila de E/S especificada, associada a um objeto de arquivo especificado.

Sintaxe

NTSTATUS WdfIoQueueRetrieveRequestByFileObject(
  [in]  WDFQUEUE      Queue,
  [in]  WDFFILEOBJECT FileObject,
  [out] WDFREQUEST    *OutRequest
);

Parâmetros

[in] Queue

Um identificador para um objeto de fila de estrutura.

[in] FileObject

Um identificador para um objeto de arquivo de estrutura.

[out] OutRequest

Um ponteiro para um local que recebe um identificador para um objeto de solicitação de estrutura. Se WdfIoQueueRetrieveRequestByFileObject não retornar STATUS_SUCCESS, ele não definirá o valor do local.

Valor de retorno

WdfIoQueueRetrieveRequestByFileObject retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método poderá retornar um dos seguintes valores:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
O driver forneceu um identificador inválido.
STATUS_NO_MORE_ENTRIES
A estrutura chegou ao final da fila de E/S.
STATUS_INVALID_DEVICE_STATE
A fila de E/S especificada está configurada para o método de expedição paralelo.
STATUS_WDF_PAUSED
A fila de E/S especificada é gerenciada por energia e seu dispositivo está em um estado de baixa potência.
 

Esse método também pode retornar outros valores NTSTATUS .

Uma verificação de bug ocorre se o driver fornece um identificador de objeto inválido.

Observações

Um driver que configurou uma fila de E/S para expedição manual ou sequencial pode chamar WdfIoQueueRetrieveRequestByFileObject. Para obter mais informações sobre como usar WdfIoQueueRetrieveRequestByFileObject com os métodos de expedição manual ou sequencial, consulte Métodos de Expedição para Solicitações de E/S.

Depois de chamar WdfIoQueueRetrieveRequestByFileObject para obter uma solicitação de E/S, o do driver é proprietário solicitação e deve processar a solicitação de E/S de alguma maneira.

Para obter mais informações sobre o método WdfIoQueueRetrieveRequestByFileObject, consulte Gerenciando filas de E/S.

Exemplos

O exemplo de código a seguir obtém, de uma fila de E/S especificada, um identificador para o próximo objeto de solicitação de estrutura associado a um objeto de arquivo de estrutura especificado.

WDFREQUEST  request;

status = WdfIoQueueRetrieveRequestByFileObject(
                                               queue,
                                               fileObject,
                                               &request
                                               );

Requisitos

Requisito Valor
da Plataforma de Destino Universal
versão mínima do KMDF 1.0
versão mínima do UMDF 2.0
cabeçalho wdfio.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
regras de conformidade de DDI DoubleCompletion(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Consulte também

WdfIoQueueRetrieveFoundRequest

WdfIoQueueRetrieveNextRequest