Compartir a través de


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 necesario y no se puede 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.

Observaciones

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, consulte 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 el 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, todas las llamadas correctas a FltGetDeviceObject deben coincidir con una llamada posterior a ObDereferenceObject.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de fltkernel.h (incluya Fltkernel.h)
biblioteca de Fltmgr.lib
DLL de Fltmgr.sys
irQL <= DISPATCH_LEVEL

Consulte también

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

ioGetDeviceAttachmentBaseRef

obDereferenceObject de