Share via


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:

  1. Chame o método QueryInterface da interface IWDFDevice do dispositivo para recuperar um ponteiro para a interface IWDFFileHandleTargetFactory .

  2. Obtenha um identificador Win32 para um arquivo, pipe nomeado ou soquete chamando a função CreateFile, CreateNamedPipe ou socket do Win32.

  3. 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:

  1. Chame IWDFDevice2::CreateRemoteTarget para criar um objeto de destino remoto.

  2. Chame IWDFRemoteTarget::OpenFileByName (para arquivos) ou IWDFRemoteTarget::OpenRemoteInterface (para interfaces de dispositivo) para abrir o destino para operações de E/S.