Partilhar via


Função WdfIoQueueRetrieveNextRequest (wdfio.h)

[Aplica-se a KMDF e UMDF]

O método WdfIoQueueRetrieveNextRequest recupera a próxima solicitação de E/S disponível de uma fila de E/S especificada.

Sintaxe

NTSTATUS WdfIoQueueRetrieveNextRequest(
  [in]  WDFQUEUE   Queue,
  [out] WDFREQUEST *OutRequest
);

Parâmetros

[in] Queue

Um identificador para um objeto de fila de estrutura.

[out] OutRequest

Um ponteiro para um local que recebe um identificador para um objeto de solicitação de estrutura. Se a fila estiver vazia ou a última solicitação tiver sido recuperada, esse parâmetro receberá NULL.

Valor de retorno

WdfIoQueueRetrieveNextRequest 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 ou a fila especificada é interrompida.
 

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

Se um driver configurar uma fila de E/S para expedição manual de solicitações de E/S, o driver normalmente chama WdfIoQueueRetrieveNextRequest para obter solicitações da fila. Um driver que configurou uma fila de E/S para expedição sequencial também pode chamar WdfIoQueueRetrieveNextRequest. Para obter mais informações sobre como usar WdfIoQueueRetrieveNextRequest 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 WdfIoQueueRetrieveNextRequest para obter uma solicitação de E/S, o de driver é proprietário solicitação e deve processar o de solicitação de E/S de alguma maneira.

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

Exemplos

O exemplo de código a seguir obtém um identificador para o próximo objeto de solicitação contido na fila de E/S de um dispositivo.

NTSTATUS  status;
WDFREQUEST  request;

status = WdfIoQueueRetrieveNextRequest(
                                       pDeviceContext->ReadQueue,
                                       &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), wdfioqueueretrievenextrequest, WdfIoQueueRetrieveNextRequest(kmdf)

Consulte também

WdfIoQueueRetrieveFoundRequest

WdfIoQueueRetrieveRequestByFileObject