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 |
---|---|
|
Le instance ou le volume est détruit. Il s’agit d’un code d’erreur. |
|
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 |