Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Gdy funkcja EvtDeviceRemoveAddedResources lub EvtDevicePrepareHardware odbiera listę zasobów, otrzymuje dwie wersje tej listy. Jedna wersja reprezentuje nieprzetworzone zasoby urządzenia, a druga reprezentuje przetłumaczone zasoby urządzenia. Obie wersje reprezentują ten sam zestaw zasobów sprzętowych w tej samej kolejności.
Zasoby pierwotne to zasoby, które są identyfikowane przez adresy powiązane z magistralą, z którą urządzenie jest połączone. Zazwyczaj sterownik, który programuje urządzenie, udostępnia te adresy urządzeniu.
Przetłumaczone zasoby to zasoby, które są identyfikowane przez systemowe adresy fizyczne używane przez sterowniki w celu uzyskania dostępu do zasobów.
Sterownik urządzenia magistrali PCI odbiera zasoby wymienione w kolejności, w której są wyświetlane w rejestrach adresów podstawowych (BAR) urządzenia. Jednak dodatkowe deskryptory zasobów mogą być przeplatane na liście, w efekcie zasób pod indeksem X w BAR może nie być zgodny z zasobem na tej samej pozycji indeksu na liście zasobów.
Aby uzyskać więcej informacji na temat nieprzetworzonych i przetłumaczonych zasobów, zobacz opisy składowych struktury CM_PARTIAL_RESOURCE_DESCRIPTOR .
Jeśli przetłumaczona lista zasobów urządzenia zawiera zasób zawierający element członkowski typu struktury CM_PARTIAL_RESOURCE_DESCRIPTOR ustawiony na CmResourceTypeMemory, każdy sterownik, który uzyskuje dostęp do tego zasobu, musi wykonać następujące czynności:
- Funkcja zwrotna sterownika EvtDevicePrepareHardware musi wywołać funkcję MmMapIoSpace aby zamapować systemowe adresy fizyczne na systemowe adresy wirtualne.
- Funkcja wywołania zwrotnego sterownika EvtDeviceReleaseHardware musi wywołać MmUnmapIoSpace, aby cofnąć mapowanie adresów.
Aby uzyskać więcej informacji na temat mapowania adresów względnych magistrali, zobacz Mapowanie adresów Bus-Relative do adresów wirtualnych.