Vetando um link de associação
[!OBSERVAÇÃO]
Algumas informações referem-se a um produto de pré-lançamento que pode ser substancialmente modificado antes de ser lançado comercialmente. A Microsoft não oferece nenhuma garantia, explícita ou implícita, quanto às informações fornecidas aqui.
A partir do Windows 11, versão 24H2, os links de associação podem ser usados para vincular um namespace do sistema de arquivos a um "caminho virtual" local por meio do Filtro de Associação (bindflt.sys).
Os minifiltros podem optar por vetar um link de associação que altera os diretórios de seu interesse. Por exemplo, um filtro antivírus pode vetar o link de associação de uma pasta que armazena seus arquivos de definição.
Os minifiltros podem vetar um link de associação apenas na partição de inicialização do sistema (DO_SYSTEM_BOOT_PARTITION). Não é possível vetar um link de associação em nenhuma outra partição.
Em resposta a uma solicitação CreateBindLink, BindFlt envia IRP_MJ_QUERY_OPEN com os seguintes parâmetros:
- FileInformationClass é definido como FileStatBasicInformation.
- FileInformation aponta para uma estrutura FILE_STAT_BASIC_INFORMATION.
- Irp tem um ECP GUID_ECP_TYPE_VETO_BINDING com uma estrutura VETO_BINDING_ECP_CONTEXT como o contexto de ECP.
Como BindFlt está enviando o IRP, um filtro deve ficar abaixo de BindFlt para vetar um link de associação. Esse minifiltro pode observar esse IRP e vetar o link de associação definindo o membro ShouldVetoBinding da estrutura VETO_BINDING_ECP_CONTEXT como TRUE. Nesse caso, BindFlt veta o link de associação e retorna um erro para o chamador.