Compartir a través de


Función FltOpenVolume (fltkernel.h)

La rutina FltOpenVol ume devuelve un identificador y un puntero de objeto de archivo para el volumen del sistema de archivos al que está asociada una instancia de controlador de minifiltro determinada.

Sintaxis

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

Parámetros

[in] Instance

Puntero de instancia opaco para la instancia. Esta instancia debe adjuntarse a un volumen local.

[out] VolumeHandle

Identificador del volumen del sistema de archivos.

[out] VolumeFileObject

Puntero a una variable asignada por el autor de la llamada que recibe un puntero de objeto de archivo para el directorio raíz del volumen. Este parámetro es opcional y se puede NULL.

Valor devuelto

FltOpenVolume devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como el siguiente:

Código devuelto Descripción
STATUS_FLT_DELETING_OBJECT
La instancia o el volumen se están descomponiéndose. Se trata de un código de error.
STATUS_INVALID_PARAMETER
La instancia está conectada a un volumen de red. Se trata de un código de error.

Observaciones

Cuando el controlador devuelto en el parámetro VolumeHandle ya no es necesario, el autor de la llamada debe liberarlo llamando a FltClose. Por lo tanto, todas las llamadas correctas a FltOpenVolume deben coincidir con una llamada posterior a FltClose.

Si se devuelve un puntero de objeto de archivo en el parámetro VolumeFileObject, el autor de la llamada debe liberarlo cuando ya no lo necesite llamando a ObDereferenceObject.

La instancia especificada por el parámetro Instance debe adjuntarse a un volumen local. Si está conectado a un volumen de red, FltOpenVolume devuelve STATUS_INVALID_PARAMETER.

Para obtener un puntero al objeto de dispositivo para un volumen determinado, llame a FltGetDeviceObject.

Para obtener información detallada sobre el volumen al que se adjunta una instancia determinada, llame a FltQueryVolumeInformation.

NOTA: No llame a esta rutina con un valor IRP de nivel superior distinto de NULL, ya que esto puede provocar un interbloqueo del sistema. Para determinar si el subproceso TopLevelIrp se establece la llamada IoGetTopLevelIrp.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en el Paquete acumulativo de actualizaciones de Microsoft Windows 2000 1 para SP4, Windows XP SP3, Windows Server 2003 SP1 y versiones posteriores del sistema operativo Windows.
de la plataforma de destino de Universal
encabezado de fltkernel.h (incluya Fltkernel.h)
biblioteca de FltMgr.lib
DLL de Fltmgr.sys
irQL PASSIVE_LEVEL

Consulte también

fltClose

FltGetDeviceObject

FltGetFilterFromInstance

FltObjectDereference

FltQueryVolumeInformation

obDereferenceObject