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 o volume do sistema de arquivos.
[out] VolumeFileObject
Ponteiro para uma variável alocada por chamador que recebe um ponteiro de objeto de arquivo para o diretório raiz do volume. Esse parâmetro é opcional e pode ser NULL.
Valor de retorno
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. |
Observações
Quando o identificador retornado no parâmetro VolumeHandle não for mais necessário, o chamador deverá 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 chamada IoGetTopLevelIrp.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível no Microsoft Windows 2000 Update Rollup 1 para SP4, Windows XP SP3, Windows Server 2003 SP1 e versões posteriores do sistema operacional Windows. |
da Plataforma de Destino | Universal |
cabeçalho | fltkernel.h (inclua Fltkernel.h) |
biblioteca | FltMgr.lib |
de DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |