Função FltOpenVolume (fltkernel.h)
A rotina FltOpenVolume retorna um identificador e um ponteiro de objeto de arquivo para o volume do sistema de arquivos ao qual uma determinada instância de driver de minifiltro está anexada.
Sintaxe
NTSTATUS FLTAPI FltOpenVolume(
[in] PFLT_INSTANCE Instance,
[out] PHANDLE VolumeHandle,
[out] PFILE_OBJECT *VolumeFileObject
);
Parâmetros
[in] Instance
Ponteiro de instância opaco para a instância. Essa instância deve ser anexada a um volume local.
[out] VolumeHandle
Manipule para o volume do sistema de arquivos.
[out] VolumeFileObject
Ponteiro para uma variável alocada pelo chamador que recebe um ponteiro de objeto de arquivo para o diretório raiz do volume. Esse parâmetro é opcional e pode ser NULL.
Retornar valor
FltOpenVolume retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como o seguinte:
Código de retorno | Descrição |
---|---|
|
A instância ou o volume está sendo dividido. Este é um código de erro. |
|
A instância é anexada a um volume de rede. Este é um código de erro. |
Comentários
Quando o identificador retornado no parâmetro VolumeHandle não é mais necessário, o chamador deve liberá-lo chamando FltClose. Portanto, cada chamada bem-sucedida para FltOpenVolume deve ser correspondida por uma chamada subsequente para FltClose.
Se um ponteiro de objeto de arquivo for retornado no parâmetro VolumeFileObject , o chamador deverá liberá-lo quando não for mais necessário chamando ObDereferenceObject.
A instância especificada pelo parâmetro Instance deve ser anexada a um volume local. Se estiver anexado a um volume de rede, FltOpenVolume retornará STATUS_INVALID_PARAMETER.
Para obter um ponteiro para o objeto do dispositivo para um determinado volume, chame FltGetDeviceObject.
Para obter informações detalhadas sobre o volume ao qual uma determinada instância está anexada, chame FltQueryVolumeInformation.
OBSERVAÇÃO: não chame essa rotina com um valor IRP de nível superior não NULL, pois isso pode causar um deadlock do sistema. Para determinar se o thread TopLevelIrp está definido, chame IoGetTopLevelIrp.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Pacote Cumulativo de Atualizações do Microsoft Windows 2000 1 para SP4, Windows XP SP3, Windows Server 2003 SP1 e versões posteriores do sistema operacional Windows. |
Plataforma de Destino | Universal |
Cabeçalho | fltkernel.h (inclua Fltkernel.h) |
Biblioteca | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |