FltOpenVolume, fonction (fltkernel.h)

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

Syntaxe

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

Paramètres

[in] Instance

Pointeur d’instance opaque pour l’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 de fichier pour le répertoire racine du volume. Ce paramètre est facultatif et peut être NULL.

Valeur de retour

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

Retourner le code Description
STATUS_FLT_DELETING_OBJECT
L’instance ou le volume est détruit. Il s’agit d’un code d’erreur.
STATUS_INVALID_PARAMETER
L’instance est attachée à 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 de fichier est retourné dans le paramètre VolumeFileObject, l’appelant doit le libérer lorsqu’il n’est plus nécessaire en appelant ObDereferenceObject.

L’instance spécifiée par le paramètre Instance doit être attachée à 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 une instance donnée est attachée, 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 système. Pour déterminer si le thread TopLevelIrp est défini sur l’appel IoGetTopLevelIrp.

Exigences

Exigence Valeur
client minimum 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 Universel
d’en-tête fltkernel.h (include Fltkernel.h)
bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Voir aussi

FltClose

FltGetDeviceObject

FltGetFilterFromInstance

FltObjectDereference

FltQueryVolumeInformation

ObDereferenceObject