Partilhar via


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 por chamador que recebe o ponteiro de objeto do dispositivo de volume. Esse parâmetro é necessário e não pode ser NULL.

Valor de retorno

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.

Observações

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 do 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
da Plataforma de Destino Universal
cabeçalho fltkernel.h (inclua Fltkernel.h)
biblioteca Fltmgr.lib
de DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

Consulte também

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

IoGetDeviceAttachmentBaseRef

ObDereferenceObject