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 |
---|---|
|
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. |
|
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 |