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.
La figura seguente illustra una panoramica di cosa accade quando un sottosistema apre un oggetto file che rappresenta un file di dati per conto di un'applicazione.
Il sottosistema chiama un servizio di sistema di I/O per aprire un file denominato.
Il gestore I/O chiama il gestore degli oggetti per cercare il file con il nome specificato e risolvere eventuali collegamenti simbolici per l'oggetto file. Chiama anche il monitoraggio dei riferimenti di sicurezza per verificare che il sottosistema disponga dei diritti di accesso corretti per aprire l'oggetto file.
Se il volume non è ancora montato, il gestore di I/O sospende temporaneamente la richiesta aperta e chiama uno o più file system fino a quando uno di essi riconosce l'oggetto file come qualcosa archiviato in uno dei dispositivi di archiviazione di massa usati dal file system. Quando il file system ha montato il volume, il gestore di I/O riprende la richiesta.
Il gestore di I/O alloca la memoria per e inizializza un IRP per la richiesta aperta. Per i driver, un'operazione di apertura equivale a una richiesta di "creazione".
Il gestore di I/O chiama il driver del file system, passandogli l'IRP. Il driver del file system accede al percorso dello stack di I/O nell'IRP per determinare quale operazione deve eseguire, controlla i parametri, determina se il file richiesto è nella cache e, in caso contrario, configura il percorso dello stack di I/O del driver inferiore successivo nell'IRP.
Entrambi i driver elaborano l'IRP e completano l'operazione di I/O richiesta, chiamando routine di supporto in modalità kernel fornite dal gestore di I/O e da altri componenti di sistema (non illustrati nella figura precedente).
I driver restituiscono l'IRP al gestore di I/O con il blocco di stato di I/O impostato in IRP per indicare se l'operazione richiesta è riuscita o perché non è riuscita.
Il gestore di I/O ottiene lo stato di I/O dall'IRP, in modo che possa restituire informazioni sullo stato tramite il sottosistema protetto al chiamante originale.
Il gestore di I/O libera l'IRP completato.
Il gestore di I/O restituisce un handle per l'oggetto file nel sottosistema se l'operazione di apertura ha avuto esito positivo. Se si è verificato un errore, restituisce lo stato appropriato al sottosistema.
Dopo che un sottosistema apre correttamente un oggetto file che rappresenta un file di dati, un dispositivo o un volume, il sottosistema usa l'handle restituito per identificare l'oggetto file nelle successive richieste di operazioni di I/O del dispositivo (in genere le richieste di controllo di I/O di lettura, scrittura o dispositivo). Per effettuare una richiesta di questo tipo, il sottosistema chiama i servizi di sistema I/O. Il gestore di I/O instrada queste richieste come IRP (pacchetti di richiesta di I/O) inviati ai driver appropriati.