Поделиться через


Функция WNetGetResourceParentA (winnetwk.h)

Функция WNetGetResourceParent возвращает родительский объект сетевого ресурса в иерархии обзора по сети. Просмотр начинается с расположения указанного сетевого ресурса.

Вызовите функции WNetGetResourceInformation и WNetGetResourceParent для перемещения вверх по сетевой иерархии. Вызовите функцию WNetOpenEnum , чтобы переместиться вниз по иерархии.

Синтаксис

DWORD WNetGetResourceParentA(
  [in]      LPNETRESOURCEA lpNetResource,
  [out]     LPVOID         lpBuffer,
  [in, out] LPDWORD        lpcbBuffer
);

Параметры

[in] lpNetResource

Указатель на структуру NETRESOURCE , указывающую сетевой ресурс, для которого требуется родительское имя.

Укажите члены входной структуры NETRESOURCE следующим образом. Вызывающий объект обычно знает значения, которые необходимо предоставить для членов lpProvider и dwType после предыдущих вызовов WNetGetResourceInformation или WNetGetResourceParent.

Член Значение
dwType
Этот элемент должен быть заполнен, если он известен; В противном случае ему следует присвоить значение NULL.
lpRemoteName
Этот член должен указать удаленное имя сетевого ресурса, родитель которого является обязательным.
lpProvider
Этот член должен указать сетевого поставщика, которому принадлежит ресурс. Этот элемент является обязательным; В противном случае функция может привести к неверным результатам.
 

Все остальные элементы структуры NETRESOURCE игнорируются.

[out] lpBuffer

Указатель на буфер для получения одной структуры NETRESOURCE , представляющей родительский ресурс. Функция возвращает элементы lpRemoteName, lpProvider, dwType, dwDisplayType и dwUsage структуры; для всех остальных элементов задано значение NULL.

Элемент lpRemoteName указывает на удаленное имя родительского ресурса. Это имя использует тот же синтаксис, что и синтаксис, возвращаемый из перечисления функцией WNetEnumResource . Вызывающий объект может выполнить сравнение строк, чтобы определить, совпадает ли ресурс WNetGetResourceParent с ресурсом WNetEnumResource. Если у входного ресурса нет родительского элемента в любой из сетей, элемент lpRemoteName возвращается в виде NULL.

Наличие бита RESOURCEUSAGE_CONNECTABLE в элементе dwUsage указывает, что вы можете подключиться к родительскому ресурсу, но только в том случае, если он доступен в сети.

[in, out] lpcbBuffer

Указатель на расположение, указывающее размер буфера lpBuffer в байтах. Если буфер слишком мал для хранения результата, это расположение получает требуемый размер буфера, а функция возвращает ERROR_MORE_DATA.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение будет NO_ERROR.

Если функция завершается сбоем, возвращаемое значение представляет собой системный код ошибки, например одно из следующих значений.

Код возврата Описание
ERROR_ACCESS_DENIED
Вызывающий объект не имеет доступа к сетевому ресурсу.
ERROR_BAD_NET_NAME
Входной элемент lpRemoteName не является существующим сетевым ресурсом для любой сети.
ERROR_BAD_PROVIDER
Входной член lpProvider не соответствует ни одному установленному поставщику сети.
ERROR_MORE_DATA
Буфер, на который указывает параметр lpBuffer , слишком мал.
ERROR_NOT_AUTHENTICATED
Вызывающий объект не имеет необходимых разрешений для получения имени родительского объекта.

Комментарии

Функция WNetGetResourceParent обычно используется в сочетании с функцией WNetGetResourceInformation для анализа и интерпретации сетевого пути, введенного пользователем.

В отличие от функции WNetGetResourceInformation , если ресурс содержит родительский элемент в синтаксисе, функция WNetGetResourceParent возвращает родительский объект независимо от того, существует ли ресурс на самом деле. WNetGetResourceParent обычно следует использовать только приложениям, которые отображают сетевые ресурсы для пользователя иерархическим образом. Обозреватель Windows и диалоговое окно Открытие файла — это два хорошо известных примера приложений этого типа. Обратите внимание, что не следует делать никаких предположений о типе возвращаемого ресурса.

Вы можете вызвать функцию WNetEnumResource, WNetGetResourceInformation или WNetGetResourceParent , чтобы получить сведения из структуры NETRESOURCE . Вы также можете создавать сведения о сетевых ресурсах с помощью элементов структуры NETRESOURCE .

Примером недопустимого использования WNetGetResourceParent является определение имени домена, к которому принадлежит указанный сервер. Функция может вернуть правильное доменное имя для некоторых сетей, в которых домены отображаются непосредственно над серверами в иерархии обзора. Функция возвращает неверные результаты для других сетей.

Примечание

Заголовок winnetwk.h определяет WNetGetResourceParent в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winnetwk.h
Библиотека Mpr.lib
DLL Mpr.dll

См. также раздел

WNetGetNetworkInformation

WNetGetProviderName

WNetGetResourceInformation

WNetGetUniversalName

Общие сведения о сети Windows (WNet)

Сетевые функции Windows