Funzione FltOpenVolume (fltkernel.h)
La routine FltOpenVolume restituisce un handle e un puntatore a oggetti file per il volume del file system a cui è associata un'istanza del driver minifilter specificata.
Sintassi
NTSTATUS FLTAPI FltOpenVolume(
[in] PFLT_INSTANCE Instance,
[out] PHANDLE VolumeHandle,
[out] PFILE_OBJECT *VolumeFileObject
);
Parametri
[in] Instance
Puntatore istanza opaca per l'istanza. Questa istanza deve essere associata a un volume locale.
[out] VolumeHandle
Handle per il volume del file system.
[out] VolumeFileObject
Puntatore a una variabile allocata dal chiamante che riceve un puntatore a oggetti file per la directory radice del volume. Questo parametro è facoltativo e può essere NULL.
Valore restituito
FltOpenVolume restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio quanto segue:
Codice restituito | Descrizione |
---|---|
|
L'istanza o il volume viene eliminato. Si tratta di un codice di errore. |
|
L'istanza è collegata a un volume di rete. Si tratta di un codice di errore. |
Commenti
Quando l'handle restituito nel parametro VolumeHandle non è più necessario, il chiamante deve rilasciarlo chiamando FltClose. Pertanto, ogni chiamata riuscita a FltOpenVolume deve essere corrispondente a una chiamata successiva a FltClose.
Se un puntatore a un oggetto file viene restituito nel parametro VolumeFileObject , il chiamante deve rilasciarlo quando non è più necessario chiamando ObDereferenceObject.
L'istanza specificata dal parametro Instance deve essere associata a un volume locale. Se è collegato a un volume di rete, FltOpenVolume restituisce STATUS_INVALID_PARAMETER.
Per ottenere un puntatore all'oggetto dispositivo per un determinato volume, chiamare FltGetDeviceObject.
Per ottenere informazioni dettagliate sul volume a cui è associata un'istanza specificata, chiamare FltQueryVolumeInformation.
NOTA: non chiamare questa routine con un valore IRP di primo livello diverso da NULL, in quanto può causare un deadlock di sistema. Per determinare se il thread TopLevelIrp è impostato chiama IoGetTopLevelIrp.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Microsoft Windows 2000 Update Rollup 1 for SP4, Windows XP SP3, Windows Server 2003 SP1 e versioni successive del sistema operativo Windows. |
Piattaforma di destinazione | Universale |
Intestazione | fltkernel.h (includere Fltkernel.h) |
Libreria | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |