Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nelle estensioni dispositivo di ogni oggetto dispositivo creato da un driver di classe di archiviazione, tale driver fornisce l'archiviazione per i dati determinati dal driver usati per gestire le richieste di I/O per il dispositivo, ad esempio il puntatore al PDO passato a AddDevice, il puntatore all'oggetto dispositivo restituito da IoAttachDeviceToDeviceStack, un puntatore indietro al proprio oggetto dispositivo, e così via.
La maggior parte dei driver di classe di archiviazione fornisce anche spazio di archiviazione per le informazioni seguenti:
Valore di timeout specifico del tipo di dispositivo
Il driver di classe può passare il valore di timeout negli SRB che invia al driver della porta, che cronometra le richieste SRB_FUNCTION_EXECUTE_SCSI (vedere SCSI_REQUEST_BLOCK) per conto di ogni driver di classe. Il driver di porta restituisce un SRB con il relativo membro SrbStatus impostato su SRB_STATUS_TIMEOUT se l'intervallo tra quando il driver della porta invia la richiesta al driver sottostante e quando la richiesta viene completata supera il valore di timeout specificato.
Puntatore alla routine di gestione degli errori del driver di classe
Per ulteriori informazioni sulla gestione degli errori nei driver di classe di archiviazione, vedere le Routine IoCompletion dei driver di classe di archiviazione.
Un conteggio che il driver mantiene degli errori del protocollo del bus sul dispositivo
Puntatore a un buffer allocato dal driver per i dati di analisi
Un driver di classe deve allocare memoria per i dati di rilevamento restituiti dal pool non paginato allineato alla cache. Per altre informazioni sull'allocazione della memoria per i buffer del driver, vedere Allocazione della System-Space Memoria.
Valore predefinito determinato dal driver per SrbFlags, che il driver di classe imposta negli SRB
Puntatore a un'intestazione dell'elenco lookaside se il driver configura un elenco lookaside per gli SRB che alloca.
Per altre informazioni, vedere Uso degli elenchi Lookaside .
Puntatori a un IRP e un SRB allocati e mantenuti in riserva per le richieste che devono avere successo anche in condizioni di memoria insufficiente, sia per operazioni di paging che per operazioni di ripristino degli errori (come quelle eseguite dalla routine ReleaseQueue di un driver di classe di archiviazione)
Puntatore ai dati STORAGE_ADAPTER_DESCRIPTOR e STORAGE_DEVICE_DESCRIPTOR raccolti dal driver di porta dall'HBA
Per informazioni su come i driver di classe ottengono e usano questi dati, vedere la Routine GetDescriptor del driver della classe di archiviazione.
Flag che indicano lo stato PnP precedente e corrente, per gestire le transizioni tra stati nel dispositivo
Flag che indica lo stato di alimentazione corrente del dispositivo, per evitare operazioni aggiuntive nella gestione delle richieste di alimentazione ridondanti
Conteggio dei file di paging di sistema, se presenti, nel dispositivo, in base alle richieste di notifica di paging ricevute dal driver (IRP_MJ_PNP con IRP_MN_DEVICE_USAGE_NOTIFICATION)
Un driver della classe di archiviazione non può inviare richieste al dispositivo tramite il driver della porta di archiviazione senza usare il puntatore all'oggetto dispositivo restituito da IoAttachDeviceToDeviceStack e archiviato nell'estensione del dispositivo dalla routine AddDevice del driver.