Share via


Inicialización de un destino de E/S general en UMDF

Advertencia

UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los controladores UMDF nuevos deben escribirse con UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2.

Los ejemplos de UMDF 1 archivados se pueden encontrar en la Windows 11, versión 22H2 : actualización de ejemplos de controladores de mayo de 2022.

Para obtener más información, consulta Introducción con UMDF.

Los pasos que usa el controlador para inicializar un destino de E/S general dependen de si el destino de E/S es local o remoto.

Inicialización de un destino de E/S local

Los destinos de E/S locales incluyen el destino de E/S predeterminado de un dispositivo y los destinos de E/S basados en identificadores de archivo.

El marco inicializa el destino de E/S predeterminado de un controlador para un dispositivo cuando el controlador llama al método IWDFDriver::CreateDevice . Para recuperar la interfaz IWDFIoTarget que permite al controlador acceder al destino de E/S predeterminado del dispositivo, el controlador llama al método IWDFDevice::GetDefaultIoTarget .

La mayoría de los controladores envían solicitudes solo a su destino de E/S predeterminado.

Si un controlador UMDF debe enviar solicitudes de E/S a una interfaz basada en identificadores, como una interfaz de socket de red, el controlador debe crear un objeto de destino de E/S basado en identificador de archivo. Para crear un objeto de destino de E/S basado en identificador de archivo, el controlador debe hacer lo siguiente:

  1. Llame al método QueryInterface de la interfaz IWDFDevice del dispositivo para recuperar un puntero a la interfaz IWDFFileHandleTargetFactory .

  2. Obtenga un identificador de Win32 para un archivo, una canalización con nombre o un socket llamando a la funciónCreateFile, CreateNamedPipe o Win32.

  3. Llame al método IWDFFileHandleTargetFactory::CreateFileHandleTarget para crear un objeto de destino de E/S basado en identificador de archivo para el archivo, la canalización o el socket.

Para obtener un ejemplo de código que muestra cómo recuperar la interfaz IWDFFileHandleTargetFactory, obtener un identificador de Win32 y crear un objeto de destino de E/S basado en identificador de archivo, vea el ejemplo de código en IWDFFileHandleTargetFactory::CreateFileHandleTarget.

Una vez que el controlador crea el destino de E/S basado en identificador de archivo, el controlador puede enviar solicitudes de E/S al destino de E/S.

Inicialización de un destino de E/S remoto

Para que el controlador pueda usar un destino de E/S remoto, debe crear un objeto de destino remoto y abrir el destino, como se indica a continuación:

  1. Llame a IWDFDevice2::CreateRemoteTarget para crear un objeto de destino remoto.

  2. Llame a IWDFRemoteTarget::OpenFileByName (para archivos) o IWDFRemoteTarget::OpenRemoteInterface (para interfaces de dispositivo) para abrir el destino de las operaciones de E/S.