Fonction FltOpenVolume (fltkernel.h)

La routine FltOpenVolume retourne un handle et un pointeur d’objet fichier pour le volume du système de fichiers auquel un pilote minifilter donné instance est attaché.

Syntaxe

NTSTATUS FLTAPI FltOpenVolume(
  [in]  PFLT_INSTANCE Instance,
  [out] PHANDLE       VolumeHandle,
  [out] PFILE_OBJECT  *VolumeFileObject
);

Paramètres

[in] Instance

Pointeur de instance opaque pour le instance. Cette instance doit être attachée à un volume local.

[out] VolumeHandle

Handle pour le volume du système de fichiers.

[out] VolumeFileObject

Pointeur vers une variable allouée par l’appelant qui reçoit un pointeur d’objet fichier pour le répertoire racine du volume. Ce paramètre est facultatif et peut être NULL.

Valeur retournée

FltOpenVolume retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :

Code de retour Description
STATUS_FLT_DELETING_OBJECT
Le instance ou le volume est détruit. Il s’agit d’un code d’erreur.
STATUS_INVALID_PARAMETER
Le instance est attaché à un volume réseau. Il s’agit d’un code d’erreur.

Remarques

Lorsque le handle retourné dans le paramètre VolumeHandle n’est plus nécessaire, l’appelant doit le libérer en appelant FltClose. Ainsi, chaque appel réussi à FltOpenVolume doit être mis en correspondance par un appel ultérieur à FltClose.

Si un pointeur d’objet fichier est retourné dans le paramètre VolumeFileObject , l’appelant doit le libérer quand il n’est plus nécessaire en appelant ObDereferenceObject.

Le instance spécifié par le paramètre Instance doit être attaché à un volume local. S’il est attaché à un volume réseau, FltOpenVolume retourne STATUS_INVALID_PARAMETER.

Pour obtenir un pointeur vers l’objet d’appareil pour un volume donné, appelez FltGetDeviceObject.

Pour obtenir des informations détaillées sur le volume auquel un instance donné est attaché, appelez FltQueryVolumeInformation.

REMARQUE : N’appelez pas cette routine avec une valeur IRP de niveau supérieur non NULL, car cela peut entraîner un blocage du système. Pour déterminer si le thread TopLevelIrp est défini, appelez IoGetTopLevelIrp.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans microsoft Windows 2000 Update Rollup 1 pour SP4, Windows XP SP3, Windows Server 2003 SP1 et versions ultérieures du système d’exploitation Windows.
Plateforme cible Universal
En-tête fltkernel.h (inclure Fltkernel.h)
Bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Voir aussi

FltClose

FltGetDeviceObject

FltGetFilterFromInstance

FltObjectDereference

FltQueryVolumeInformation

ObDereferenceObject