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:
Destruindo a associação com todas as estruturas SRV_OPEN
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.