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.
W systemie Windows urządzenia magazynujące peryferyjne mają sterowniki klas i filtrów. Sterowniki te działają jako interfejs między sterownikami pośredniego lub najwyższego poziomu znajdującymi się wyżej a dostarczonym przez system sterownikiem portu.
Żądania We/Wy z aplikacji użytkownika lub składnika jądra docierają do sterowników klasy pamięci za pośrednictwem usług systemu We/Wy oraz co najmniej jednego sterownika pośredniego lub wysokopoziomowego, takiego jak sterownik systemu plików. Sterowniki klas magazynu tłumaczą standardowe środowiska IRPs, które uzyskują do środowiska IRPs za pomocą zdefiniowanych przez system bloków żądania magazynu (SRB) przed wysłaniem każdego protokołu IRP do następnego niższego sterownika. Sterownik portu pamięci masowej tłumaczy SRBs ze sterowników klas na polecenia specyficzne dla magistrali, które wysyła do magistralowego adaptera hosta pamięci masowej (HBA) za pośrednictwem sterownika magistrali we/wy i ewentualnie jednego lub więcej sterowników filtrów.
Na poniższej ilustracji przedstawiono warstwową architekturę sterowników przechowywania w systemie Windows.
Począwszy od dołu rysunku:
Sterownik portu pamięci masowej definiuje interfejs dla wszystkich sterowników klasy pamięci masowej systemu Windows, w tym sterowników dostarczonych przez system, takich jak dysk, taśma i DVD. Ten interfejs portu/klasy izoluje sterowniki klas od wymagań specyficznych dla adaptera HBA, do którego są podłączone urządzenia. Sterownik portu magazynowania synchronizuje również dostęp do magistrali dla wszystkich sterowników urządzeń na odpowiednim HBA. System dostarcza sterowniki interfejsów pamięci dla adapterów SCSI, IDE, USB i IEEE 1394.
Sterownik portu pamięci masowej odbiera SRBs z wyższego poziomu sterownika (sterownik klasy pamięci masowej lub pośredniczący sterownik filtru) i przetwarza je w następujący sposób:
- Sterownik portu magazynowego przekazuje SRB z CDB do niezależnego od systemu operacyjnego, specyficznego dla karty HBA miniportowego sterownika Storport. Ten sterownik miniportu jest dynamicznie połączony z odpowiednim sterownikiem portu i zapewnia wsparcie sprzętowe dla konkretnej karty HBA. Aby uzyskać informacje na temat implementowania sterownika miniportu, zobacz Storport Miniport Drivers.
- Sterownik portu pamięci dla starszego zbiorczego IDE/ATAPI lub szyny IEEE 1394 tłumaczy elementy SRB odebrane ze sterownika klasy pamięci na format wymagany przez adapter. Na przykład może on ponownie pakować bazy danych CDB zgodnie z protokołem transportu specyficznym dla magistrali. Może też przełożyć je na inny format, izolując w ten sposób sterowniki wyższego poziomu od osobliwości bazowej magistrali.
Górny lub niższy sterownik filtru magazynu obsługuje funkcje specyficzne dla urządzenia, które nie są udostępniane przez sterownik klasy magazynu dostarczonej przez system. Sterownik filtra dolnego poziomu dla magazynu monitoruje SRB-y i/lub IRP-y generowane przez sterownik klasy pamięci masowej. Modyfikuje je zgodnie z potrzebami przed przekazaniem ich do następnego sterownika niższego poziomu, który może być sterownikiem portu pamięci lub innym sterownikiem filtru pamięci.
Aby uzyskać informacje na temat implementowania sterownika filtru magazynu, zobacz Sterowniki filtrów magazynu.
Sterownik klasy pamięci masowej używa interfejsu portu/klasy SCSI do sterowania urządzeniem tego typu na dowolnej magistrali, dla której system udostępnia sterownik portu pamięci masowej. Sterownik klasy jest specyficzny dla konkretnej klasy urządzenia — na przykład jeden sterownik klasy może uruchamiać wszystkie urządzenia CD-ROM na dowolnej obsługiwanej magistrali; inny może kontrolować wszystkie urządzenia dyskowe. Sterownik klasy pamięci masowej obsługuje żądania wejścia/wyjścia z aplikacji użytkowych lub sterowników znajdujących się wyżej w stosie pamięci masowej. Robi to przez utworzenie SRB zawierających CDB i wydawanie tych SRB do następnego niższego sterownika (sterownika portu magazynu lub sterownika filtru pośredniczącego) tak, jakby urządzenie było urządzeniem SCSI.
Implementacja sterownika klasy pamięci jest niewidoczna dla sterowników wyższego poziomu. Sterownik klasy dla urządzenia zmiany taśmy lub nośnika jest implementowany jako urządzeniowy sterownik miniklasy, który łączy się ze sterownikiem klasy dostarczanym przez system. Sterowniki klas dostarczone przez system dla innych urządzeń magazynujących, takich jak dysk i CD-ROM/DVD, są implementowane jako pojedyncze sterowniki monolityczne.
Aby uzyskać informacje na temat implementowania sterownika klasy magazynu, zobacz Sterowniki klas magazynu. Aby uzyskać informacje na temat implementowania sterownika miniklasy taśmy lub zmieniacza, zobacz Sterowniki taśm i Sterowniki zmieniaczy, odpowiednio.
Sterownik filtru górnego poziomu przechwytuje IRPs z aplikacji użytkownika oraz z wyższych sterowników w stosie pamięci masowej. Następnie może je modyfikować przed przekazaniem ich do następnego niższego sterownika (sterownik klasy pamięci masowej lub inny sterownik filtru pamięci masowej). Sterowniki filtrów zwykle monitorują wydajność bazowego urządzenia.
Typ magistrali, do której jest podłączone urządzenie, oraz implementacja sterownika portu pamięci masowej są przezroczyste dla sterowników wyższego poziomu.
Sterownik portu pamięci masowej może zostać zaimplementowany:
- Zgodnie z architekturą sterowników port/miniport, takich jak sterownik portu Storport lub SCSI.
- Jako sterownik monolityczny, który steruje jednym, standardowym elementem sprzętu, takim jak sterownik portu IDE/ATAPI.
- Jako sterownik filtrujący, który tłumaczy SRB na format wymagany przez inny stos sterowników, taki jak sterownik portu IEEE 1394.
Sterownik portów SCSI dostarczany przez system może także pełnić rolę interfejsu między sterownikiem klasy magazynującej a sterownikiem miniportu SCSI, który kontroluje urządzenie magazynujące, które nie jest SCSI, ale jest tego samego typu. Na przykład zamiast pisania sterownika dla nowego kontrolera macierzy dyskowej moduł zapisywania sterowników może zaoszczędzić znaczny nakład pracy, zapisując sterownik miniportu pseudo-SCSI, który łączy się ze sterownikiem portów SCSI systemu i używa interfejsu, który zapewnia. Taki sterownik miniportu jest wymagany do tłumaczenia przychodzących poleceń SCSI na polecenia specyficzne dla urządzenia. Z drugiej strony sterowniki portów i klas dostarczone przez system obsługują większość niezbędnych prac w imieniu miniportu pseudo-SCSI. Ta praca obejmuje dostęp do rejestru podczas inicjowania, wszystkie alokacje zasobów i obiektów, synchronizację, wstępne określanie żądanych transferów zgodnie z możliwościami urządzenia miniportu i ponawianie żądań.