Função FltGetVolumeFromDeviceObject (fltkernel.h)

A rotina FltGetVolumeFromDeviceObject retorna um ponteiro opaco para o volume representado por um VDO (objeto de dispositivo de volume).

Sintaxe

NTSTATUS FLTAPI FltGetVolumeFromDeviceObject(
  [in]  PFLT_FILTER    Filter,
  [in]  PDEVICE_OBJECT DeviceObject,
  [out] PFLT_VOLUME    *RetVolume
);

Parâmetros

[in] Filter

Ponteiro de filtro opaco para o chamador. Esse parâmetro é necessário e não pode ser NULL.

[in] DeviceObject

Ponteiro para o objeto do dispositivo de volume.

[out] RetVolume

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

Retornar valor

FltGetVolumeFromDeviceObject retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como um dos seguintes:

Código de retorno Descrição
STATUS_FLT_DELETING_OBJECT O volume está sendo dividido. Este é um código de erro.
STATUS_INVALID_PARAMETER O objeto de dispositivo de volume especificado no parâmetro DeviceObject não era um ponteiro de objeto de dispositivo de volume válido ou nenhum volume correspondente foi encontrado. Este é um código de erro.

Comentários

O parâmetro DeviceObject pode ser um ponteiro para um filtro ou um VDO (objeto de dispositivo de volume do sistema de arquivos). Se ele apontar para um objeto de dispositivo de armazenamento, FltGetVolumeFromDeviceObject retornará STATUS_INVALID_PARAMETER.

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

FltGetVolumeFromDeviceObject adiciona uma referência de rundown ao ponteiro de volume opaco retornado no parâmetro RetVolume . Quando esse ponteiro não for mais necessário, o chamador deverá liberá-lo chamando FltObjectDereference. Portanto, cada chamada bem-sucedida para FltGetVolumeFromDeviceObject deve ser correspondida por uma chamada subsequente para FltObjectDereference.

Para obter um ponteiro para o objeto do dispositivo para um determinado volume, chame FltGetDeviceObject.

Requisitos

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

Confira também

FltGetDeviceObject

FltGetDiskDeviceObject

FltObjectDereference