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


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

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

Синтаксис

DWORD WNetGetResourceInformationW(
  [in]      LPNETRESOURCEW lpNetResource,
  [out]     LPVOID         lpBuffer,
  [in, out] LPDWORD        lpcbBuffer,
  [out]     LPWSTR         *lplpSystem
);

Параметры

[in] lpNetResource

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

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

[out] lpBuffer

Указатель на буфер для получения результата. При успешном возвращении первая часть буфера представляет собой структуру NETRESOURCE , представляющую ту часть пути входного ресурса, доступ к которому осуществляется через функции WNet, а не через системные функции, относящиеся к типу входного ресурса. (Оставшаяся часть буфера содержит строки переменной длины, на которые указывают члены структуры NETRESOURCE .)

Например, если входной путь к удаленному ресурсу — \server\share\dir1\dir2, то выходная структура NETRESOURCE содержит сведения о ресурсе \server\share. Доступ к части пути \dir1\dir2 осуществляется через функции управления файлами. Возвращаются элементы lpRemoteName, lpProvider, dwType, dwDisplayType и dwUsagenetRESOURCE , а для всех остальных элементов задано значение NULL.

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

[in, out] lpcbBuffer

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

[out] lplpSystem

Если функция возвращает успешно, этот параметр указывает на строку в выходном буфере, которая указывает часть ресурса, доступ к которому осуществляется через системные функции. (Это относится только к функциям, характерным для типа ресурса, а не к функциям WNet.)

Например, если входное имя удаленного ресурса — \server\share\dir1\dir2, элемент lpRemoteName выходной структуры NETRESOURCE указывает на \server\share. Кроме того, параметр lplpSystem указывает на \dir1\dir2. Обе строки хранятся в буфере, на который указывает параметр lpBuffer .

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

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

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

Код возврата Описание
ERROR_BAD_NET_NAME
Входной элемент lpRemoteName не является существующим сетевым ресурсом для какой-либо сети.
ERROR_BAD_DEV_TYPE
Входной элемент dwType не соответствует типу ресурса, заданному элементом lpRemoteName .
ERROR_EXTENDED_ERROR
Произошла ошибка, относявшаяся к сети. Вызовите WNetGetLastError , чтобы получить описание ошибки.
ERROR_MORE_DATA
Буфер, на который указывает параметр lpBuffer , слишком мал.
ERROR_NO_NETWORK
Сеть недоступна.

Комментарии

Примечание

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

Требования

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

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

WNetGetNetworkInformation

WNetGetProviderName

WNetGetResourceParent

WNetGetUniversalName

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

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