Informazioni sulle enumerazioni dei volumi con nomi di volume duplicati

Durante l'enumerazione dei volumi, è possibile che i nomi di volume duplicati vengano visualizzati in un elenco di informazioni sul volume risultante.

Per comprendere il motivo per cui può verificarsi questo problema, considerare lo scenario seguente: la routine di enumerazione del volume FltEnumerateVolumeInformation viene usata per enumerare tutti i volumi di sistema. In questo modo si ottiene un buffer pieno di strutture di informazioni sul volume, una per ogni volume noto per la gestione dei filtri. In questo buffer, ogni struttura informativa del volume può essere di tipo FILTER_VOLUME_BASIC_INFORMATION o FILTER_VOLUME_STANDARD_INFORMATION, ma non entrambi.

Dato questo elenco di strutture di informazioni sul volume, è possibile che più elementi dell'elenco contengano lo stesso nome di volume. Ovvero, i membri FilterVolumeName di due o più elementi elenco potrebbero essere identici. Ciò è possibile perché tutte le routine di enumerazione del gestore filtri, ad esempio FltEnumerateVolumes, enumera i volumi inclusi quelli che sono stati smontati ma non sono stati smontati (a causa del fatto che i file aperti esistono ancora nel volume). Pertanto, quando un volume viene smontato, il nome può apparire più volte in un elenco di informazioni sul volume, una volta per lo stato montato corrente e una volta per lo stato precedente smontato ma non eliminato, nel caso più semplice.

Se i nomi di volume duplicati vengono visualizzati in un elenco di informazioni sul volume, ogni gruppo di nomi identici viene spiegato dalla descrizione precedente. Tuttavia, è possibile confermare lo scenario precedente usando le procedure seguenti:

  • Se l'elenco viene popolato con strutture di tipo FILTER_VOLUME_STANDARD_INFORMATION, identificare un gruppo di strutture i cui membri FilterVolumeName sono uguali. Se una o più strutture di questo gruppo hanno il flag FLTFL_VSI_DETACHED_VOLUME impostato nel relativo membro Flags , il volume associato al gruppo era in uno stato smontato ma non eliminato. Ciò conferma il motivo per cui esistono nomi di volume duplicati. Ripetere questa procedura per tutti i gruppi rimanenti, se applicabile.

  • Se l'elenco viene popolato con strutture di tipo FILTER_VOLUME_BASIC_INFORMATION, convertire l'elenco nel formato di struttura FILTER_VOLUME_STANDARD_INFORMATION equivalente e procedere come nel punto punto elenco precedente.

Nota La struttura FILTER_VOLUME_STANDARD_INFORMATION è disponibile solo a partire da Windows Vista.

Le routine e le strutture interessate da questo argomento includono quanto segue:

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FilterVolumeFindFirst

FilterVolumeFindNext

FltEnumerateVolumeInformation

FltEnumerateVolumes

FltGetVolumeInformation