Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La rutina FltGetDiskDeviceObject devuelve un puntero al objeto de dispositivo de disco asociado a un volumen determinado.
Sintaxis
NTSTATUS FLTAPI FltGetDiskDeviceObject(
[in] PFLT_VOLUME Volume,
[out] PDEVICE_OBJECT *DiskDeviceObject
);
Parámetros
[in] Volume
Puntero opaco para el volumen. Este parámetro es necesario y no se puede null.
[out] DiskDeviceObject
Puntero a una variable asignada por el autor de la llamada que recibe el puntero del objeto de dispositivo. En cualquier error, este parámetro no se modifica.
Valor devuelto
fltGetDiskDeviceObject 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
FltGetDiskDeviceObject recupera un puntero al objeto de dispositivo de almacenamiento del disco físico donde reside el volumen. El dispositivo de almacenamiento no necesita ser un disco real.
FltGetDiskDeviceObject incrementa el recuento de referencias en el puntero de objeto de dispositivo devuelto en DiskDeviceObject. Cuando este puntero ya no es necesario, el autor de la llamada debe disminuir este recuento de referencias llamando a ObDereferenceObject. Si no lo hace, se impide que el sistema libere o elimine el objeto de dispositivo debido a la referencia pendiente. Por lo tanto, todas las llamadas correctas a FltGetDiskDeviceObject deben coincidir con una llamada posterior a ObDereferenceObject.
Un minifiltro debe llamar a FltGetDiskDeviceObject solo en una devolución de llamada relacionada con E/S. De lo contrario, es posible que los campos del objeto de dispositivo devuelto no sean válidos. Este caso en rutinas de devolución de llamada, como InstanceTeardownStartCallback y InstanceTeardownCompleteCallback.
Para obtener un puntero al objeto de dispositivo de volumen (VDO) del Administrador de filtros para un volumen determinado, llame a FltGetDeviceObject.
Para obtener un puntero de volumen opaco para el volumen representado por un objeto de dispositivo de volumen, llame a FltGetVolumeFromDeviceObject.
Para obtener más información sobre los objetos de dispositivo de volumen, consulte Pilas del sistema de archivos.
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 |