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.
Retornar valor
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 |
---|---|
|
O driver forneceu um identificador inválido. |
|
A estrutura chegou ao fim da fila de E/S. |
|
A fila de E/S especificada está configurada para o método de expedição paralela. |
|
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.
Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.
Comentários
Se um driver configurar uma fila de E/S para expedição manual de solicitações de E/S, o driver normalmente chamará 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 manuais ou sequenciais, 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 driver é proprietário da solicitação e deve processar a 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 |
---|---|
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) |