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 rozszerzeniach urządzenia każdego urządzenia stworzonego przez sterownik klasy pamięci masowej, sterownik ten udostępnia przestrzeń dla dowolnych danych określonych przez sterownik, używanych do zarządzania żądaniami we/wy dla urządzenia, takich jak wskaźnik do PDO przekazanego do AddDevice, wskaźnik do obiektu urządzenia zwróconego przez IoAttachDeviceToDeviceStack, wskaźnik zwrotny do własnego obiektu urządzenia, i tak dalej.
Większość sterowników klasy pamięci zapewnia przechowywanie następujących informacji:
Wartość limitu czasu specyficzna dla typu urządzenia
Sterownik klasy może przekazać wartość limitu czasu w usługach SRB, które wysyła do sterownika portu, który razy SRB_FUNCTION_EXECUTE_SCSI żądań (zobacz SCSI_REQUEST_BLOCK) w imieniu każdego sterownika klasy. Sterownik portu zwraca obiekt SRB z elementem członkowskim SrbStatus ustawionym na SRB_STATUS_TIMEOUT, jeśli przerwa między chwilą wysłania żądania do podstawowego sterownika a ukończeniem żądania przekracza określoną wartość czasu oczekiwania.
Wskaźnik do procedury obsługi błędów sterownika klasy
Zobacz Rutyny IoCompletion sterownika klasy przechowywania, aby uzyskać więcej informacji na temat obsługi błędów w sterownikach klasy przechowywania.
Liczba błędów protokołu magistrali, które sterownik prowadzi na urządzeniu.
Wskaźnik do buforu przydzielonego przez sterownik dla danych zmysłów
Sterownik klasy musi przydzielić pamięć dla zwróconych danych zmysłów z puli wyrównanej do pamięci podręcznej, niestronicowanej. Aby uzyskać więcej informacji na temat przydzielania pamięci dla buforów sterowników, zapoznaj się z Przydzielanie System-Space pamięci.
Określona przez sterownik wartość domyślna SrbFlags ustawiana przez sterownik klasy w SRB
Wskaźnik do nagłówka listy lookaside, jeśli sterownik konfiguruje listę lookaside dla SRBs, które przydziela.
Aby uzyskać więcej informacji, zobacz Using Lookaside Lists (Korzystanie z list lookaside).
Wskaźniki do IRP i SRB, które są przydzielone i utrzymywane w rezerwie dla żądań, które muszą zakończyć się powodzeniem nawet w warunkach ograniczonej pamięci, w celu przeprowadzenia operacji stronicowania oraz odzyskiwania błędów (takich jak te wykonywane przez procedurę ReleaseQueue sterownika klasy magazynu)
Wskaźnik do danych STORAGE_ADAPTER_DESCRIPTOR i STORAGE_DEVICE_DESCRIPTOR, które zostały zebrane przez sterownik portu z karty HBA
Aby uzyskać informacje o sposobie pobierania i używania tych danych przez sterowniki klas, zobacz GetDescriptor Routine sterownika klasy magazynu.
Flagi wskazujące poprzedni i bieżący stan PnP w celu zarządzania przejściami między stanami na urządzeniu
Flaga wskazująca bieżący stan zasilania urządzenia, aby uniknąć dodatkowej pracy w obsłudze nadmiarowych żądań zasilania
Liczba plików stronicowania systemu, jeśli jakiekolwiek istnieją, na urządzeniu, na podstawie żądań powiadomień stronicowania odebranych przez sterownik (IRP_MJ_PNP z IRP_MN_DEVICE_USAGE_NOTIFICATION).
Sterownik klasy przechowywania nie może wysyłać żądań do swojego urządzenia za pośrednictwem sterownika portu przechowywania bez użycia wskaźnika obiektu urządzenia, który został zwrócony przez IoAttachDeviceToDeviceStack i został przechowywany w rozszerzeniu urządzenia przez procedurę AddDevice sterownika.