Функция 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.
Если функция завершается сбоем, возвращаемое значение представляет собой системный код ошибки, например одно из следующих значений.
Код возврата | Описание |
---|---|
|
Входной элемент lpRemoteName не является существующим сетевым ресурсом для любой сети. |
|
Входной член dwType не соответствует типу ресурса, заданному элементом lpRemoteName . |
|
Произошла ошибка, относявшаяся к сети. Вызовите WNetGetLastError , чтобы получить описание ошибки. |
|
Буфер, на который указывает параметр lpBuffer , слишком мал. |
|
Сеть недоступна. |
Комментарии
Примечание
Заголовок winnetwk.h определяет WNetGetResourceInformation как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winnetwk.h |
Библиотека | Mpr.lib |
DLL | Mpr.dll |