Función FltGetDeviceObject (fltkernel.h)

La rutina FltGetDeviceObject devuelve un puntero al objeto de dispositivo de volumen (VDO) del Administrador de filtros para un volumen determinado.

Sintaxis

NTSTATUS FLTAPI FltGetDeviceObject(
  [in]  PFLT_VOLUME    Volume,
  [out] PDEVICE_OBJECT *DeviceObject
);

Parámetros

[in] Volume

Puntero opaco para el volumen.

[out] DeviceObject

Puntero a una variable asignada por el autor de la llamada que recibe el puntero del objeto de dispositivo de volumen. Este parámetro es obligatorio y no puede ser NULL.

Valor devuelto

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

Código devuelto Descripción
STATUS_FLT_NO_DEVICE_OBJECT El objeto de dispositivo solicitado no existe para el volumen especificado. Se trata de un código de error.

Comentarios

FltGetDeviceObject devuelve un puntero al objeto de dispositivo de volumen (VDO) del Administrador de filtros para el volumen especificado.

Para obtener más información sobre los objetos de dispositivo de volumen, vea Pilas del sistema de archivos.

El VDO del Administrador de filtros no es el mismo que el objeto de dispositivo de disco del controlador de almacenamiento subyacente o el VDO del sistema de archivos base. Para obtener un puntero al objeto de dispositivo de disco, llame a FltGetDiskDeviceObject en el volumen especificado en el parámetro Volume . Para obtener un puntero al VDO del sistema de archivos base, llame a IoGetDeviceAttachmentBaseRef en retDeviceObject devuelto por FltGetDeviceObject.

Para obtener un puntero opaco para el volumen correspondiente para un objeto de dispositivo determinado, llame a FltGetVolumeFromDeviceObject.

FltGetDeviceObject incrementa el recuento de referencias en el puntero de objeto de dispositivo devuelto. Cuando este puntero ya no es necesario, el autor de la llamada debe disminuir este recuento de referencias llamando a ObDereferenceObject. Por lo tanto, cada llamada correcta a FltGetDeviceObject debe coincidir con una llamada posterior a ObDereferenceObject.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado fltkernel.h (incluya Fltkernel.h)
Library Fltmgr.lib
Archivo DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

Consulte también

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

IoGetDeviceAttachmentBaseRef

ObDereferenceObject