Структура V_NET_ROOT

Структура V_NET_ROOT предоставляет механизм сопоставления с общей папкой (например, сопоставление дисков пользователя, указывающее под корнем связанной точки общего ресурса). Имя V_NET_ROOT может быть в одном из следующих форматов:

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

Формат имени зависит от наличия локального устройства (например, X:), связанного с этой структурой V_NET_ROOT. В случае сопоставления локальных дисков (d1\d2), сопоставление локальных дисков получает префикс на каждую CreateFile, которая открыта в этой структуре V_NET_ROOT.

V_NET_ROOT структуры также используются для предоставления альтернативных учетных данных. Целью такой структуры V_NET_ROOT является распространение альтернативных учетных данных в NET_ROOT по умолчанию. Для работы этого не должно быть других ссылок.

Список структур V_NET_ROOT поддерживается RDBSS для каждого NET_ROOT. Каждая V_NET_ROOT структура имеет несколько элементов, общих с другими структурами RDBSS, а также элементами, уникальными для структуры V_NET_ROOT. Подпрограммы RDBSS, управляющие структурами V_NET_ROOT, изменяют только следующие элементы:

  • Число подписей и ссылок

  • Указатель на связанную структуру и ссылки NET_ROOT

  • Сведения о имени для подстановки таблицы (префикс)

  • Имя для добавления префикса в любое имя, которое видит пользователь (это для имитации структуры NET_ROOT, которая не сопоставлена в корне фактической структуры NET_ROOT).

Завершение структуры V_NET_ROOT состоит из двух частей:

  1. Уничтожение связи со всеми SRV_OPEN структурами

  2. Освобождение памяти

Между этими двумя действиями может возникнуть задержка, а поле в структуре V_NET_ROOT предотвращает дублирование первого шага.