Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby można było pomyślnie uruchomić jako sterownik PnP, należy zmodyfikować istniejący sterownik klasy SCSI w następujący sposób:
Kod inicjowania sterownika musi być zgodny z regułami inicjowania sterownika Plug and Play. Funkcjonalność w procedurze DriverEntry istniejącego sterownika SCSI jest podzielona między procedury DriverEntry, AddDevice i DispatchPnP sterownika klasy magazynu, zgodnie z opisem w Procedura DriverEntry dla sterownika klasy magazynu, Procedura AddDevice dla sterownika klasy magazynu i Obsługa rozpoczęcia PnP w sterowniku klasy magazynu.
Kod, który buduje SRB, nie może ustawić pól PathId, TargetId i Lun na adres docelowego urządzenia i powinien zainicjować te pola na 0xFF. Adres urządzenia jest niejawny w pdO, który reprezentuje urządzenie, a sterownik musi komunikować się tylko z takim obiektem urządzenia, dlatego nie jest konieczne, aby sterownik klasy podał adres urządzenia.
Kod, który pobiera dane dotyczące identyfikacji i możliwości SCSI, wydając żądania IOCTL_SCSI_GET_INQUIRY_DATA i IOCTL_SCSI_GET_CAPABILITIES, powinien wysyłać żądania IOCTL_STORAGE_QUERY_PROPERTY w celu pobierania deskryptorów urządzeń i kart.
Sterownik musi obsługiwać żądania PnP, aby uruchomić, zatrzymać i usunąć urządzenie, i musi mieć mechanizm niepowodzenia takiego żądania, jeśli obsługa będzie zakłócać transfer danych lub operacje systemowe. Na przykład sterownik powinien zakończyć się niepowodzeniem żądania usunięcia zapytania, zatrzymania zapytania lub zatrzymania, jeśli jego urządzenie zawiera plik strony systemowej. Taki sterownik powinien obsługiwać żądania powiadomień stronicowania (IRP_MJ_PNP z IRP_MN_DEVICE_USAGE_NOTIFICATION i typem powiadomienia DeviceUsageTypePaging), aby utrzymywać liczbę plików stronicowania na swoim urządzeniu.
Sterownik musi obsługiwać żądania zmiany stanu zasilania urządzenia (IRP_MJ_POWER przy użyciu IRP_MN_QUERY_POWER i IRP_MN_SET_POWER) i musi blokować operacje we/wy na urządzeniu podczas przejścia stanu zasilania.