Função FltGetDeviceObject (fltkernel.h)

A rotina FltGetDeviceObject retorna um ponteiro para o VDO (objeto de dispositivo de volume) do Gerenciador de Filtros para um determinado volume.

Sintaxe

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

Parâmetros

[in] Volume

Ponteiro opaco para o volume.

[out] DeviceObject

Ponteiro para uma variável alocada pelo chamador que recebe o ponteiro do objeto do dispositivo de volume. Esse parâmetro é necessário e não pode ser NULL.

Retornar valor

FltGetDeviceObject retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como o seguinte:

Código de retorno Descrição
STATUS_FLT_NO_DEVICE_OBJECT O objeto de dispositivo solicitado não existe para o volume fornecido. Este é um código de erro.

Comentários

FltGetDeviceObject retorna um ponteiro para o VDO (objeto de dispositivo de volume) do Gerenciador de Filtros para o volume fornecido.

Para obter mais informações sobre objetos de dispositivo de volume, consulte Pilhas do Sistema de Arquivos.

O VDO do Gerenciador de Filtros não é o mesmo que o objeto de dispositivo de disco do driver de armazenamento subjacente ou o VDO do sistema de arquivos base. Para obter um ponteiro para o objeto de dispositivo de disco, chame FltGetDiskDeviceObject no volume especificado no parâmetro Volume . Para obter um ponteiro para o VDO do sistema de arquivos base, chame IoGetDeviceAttachmentBaseRef no RetDeviceObject retornado por FltGetDeviceObject.

Para obter um ponteiro opaco para o volume correspondente de um determinado objeto de dispositivo, chame FltGetVolumeFromDeviceObject.

FltGetDeviceObject incrementa a contagem de referência no ponteiro de objeto do dispositivo retornado. Quando esse ponteiro não for mais necessário, o chamador deverá diminuir essa contagem de referência chamando ObDereferenceObject. Portanto, cada chamada bem-sucedida para FltGetDeviceObject deve ser correspondida por uma chamada subsequente para ObDereferenceObject.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua Fltkernel.h)
Biblioteca Fltmgr.lib
DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

Confira também

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

IoGetDeviceAttachmentBaseRef

ObDereferenceObject