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


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

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

Синтаксис

DWORD WNetGetResourceInformationA(
  [in]      LPNETRESOURCEA lpNetResource,
  [out]     LPVOID         lpBuffer,
  [in, out] LPDWORD        lpcbBuffer,
  [out]     LPSTR          *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 и dwUsageв NETRESOURCE , а все остальные элементы имеют значение 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