Share via


Stack di dispositivi di archiviazione, volumi di archiviazione e stack di file system

Nota

Per garantire affidabilità e prestazioni ottimali, usare i driver minifilter del file system con il supporto di Filter Manager anziché i driver di filtro del file system legacy. Per convertire il driver legacy in un driver minifilter, vedere Linee guida per la conversione dei driver di filtro legacy.

Prima di esplorare il modo in cui i driver di filtro legacy del file system si collegano ai file system e ai volumi, è necessario comprendere la relazione tra stack di dispositivi di archiviazione, volumi di archiviazione e stack di file system.

Stack di dispositivi di archiviazione

La maggior parte dei driver di archiviazione sono driver di dispositivo PnP, caricati e gestiti da PnP Manager. I dispositivi di archiviazione sono rappresentati nell'albero dei dispositivi PnP, che contiene un nodo del dispositivo o un nodo devnode, per ogni dispositivo fisico o logico nel computer. È importante notare che i driver di filtro file system e file system non sono driver di dispositivo PnP; pertanto l'albero dei dispositivi PnP non contiene devnodes per loro.

Il devnode per un dispositivo di archiviazione specifico contiene lo stack di dispositivi di archiviazione per il dispositivo; si tratta della catena di oggetti dispositivo collegati che rappresentano i driver di dispositivo di archiviazione del dispositivo. Poiché un dispositivo di archiviazione, ad esempio un disco, potrebbe contenere uno o più volumi logici (partizioni o volumi dinamici), lo stack di dispositivi di archiviazione stesso sembra spesso più simile a un albero rispetto a uno stack. La radice di questo albero è un oggetto dispositivo funzionale (FDO) per una scheda di archiviazione o per un altro stack di dispositivi integrato con lo stack di archiviazione. Le foglie di questo albero sono gli oggetti del dispositivo fisico (PDO) per i volumi logici, chiamati anche volumi di archiviazione, in cui possono essere montati i volumi del file system.

Per diagrammi e descrizioni di alcuni stack di dispositivi di archiviazione tipici, vedere le sezioni seguenti della Guida alla progettazione dei dispositivi di archiviazione:

Volumi di archiviazione

Un volume è un dispositivo di archiviazione, ad esempio un disco fisso, un disco floppy o UN CD-ROM, formattato per archiviare directory e file. Un volume di grandi dimensioni può essere diviso in più di un volume logico, chiamato anche una partizione. Ogni volume logico viene formattato per l'uso da un file system basato su supporti specifico, ad esempio NTFS, FAT o CDFS.

Un volume di archiviazione o un oggetto dispositivo di archiviazione è un oggetto dispositivo , in genere un oggetto dispositivo fisico (PDO) - che rappresenta un volume logico al sistema. L'oggetto dispositivo di archiviazione si trova nello stack di dispositivi di archiviazione, ma non è necessariamente l'oggetto dispositivo più alto nello stack.

Quando un file system viene montato su un volume di archiviazione, crea un oggetto dispositivo del volume del file system (VDO) per rappresentare il volume nel file system. Il file system VDO viene montato sull'oggetto dispositivo di archiviazione tramite un oggetto condiviso denominato blocco di parametri del volume (VPB).

Gestione montaggio

Mount Manager è la parte del sistema di I/O responsabile della gestione delle informazioni sul volume di archiviazione, ad esempio nomi di volume, lettere di unità e punti di montaggio del volume. Quando un nuovo volume di archiviazione viene aggiunto al sistema, Mount Manager riceve una notifica all'arrivo in uno dei modi seguenti:

  • Il driver di classe che ha creato il volume di archiviazione chiama IoRegisterDeviceInterface per registrare una nuova interfaccia nella classe di interfaccia MOUNTDEV_MOUNTED_DEVICE_GUID. In questo caso, il meccanismo di notifica dell'interfaccia del dispositivo Plug and Play avvisa il Gestore montaggio dell'arrivo del volume nel sistema.

  • Il driver per il volume di archiviazione invia a Mount Manager una richiesta di IRP_MJ_DEVICE_CONTROL, specificando IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION per il codice di controllo I/O. Questa richiesta può essere creata chiamando IoBuildDeviceIoControlRequest.

Nome del volume univoco

Mount Manager risponde all'arrivo di un nuovo volume di archiviazione eseguendo una query sul driver del volume per le informazioni seguenti:

  • Il nome dell'oggetto dispositivo nonpersistente del volume (o nome di destinazione), situato nella directory Device dell'albero degli oggetti di sistema (ad esempio: "\Device\HarddiskVolume1")

  • Identificatore univoco globale del volume ( GUID), chiamato anche il nome del volume univoco

  • Nome di collegamento simbolico permanente suggerito per il volume, ad esempio una lettera di unità ,ad esempio "\DosDevices\D:")

Per altre informazioni sull'interazione tra driver di archiviazione e Mount Manager, vedere Supporto delle richieste di Mount Manager in un driver di classe di archiviazione.

Stack di file system

I driver del file system creano due tipi diversi di oggetti dispositivo: controllano gli oggetti dispositivo (CDO) e gli oggetti dispositivo volume (VDO). Uno stack di file system è costituito da uno di questi oggetti dispositivo, insieme a qualsiasi oggetto dispositivo di filtro per i driver di filtro file system collegati. L'oggetto dispositivo del file system forma sempre la parte inferiore dello stack.

CdO del file system

I CDO del file system rappresentano l'intero file system, anziché i singoli volumi e vengono archiviati nella coda del file system globale. Un file system crea uno o più CDO denominati nella routine DriverEntry . Ad esempio, FastFat crea due CDO: uno per supporti fissi e uno per supporti rimovibili. CDFS crea solo un CDO, perché ha solo supporti rimovibili.

I CDO del file system devono essere denominati. Questo è dovuto al fatto che i driver di filtro del file system, oltre a molte routine di supporto in modalità kernel, si basano su questa differenza tra VDO e CDO come modo per comunicarli a parte.

VDO di file system

Le VDO del file system rappresentano volumi montati da file system. Un file system crea un VDO quando monta un volume, in genere in risposta a una richiesta di montaggio del volume. A differenza di un CDO, un VDO è sempre associato a un dispositivo di archiviazione logico o fisico specifico.

Nota

A differenza di CDO, le VDO non devono mai essere denominate, perché la denominazione di un oggetto dispositivo volume creerebbe un foro di sicurezza.