Udostępnij przez


Możliwości udostępniane przez usługę Storport

Sterownik Storport zapewnia następujące możliwości:

  • Adresowanie

    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 przenoszenia na maszynach opartych na modelu CISC i RISC.

  • Ponawianie prób i obsługa błędów

    • Sterowniki klas pamięci masowej nie muszą implementować algorytmów ponawiania prób IRP, gdy urządzenia są zbyt zajęte, aby je przetworzyć. Sterownik Storport implementuje tę funkcję.

    • Sterownik klasy ustawia wartość limitu czasu dla żądań, a Storport jest odpowiedzialny za jego egzekwowanie. Jednak sterownik Storport może wymusić elastyczne wartości limitu czasu kierowcy klasy, biorąc pod uwagę stan autobusu. Na przykład, jeśli łącze fibre channel zarządzane przez Storport zostanie przerwane na 20 sekund, Storport może zawiesić licznik limitu czasu podczas przestoju, tak aby żądania z czasem limitu 10 sekund nie zakończyły się niepowodzeniem aż do 10 sekund po przywróceniu połączenia. Usługa Storport 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ń.

    • Storport obsługuje błędy docelowe i błędy zajętości kontrolera, a także błędy transportu (innymi słowy, błędy związane z rzeczywistą transmisją danych w magistrali). Na przykład:

      • Błędy parzystości magistrali
      • przerwy czasowe zaznaczenia
  • konfiguracja, kolejkowanie i zarządzanie stanem zasilania

    • Dostarczanie sterownikom klasowym informacji o ograniczeniach adaptera hosta: Odpowiedzialnością sterownika klasowego jest regulowanie rozmiaru transferów danych zgodnie z limitami kart magistrali hosta (HBA). Jednak Storport udostępnia sterownikowi klasowemu informacje potrzebne do wykonania tego zadania. Storport dostarcza te informacje w deskryptorze adaptera (STORAGE_ADAPTER_DESCRIPTOR) w odpowiedzi na żądanie IOCTL (IOCTL_STORAGE_QUERY_PROPERTY). 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 zapewniają adresy względne magistrali dla portów we/wy, 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). Storport tłumaczy adresy magistrali względne na adresy logiczne, dzięki czemu kierowcy miniportu mogą uzyskiwać dostęp do adresów magistrali w przejrzysty sposób. Istnieje kilka powodów tego:

    • Upewnij się, że urządzenie i wszystkie jego podstawowe urządzenia są zasilane (w stanie zasilania urządzenia D0) przed uruchomieniem urządzenia: gdy urządzenie nie jest gotowe do zasilania, Storport kolejkuje żądanie D0 dla tego urządzenia do momentu gotowości urządzenia.

    • Kolejkowanie żądań asynchronicznych ze sterowników klas i przekazywanie ich asynchronicznie do urządzenia docelowego: Sterowniki klas nie muszą czekać na ukończenie żądania przed wysłaniem następnego żądania. Storport przejmuje odpowiedzialność za kolejkowanie tych żądań, aby uniknąć przeciążenia mocy obliczeniowej bazowego sprzętu.

    • Obsługa zarządzania zarówno wewnętrznego, jak i zewnętrznego wewnętrznymi kolejkami żądań we/wy: większość operacji zarządzania kolejkami jest inicjowana przez sam Storport. Na przykład Storport zawiesza kolejkę, gdy wystąpi błąd i zgłasza stan błędu do sterownika klasy, aby sterownik klasy mógł odpowiedzieć przed przetworzeniem dalszych żądań. Jednakże Storport odpowiada również na żądania od sterownika klasy lub innych sterowników wyższego poziomu, aby zablokować, odblokować, zamrozić lub odmrozić wewnętrzną kolejkę żądań. Sterowniki wyższego poziomu mogą zapewnić odblokowanie kolejki wewnętrznej Storportu przy pomocy żądania SRB_FUNCTION_RELEASE_QUEUE. Aby uzyskać wyjaśnienie, co to znaczy "zamrozić", "zablokować" lub "odblokować" kolejkę, sprawdź Storport Queue Management.

    • Tłumaczenie błędów zgłaszanych przez urządzenie na format danych SCSI-3 w celu przetwarzania ich przez sterownik klasy.

Storport świadczy usługi dla sterownika miniportu za pomocą procedur biblioteki Storport. Twórcy sterowników miniport mogą wywoływać te rutyny zamiast implementować te funkcje w pojedynczym, monolitycznym sterowniku portu. Niektóre z najważniejszych usług zapewnianych przy użyciu tych procedur są następujące:

  • Sterownik miniportu Storport może delegować wiele operacji inicjowania zależnych od systemu operacyjnego do funkcji bibliotecznej StorPortInitialize. Na przykład sterownik Storport obsługuje szczegóły związane z mapowaniem PnP i DMA. Zmniejsza to ilość pracy, jaką musi wykonać sterownik miniportu Storport. Aby uzyskać wyjaśnienie obowiązków związanych z inicjalizacją sterownika miniportu Storport, zobacz Inicjowanie sprzętu za pomocą Storport.

  • Sterowniki miniportów Storport dla urządzeń innych niż PnP są zwolnione z zadania odszukiwania kart i raportowania ich zasobów menedżerowi PnP. Jest to wykonywane w StorPortInitialize.

  • Sterowniki miniportów Storport nie inicjują punktów wejścia wysyłki w obiekcie sterownika. Sterownik Storport wykonuje to w imieniu sterownika miniportu, gdy sterownik miniportu wywołuje StorPortInitialize.

  • Sterowniki miniportu Storport nie wykorzystują HalTranslateBusAddressdo konwersji adresów względnych magistrali na adresy logiczne. Sterowniki miniportu Storportu wykonują to przez wywołanie StorPortGetDeviceBase.

Aby uzyskać pełną listę procedur biblioteki, które Storport udostępnia sterownikom miniportu, zobacz Procedury pomocy technicznej sterowników Storport.