Inicializando um destino de E/S geral 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. Drivers universais do Windows devem usar UMDF 2.
Os exemplos 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.
As etapas que o driver usa para inicializar um destino de E/S geral dependem se o destino de E/S é local ou remoto.
Inicializando um destino de E/S local
Os destinos de E/S locais incluem destinos de E/S padrão de um dispositivo e destinos de E/S baseados em identificador de arquivo.
A estrutura inicializa o destino de E/S padrão de um driver para um dispositivo quando o driver chama o método IWDFDriver::CreateDevice . Para recuperar a interface IWDFIoTarget que permite que o driver acesse o destino de E/S padrão do dispositivo, o driver chama o método IWDFDevice::GetDefaultIoTarget .
A maioria dos drivers envia solicitações apenas para o destino de E/S padrão.
Se um driver UMDF precisar enviar solicitações de E/S para uma interface baseada em identificador, como um adaptador de soquete de rede, o driver deverá criar um objeto de destino de E/S baseado em identificador de arquivo. Para criar um objeto de destino de E/S baseado em identificador de arquivo, o driver deve fazer o seguinte:
Chame o método QueryInterface da interface IWDFDevice do dispositivo para recuperar um ponteiro para a interface IWDFFileHandleTargetFactory .
Obtenha um identificador Win32 para um arquivo, pipe nomeado ou soquete chamando a função CreateFile, CreateNamedPipe ou socket do Win32.
Chame o método IWDFFileHandleTargetFactory::CreateFileHandleTarget para criar um objeto de destino de E/S baseado em identificador de arquivo para o arquivo, pipe ou soquete.
Para obter um exemplo de código que mostra como recuperar a interface IWDFFileHandleTargetFactory , obter um identificador Win32 e criar um objeto de destino de E/S baseado em identificador de arquivo, consulte o exemplo de código em IWDFFileHandleTargetFactory::CreateFileHandleTarget.
Depois que o driver cria o destino de E/S baseado em identificador de arquivo, o driver pode enviar solicitações de E/S para o destino de E/S.
Inicializando um destino de E/S remoto
Antes que o driver possa usar um destino de E/S remoto, ele deve criar um objeto de destino remoto e abrir o destino, da seguinte maneira:
Chame IWDFDevice2::CreateRemoteTarget para criar um objeto de destino remoto.
Chame IWDFRemoteTarget::OpenFileByName (para arquivos) ou IWDFRemoteTarget::OpenRemoteInterface (para interfaces de dispositivo) para abrir o destino para operações de E/S.