Búsqueda y asignación de recursos de hardware en controladores UMDF 1.x

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.

Si usa la versión 2.0 o posterior de UMDF, consulte Búsqueda y asignación de recursos de hardware.

Un controlador UMDF 1.x recibe recursos de hardware en su método de devolución de llamada IPnpCallbackHardware2::OnPrepareHardware . El controlador usa la interfaz IWDFCmResourceList para revisar la lista de recursos traducida e identificar registros asignados a memoria, puertos de E/S e interrupciones.

El controlador recorre en iteración la lista de recursos llamando a IWDFCmResourceList::GetCount e IWDFCmResourceList::GetDescriptor.

Si el controlador recibe registros asignados a memoria, el controlador debe llamar a IWDFDevice3::MapIoSpace para asignar los registros antes de poder acceder a ellos. Normalmente, un controlador asigna sus registros en su método IPnpCallbackHardware2::OnPrepareHardware . El controlador desasignación de los registros en su devolución de llamada IPnpCallbackHardware2::OnReleaseHardware llamando a IWDFDevice3::UnmapIoSpace. Tenga en cuenta que la asignación no es necesaria para los puertos de E/S.

Para ver un ejemplo que muestra cómo un controlador encuentra y asigna recursos de registro asignados a memoria, consulte IWDFDevice3::MapIoSpace.