Rohe und übersetzte Ressourcen

Wenn die Rückruffunktion EvtDeviceRemoveAddedResources oder EvtDevicePrepareHardware eine Ressourcenliste empfängt, empfängt sie zwei Versionen der Liste. Eine Version stellt die Rohressourcen des Geräts dar, und die andere stellt die übersetzten Ressourcen des Geräts dar. Beide Versionen stellen den gleichen Satz von Hardwareressourcen in der gleichen Reihenfolge dar.

  • Rohressourcen sind Ressourcen, die durch Adressen identifiziert werden, die relativ zu dem Bus sind, mit dem das Gerät verbunden ist. In der Regel stellt der Treiber, der das Gerät programmiert, diese Adressen für das Gerät bereit.

  • Übersetzte Ressourcen sind Ressourcen, die durch physische Systemadressen identifiziert werden, die Treiber für den Zugriff auf die Ressourcen verwenden.

Ein Treiber für ein PCI-Busgerät empfängt Ressourcen, die in der Reihenfolge aufgeführt sind, in der sie in den BaRs (Base Address Registers ) des Geräts angezeigt werden. Es können jedoch zusätzliche Ressourcendeskriptoren in der Liste verschachtelt werden, sodass die Ressource bei Index X im BAR möglicherweise nicht mit der Ressource an derselben Indexposition in der Ressourcenliste übereinstimmt.

Weitere Informationen zu rohen und übersetzten Ressourcen finden Sie in den Memberbeschreibungen für die CM_PARTIAL_RESOURCE_DESCRIPTOR-Struktur .

Wenn die übersetzte Ressourcenliste eines Geräts eine Ressource enthält, deren Type-Member der CM_PARTIAL_RESOURCE_DESCRIPTOR-Struktur auf CmResourceTypeMemory festgelegt ist, muss jeder Treiber, der auf diese Ressource zugreift, folgendes tun:

Weitere Informationen zum Zuordnen von busrelativen Adressen finden Sie unter Zuordnen Bus-Relative Adressen zu virtuellen Adressen.