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


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

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

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

Синтаксис

DWORD WNetGetResourceParentW(
  [in]      LPNETRESOURCEW 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 или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winnetwk.h
библиотеки Mpr.lib
DLL Mpr.dll

См. также

WNetGetNetworkInformation

WNetGetProviderName

WNetGetResourceInformation

WNetGetUniversalName

Обзор сети Windows (WNet)

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