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 |