Condividi tramite


Routine di invio del driver di classe di archiviazione

I driver di classe DRIVER_DISPATCH e le routine DispatchClose in genere non hanno requisiti specifici del dispositivo. La maggior parte dei driver di classe di archiviazione sono driver intermedi; le routine di invio restituiscono solo STATUS_SUCCESS per indicare che esiste un determinato oggetto dispositivo in modo che i driver di livello superiore e, indirettamente, le applicazioni in modalità utente possano aprire il dispositivo per I/O e chiudere il dispositivo in seguito.

Le routine DispatchDeviceControl e DispatchInternalDeviceControl del driver di classe devono essere residenti; ovvero, non possono essere paginabili né parte della sezione pageable-image di un driver. A seconda dell'IOCTL di una determinata richiesta, tale routine di invio potrebbe chiamare una routine paginata o attendere una chiamata da una sincronizzazione o un oggetto di notifica (bloccando così il thread in esecuzione), ma la routine di invio deve essere in grado di passare un IOCTL sconosciuto attraverso in DISPATCH_LEVEL.

Un driver della classe di archiviazione deve avere una routine DispatchPnP per le richieste di avvio, arresto e rimozione del dispositivo e rispondere ad altre richieste PnP, ad esempio la notifica che il dispositivo si trova nel percorso di paging. Per informazioni dettagliate sulla gestione di una richiesta di avvio PnP, vedere Gestione di PnP Start in un driver di classe di archiviazione. Per informazioni dettagliate sulla gestione di altre richieste PnP, vedere Gestione delle richieste PnP alle periferiche di archiviazione.

Un driver di classe di archiviazione deve avere anche una routine DispatchPower per le richieste per impostare lo stato di alimentazione del dispositivo. Per informazioni dettagliate, vedere Gestione delle richieste di alimentazione alle periferiche di archiviazione.

Un driver della classe di archiviazione deve avere una routine DispatchShutdown e possibilmente una routine DispatchFlushBuffers se i dati del dispositivo memorizza nella cache i dati internamente, se il relativo dispositivo potrebbe essere collegato a un bus guidato da un'HBA che memorizza i dati nella cache internamente o se un file system è stratiato sopra il driver di classe. Per mantenere l'integrità dei dati, tale cache deve essere scaricata nel dispositivo prima dell'arresto del sistema.

Per altre informazioni sui requisiti generali per le routine di invio, vedere anche La scrittura di routine di invio .