Udostępnij przez


Procedury wysyłania sterownika klasy magazynu

Procedury sterownika klasy DRIVER_DISPATCH i DispatchClose zwykle nie mają wymagań specyficznych dla urządzenia. Większość sterowników klasy magazynu to sterowniki pośrednie; ich procedury wysyłania po prostu zwracają STATUS_SUCCESS, aby wskazać, że dany obiekt urządzenia istnieje, tak aby sterowniki wyższego poziomu i pośrednio aplikacje w trybie użytkownika mogły otworzyć urządzenie do operacji we/wy, a następnie je zamknąć.

Sterowniki klas DispatchDeviceControl i DispatchInternalDeviceControl muszą być rezydentne; oznacza to, że nie mogą być stronicowalne ani częścią sekcji obrazu możliwej do stronicowania. W zależności od IOCTL danego żądania taka rutyna wysyłania może wywołać stronicowaną procedurę lub poczekać na wywołanie z obiektu synchronizacji lub powiadomienia (blokując w ten sposób wykonywanie wątku), ale rutyna wysyłania musi być w stanie przekazać nieznane IOCTL na poziomie DISPATCH_LEVEL.

Sterownik klasy pamięci masowej musi mieć procedurę DispatchPnP do obsługi żądań uruchomienia, zatrzymania i usunięcia urządzenia oraz reagowania na inne żądania PnP, takie jak powiadomienia, że urządzenie jest na ścieżce stronicowania. Aby uzyskać szczegółowe informacje na temat obsługi żądania uruchomienia PnP, zobacz Obsługa PnP Start w sterowniku klasy magazynu. Aby uzyskać szczegółowe informacje na temat obsługi innych żądań PnP, zobacz Obsługa żądań PnP do urządzeń peryferyjnych magazynu.

Sterownik klasy magazynu musi również mieć procedurę DispatchPower, aby obsługiwać żądania ustawiające stan zasilania jego urządzenia. Aby uzyskać szczegółowe informacje, zobacz Obsługa żądań zasilania do urządzeń peryferyjnych pamięci masowej.

Sterownik klasy pamięci musi mieć procedurę DispatchShutdown i ewentualnie procedurę DispatchFlushBuffers, jeśli urządzenie buforuje dane wewnętrznie, może być dołączone do magistrali sterowanej przez kartę HBA, która buforuje dane wewnętrznie, lub jeśli system plików jest ułożony nad sterownikiem klasy. Aby zachować integralność danych, taka pamięć podręczna powinna zostać opróżniona na urządzenie przed zamknięciem systemu.

Zobacz również Pisanie procedur wysyłania , aby uzyskać więcej informacji na temat ogólnych wymagań dotyczących procedur wysyłania.