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.
Sterownik portów SCSI zapewnia następujące możliwości:
System Microsoft Windows obsługuje systemy, które zawierają różne typy magistral we/wy i/lub kilka magistral we/wy tego samego typu. Do obsługi tej odmiany potrzebny jest wspólny schemat adresowania.
Urządzenia PCI mogą mieć zarówno port we/wy, jak i zasoby rejestru pamięci. Adresy logiczne pomagają uczynić to rozróżnienie przejrzystym dla sterownika portu.
Niektóre systemy zawierają karty HBA połączone z więcej niż jedną magistralą; takie karty HBA mogą wymagać kilku zestawów tłumaczeń adresów.
Adresy logiczne są potrzebne do przenośności na komputerach opartych na architekturach CISC i RISC.
Ponawianie prób irps, gdy urządzenie jest zbyt zajęte, aby je przetworzyć.
Sterowniki klas pamięci masowej nie muszą implementować algorytmów do ponownego próbowania IRP, gdy urządzenia są zbyt zajęte, aby je przetworzyć. Sterownik portów SCSI implementuje tę funkcję.
Wymuszanie wartości limitu czasu dla żądań.
Sterownik klasy ustawia wartość limitu czasu dla żądań, a port SCSI jest odpowiedzialny za jego wymuszanie. Jednak sterownik portu SCSI może elastycznie narzucać wartości limitu czasu sterownika klasy, biorąc pod uwagę stan magistrali. Na przykład, jeśli łącze światłowodowe zarządzane przez port SCSI przerwie się na 20 sekund, port SCSI może zawiesić licznik limitu czasu w trakcie przerwy, tak aby żądania z limitem czasu 10 sekund nie zakończyły się niepowodzeniem aż do 10 sekund po przywróceniu połączenia. Port SCSI zwiększa limit czasu przypisywany do żądań w odpowiedzi na wzrost ruchu we/wy, ponieważ w przypadku cięższego ruchu we/wy urządzenia będą wymagały więcej czasu na ukończenie żądań.
Obsługa błędów związanych z docelowym urządzeniem i zajętością kontrolera, a także warunków błędu transportowego (innymi słowy, błędów związanych z rzeczywistą transmisją danych w magistrali). Na przykład:
- Błędy parzystości magistrali danych
- czas wyczerpania wyboru
Dostarczanie sterownikom klas informacji o ograniczeniach adaptera hosta.
Obowiązkiem sterownika klasowego jest dostosowanie rozmiaru transferów danych zgodnie z limitami kart magistrali hosta (HBA). Jednak port SCSI dostarcza sterownikowi klasy potrzebne informacje do wykonania tego zadania. Port SCSI dostarcza te informacje w deskryptorze adaptera (STORAGE_ADAPTER_DESCRIPTOR) w odpowiedzi na żądanie IOCTL_STORAGE_QUERY_PROPERTY IOCTL. Sterownik klasy jest odpowiedzialny za podział żądań na fragmenty odpowiedniego rozmiaru na podstawie informacji zgłoszonych w tym deskryptorze.
Tłumaczenie adresów względnych magistrali na adresy logiczne.
W przypadku zapytania adaptery udostępniają adresy względne magistrali dla portów I/O, rejestrów poleceń i rejestrów stanu sterowania. Jednak sterownik miniportu nie może używać adresów względnych magistrali do komunikowania się z adapterem magistrali hosta (HBA). Port SCSI tłumaczy adresy względne magistrali na adresy logiczne, dzięki czemu sterowniki miniportu mogą uzyskiwać dostęp do adresów magistrali w przezroczysty sposób. Istnieje kilka powodów tego:
Upewnienie się, że urządzenie i wszystkie jego bazowe urządzenia są zasilane (w stanie zasilania urządzenia D0) przed uruchomieniem urządzenia.
Gdy urządzenie nie jest gotowe do zasilania, port SCSI kolejkuje żądanie D0 dla tego urządzenia, dopóki urządzenie nie będzie gotowe.
Kolejkowanie asynchronicznych żądań ze sterowników klas i przekazywanie ich synchronicznie do urządzenia docelowego.
Sterowniki klas nie muszą czekać na zakończenie realizacji żądania przed wysłaniem następnego żądania. Port SCSI przejmuje odpowiedzialność za kolejkowanie tych żądań, aby uniknąć przeciążenia mocy obliczeniowej bazowego sprzętu.
Obsługa zarówno wewnętrznego, jak i zewnętrznego zarządzania wewnętrznymi kolejkami żądań we/wy.
Większość operacji zarządzania kolejkami jest inicjowana przez sam port SCSI. Na przykład port SCSI zawiesza kolejkę po wystąpieniu błędu i zgłasza warunek błędu do sterownika klasy, aby sterownik klasy mógł odpowiedzieć przed przetworzeniem dalszych żądań. Jednak port SCSI odpowiada również na żądania ze sterownika klasy lub innych sterowników wyższego poziomu, aby zablokować, odblokować, zamrozić lub rozmrozić wewnętrzną kolejkę żądań. Sterowniki wyższego poziomu mogą wymusić odmrożenie wewnętrznej kolejki portu SCSI przy użyciu żądania SRB_FUNCTION_RELEASE_QUEUE. Aby uzyskać wyjaśnienie, co to znaczy "zamrozić", "zablokować" lub "odblokować" kolejkę, zobacz Zarządzanie Kolejką sterownika portu SCSI.
Konwersja błędów zgłaszanych przez urządzenie do formatu danych SCSI-2 na potrzeby przetwarzania przez sterownik klasy.
Port SCSI udostępnia usługi sterownikowi miniportu za pomocą procedur biblioteki portów SCSI. Autorzy sterowników Miniport mogą wywoływać te rutyny zamiast implementować oferowane przez nie funkcje w jednym, monolitycznym sterowniku portów. Niektóre z najważniejszych usług zapewnianych przy użyciu tych procedur są następujące:
Sterownik miniportu portów SCSI może delegować wiele operacji inicjowania systemu operacyjnego do ScsiPortInitialize procedurę biblioteki portów SCSI. Dzięki temu sterownik miniportu portów SCSI jest bardziej przenośny w różnych wersjach systemu operacyjnego. Aby uzyskać wyjaśnienie obowiązków inicjowania sterownika miniportu portów SCSI, zobacz Sterownik miniportu SCSI DriverEntry Routine.
Sterowniki miniportów portów SCSI dla urządzeń innych niż PnP są zwolnione z zadania lokalizowania kart i raportowania ich zasobów do menedżera PnP. Odbywa się to w ScsiPortInitialize.
Sterowniki miniportów portów SCSI nie inicjują punktów wejścia wysyłania w obiekcie sterownika. Sterownik portu SCSI wykonuje to w imieniu sterownika miniportu, gdy sterownik miniportu wywołuje ScsiPortInitialize.
Sterowniki miniportów portów SCSI nie konwertują adresów względnych magistrali na adresy logiczne, używając HalTranslateBusAddress. Sterowniki miniportów portów SCSI wykonują to przez wywołanie metody ScsiPortGetDeviceBase.
Aby uzyskać podsumowanie procedur bibliotecznych udostępnianych przez port SCSI sterownikom miniportowym portu SCSI, zobacz sekcję 'Procedury obsługi sterownika portu SCSI'.