Função FltGetVolumeProperties (fltkernel.h)

A rotina FltGetVolumeProperties retorna informações de propriedade de volume para o volume especificado.

Sintaxe

NTSTATUS FLTAPI FltGetVolumeProperties(
  [in]  PFLT_VOLUME            Volume,
  [out] PFLT_VOLUME_PROPERTIES VolumeProperties,
        ULONG                  VolumePropertiesLength,
  [out] PULONG                 LengthReturned
);

Parâmetros

[in] Volume

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

[out] VolumeProperties

Ponteiro para um buffer alocado pelo chamador que recebe as informações de propriedade de volume solicitadas. Se Length for zero na entrada, esse parâmetro será ignorado. Caso contrário, esse parâmetro é necessário e não pode ser NULL.

VolumePropertiesLength

Tamanho, em bytes, do buffer apontado pelo parâmetro VolumeProperties . Esse parâmetro é opcional e pode ser zero. Se for zero, LengthReturned receberá o tamanho, em bytes, do buffer necessário para manter as propriedades do volume. Se esse parâmetro não for zero, ele deverá ser pelo menos o valor de sizeof(FLT_VOLUME_PROPERTIES).

[out] LengthReturned

Ponteiro para uma variável alocada pelo chamador que recebe o tamanho, em bytes, das informações retornadas em VolumeProperties. Se FltGetVolumeProperties retornar STATUS_BUFFER_TOO_SMALL ou se Length for zero na entrada, esse parâmetro receberá o tamanho, em bytes, do buffer necessário para manter as propriedades do volume. Esse parâmetro é necessário e não pode ser NULL.

Retornar valor

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

Código de retorno Descrição
STATUS_BUFFER_OVERFLOW
O buffer para o qual o parâmetro VolumeProperties aponta é grande o suficiente para manter a parte fixa da estrutura FLT_VOLUME_PROPERTIES , mas não os membros FileSystemDriverName, FileSystemDeviceName ou RealDeviceName . Nesse caso, somente a parte fixa das informações de volume é retornada no buffer apontado pelo parâmetro VolumeProperties . O parâmetro LengthReturned recebe o comprimento real, em bytes, dos dados retornados. Esse é um código de aviso.
STATUS_BUFFER_TOO_SMALL
O buffer para o qual o parâmetro VolumeProperties aponta não é grande o suficiente para manter as informações da propriedade de volume. O parâmetro LengthReturned recebe o tamanho do buffer necessário. Nesse caso, nenhuma informação de volume é retornada. Este é um código de erro.

Comentários

FltGetVolumeProperties retorna apenas informações que podem ser consultadas com segurança durante o processo de montagem sem risco de um deadlock do sistema. Portanto, um driver de minifiltro geralmente chama essa rotina de uma função de retorno de chamada pós-montagem ou de uma rotina InstanceSetupCallback (PFLT_INSTANCE_SETUP_CALLBACK) para determinar se deve ser anexado a um determinado volume.

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

FLT_VOLUME_PROPERTIES

PFLT_INSTANCE_SETUP_CALLBACK