Función FltOpenVolume (fltkernel.h)

La rutina FltOpenVolume 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 asociarse 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 puede ser 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 descomponen. 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.

Comentarios

Cuando el identificador devuelto en el parámetro VolumeHandle ya no es necesario, el autor de la llamada debe liberarlo llamando a FltClose. Por lo tanto, cada llamada correcta a FltOpenVolume debe 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 sea necesario llamando a ObDereferenceObject.

La instancia especificada por el parámetro Instance debe asociarse 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 de un volumen determinado, llame a FltGetDeviceObject.

Para obtener información detallada sobre el volumen al que está asociada 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 está establecido, llame a IoGetTopLevelIrp.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en el paquete acumulativo de actualizaciones 1 de Microsoft Windows 2000 para SP4, Windows XP SP3, Windows Server 2003 SP1 y versiones posteriores del sistema operativo Windows.
Plataforma de destino Universal
Encabezado fltkernel.h (incluya Fltkernel.h)
Library FltMgr.lib
Archivo DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Consulte también

FltClose

FltGetDeviceObject

FltGetFilterFromInstance

FltObjectDereference

FltQueryVolumeInformation

ObDereferenceObject