A estrutura V_NET_ROOT

A estrutura V_NET_ROOT fornece um mecanismo para mapeamento em um compartilhamento (por exemplo, um mapeamento de unidade de usuário que aponta abaixo da raiz do ponto de compartilhamento associado). O nome V_NET_ROOT pode estar em um dos seguintes formatos:

\server\share\d1\d2
\;m:\server\share\d1\d2

O formato do nome depende se há um dispositivo local ("X:", por exemplo) associado a essa estrutura V_NET_ROOT. No caso de um mapeamento de unidade local (d1\d2, por exemplo), o mapeamento de unidade local é prefixado em cada CreateFile aberto nesta estrutura V_NET_ROOT.

V_NET_ROOT estruturas também são usadas para fornecer credenciais alternativas. A finalidade para esse tipo de estrutura de V_NET_ROOT é propagar as credenciais alternativas para o NET_ROOT como padrão. Para que isso funcione, não deve haver outras referências.

Uma lista das estruturas de V_NET_ROOT é mantida pelo RDBSS para cada NET_ROOT. Cada estrutura V_NET_ROOT tem alguns elementos comuns com outras estruturas RDBSS, juntamente com elementos exclusivos de uma estrutura V_NET_ROOT. As rotinas rdbss que gerenciam estruturas de V_NET_ROOT modificam apenas os seguintes elementos:

  • Contagem de assinaturas e referências

  • Um ponteiro para a estrutura e os links de NET_ROOT associados

  • Informações de nome para pesquisa de tabela (prefixo)

  • Nome de um prefixo a ser adicionado a qualquer nome que o usuário veja (isso é para simular uma estrutura de NET_ROOT que não é mapeada na raiz da estrutura de NET_ROOT real)

A finalização de uma estrutura V_NET_ROOT consiste em duas partes:

  1. Destruindo a associação com todas as estruturas SRV_OPEN

  2. Liberando a memória

Pode haver um atraso entre essas duas ações e um campo na estrutura V_NET_ROOT impede que a primeira etapa seja duplicada.