Reutilizando objetos de solicitação de estrutura no UMDF

Aviso

O UMDF 2 é a versão mais recente do UMDF e substitui o UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Os drivers universais do Windows devem usar o UMDF 2.

Os exemplos de UMDF 1 arquivados podem ser encontrados no Windows 11, versão 22H2 – Atualização de exemplos de driver de maio de 2022.

Para obter mais informações, consulte Introdução com UMDF.

Para melhorar o desempenho do driver, drivers baseados em estrutura que criam e enviam muitas solicitações assíncronas quase idênticas para um destino de E/S podem reutilizar objetos de solicitação em vez de criar um novo objeto de solicitação para cada solicitação. Um driver pode reutilizar um objeto de solicitação após a conclusão da solicitação.

Se um driver tiver criado um objeto de solicitação chamando IWDFDevice::CreateRequest, ele poderá reutilizar a solicitação chamando IWDFIoRequest2::Reuse. Um driver também pode reutilizar objetos de solicitação que recebeu da estrutura em suas filas de E/S.

Se o driver fornecer uma função de retorno de chamada IRequestCallbackRequestCompletion::OnCompletion para um objeto de solicitação que ele reutiliza, o driver deverá chamar IWDFIoRequest::SetCompletionCallback depois de chamar Reuse.