Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cuando la función de devolución de llamada EvtDeviceRemoveAddedResources o EvtDevicePrepareHardware recibe una lista de recursos, recibe dos versiones de la lista. Una versión representa los recursos sin procesar del dispositivo y la otra representa los recursos traducidos del dispositivo. Ambas versiones representan el mismo conjunto de recursos de hardware, en el mismo orden.
Los recursos sin procesar son recursos identificados por direcciones relativas al bus al que está conectado el dispositivo. Normalmente, el controlador que programa el dispositivo proporciona estas direcciones al dispositivo.
Los recursos traducidos son recursos identificados por direcciones físicas del sistema que usan los controladores para acceder a los recursos.
Un controlador para un dispositivo de bus PCI recibe recursos que aparecen en el orden en que aparecen en los registros de direcciones base (BAR) del dispositivo. Sin embargo, los descriptores de recursos adicionales se pueden intercalar en la lista, de modo que el recurso en el índice X de la BARRA podría no coincidir con el recurso en la misma posición de índice de la lista de recursos.
Para obtener más información sobre los recursos sin procesar y traducidos, consulte las descripciones de miembros de la estructura de CM_PARTIAL_RESOURCE_DESCRIPTOR .
Si la lista de recursos traducidos de un dispositivo contiene un recurso con el miembro Type de la estructura de CM_PARTIAL_RESOURCE_DESCRIPTOR establecida en CmResourceTypeMemory, todos los controladores que acceden a ese recurso deben hacer lo siguiente:
- La función de devolución de llamada del controlador, EvtDevicePrepareHardware, debe invocar MmMapIoSpace para asignar direcciones físicas del sistema a direcciones virtuales del sistema.
- La función de devolución de llamada EvtDeviceReleaseHardware del controlador debe llamar a MmUnmapIoSpace para anular la asignación de las direcciones.
Para obtener más información sobre la asignación de direcciones relativas a bus, consulte Asignación de direcciones Bus-Relative a direcciones virtuales.