Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Advertência
UMDF 2 é a versão mais recente do UMDF e substitui UMDF 1. Todos os novos drivers UMDF devem ser escritos 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 UMDF 2.
Os exemplos de UMDF 1 arquivados podem ser encontrados na Windows 11, versão 22H2 - Atualização de Amostras de Driver de maio de 2022.
Para obter mais informações, consulte Introdução ao UMDF.
O driver pode especificar como as suas funções de retorno de chamada são chamadas pelo framework. O driver especifica um modo de sincronização (ou bloqueio) para um dispositivo antes de chamar o método IWDFDriver::CreateDevice para criar um objeto de dispositivo para o dispositivo. Para especificar o modo de sincronização, o driver deve chamar o método IWDFDeviceInitialize::SetLockingConstraint. O driver recebe um ponteiro para a interface IWDFDeviceInitialize quando o método IDriverEntry::OnDeviceAdd é chamado para adicionar o dispositivo ao sistema.
O condutor pode especificar um dos seguintes valores da enumeração WDF_CALLBACK_CONSTRAINT no parâmetro LockType de IWDFDeviceInitialize::SetLockingConstraint para identificar o modo de bloqueio. O tipo de restrição (ou bloqueio) especificado depende de quanto paralelismo o dispositivo de hardware pode explorar e quanto o driver pode suportar.
| Valor | Significado |
|---|---|
Nenhum (0) |
Indica que quaisquer funções de callback no driver não estão sincronizadas. |
WdfDeviceLevel (1) |
Indica que todas as funções de callback de fila no driver estão sincronizadas. |
Observação Se o driver não chamar IWDFDeviceInitialize::SetLockingConstraint para especificar um valor, a estrutura definirá o valor padrão dessa propriedade como WdfDeviceLevel.
As restrições aplicam-se apenas às funções de retorno de chamada em fila e não às funções de retorno de chamada Plug and Play (PnP) e de gestão de energia. As funções de retorno de chamada em fila incluem o seguinte:
Funções de retorno de chamada de despacho automático, tais como, IQueueCallbackRead::OnRead e IQueueCallbackWrite::OnWrite. Para obter mais informações, consulte Funções de retorno de chamada de eventos de fila de E/S.
Funções de retorno de chamada de alteração de estado da fila, como IQueueCallbackStateChange::OnStateChange.
Solicitar cancelamento de funções de retorno de chamada, como, IRequestCallbackCancel::OnCancel.
Limpeza de ficheiros e funções de callback, como IFileCallbackCleanup::OnCleanupFile e IFileCallbackClose::OnCloseFile.
As funções de retorno de chamada de conclusão de pedido (IRequestCallbackRequestCompletion::OnCompletion) não são funções de retorno de chamada em fila. Portanto, eles não são sincronizados.