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.
A interface IWDFFile expõe o objeto de arquivo de estrutura aos drivers. É a representação da estrutura do dispositivo aberto. Quando um aplicativo abre o dispositivo por meio da função Microsoft Win32 CreateFile, a estrutura cria um objeto de arquivo para representar a instância do dispositivo aberto. Portanto, o objeto de ficheiro do framework é conceitualmente equivalente ao identificador Win32 que é retornado pela chamada do aplicativo para CreateFile. A estrutura pode criar vários objetos de arquivo associados a um único dispositivo. Cada objeto de arquivo é criado para cada chamada bem-sucedida para CreateFile. Todas as operações de E/S, como leituras e gravações, são direcionadas a uma instância específica de objeto de arquivo.
Observação Todas as solicitações passadas para drivers UMDF estão associadas a objetos de arquivo. No entanto, as solicitações que são passadas para os drivers WDM e KMDF às vezes não são associadas a objetos de arquivo.
Um driver UMDF pode chamar o método IWDFIoRequest::GetFileObject para obter o objeto de arquivo associado a uma solicitação.
Quando o driver chama GetFileObject, a estrutura incrementa a contagem de referência na interface. O controlador é responsável por liberar a referência ao concluir com o ponteiro da interface. Para fazer isso, use um ponteiro inteligente que diminua automaticamente a contagem de referência quando o objeto sair do contexto ou chame Release na interface quando terminar de usá-lo. Para obter um exemplo de código que mostra como usar um ponteiro inteligente, consulte GetFileObject.