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


Функция NPGetResourceInformation (npapi.h)

Отделяет часть сетевого ресурса, доступ к который осуществляется через API WNet, от части, доступ к ней осуществляется через API, относящиеся к типу ресурса.

Синтаксис

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

Параметры

[in] lpNetResource

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

Если строка lpRemoteName содержит часть, доступ к которому осуществляется через API WNet, и часть, доступ к которому осуществляется через другие системные API, относящиеся к типу ресурса, функция должна возвращать сведения только о сетевой части ресурса (за исключением lplpSystem, как описано далее в этом разделе).

Например, если ресурс — "\server\share\dir1\dir2", где "\server\share" осуществляется через API WNet, а "\dir1\dir2" — через API файловой системы, поставщик должен убедиться, что он является правильным поставщиком для "\server\share", но не должен проверка существует ли "\dir1\dir2" на самом деле.

[out] lpBuffer

Указатель на буфер для получения результата. Первое поле в результатах представляет собой единую структуру NETRESOURCE и связанные строки, представляющие ту часть входного ресурса, к которому осуществляется доступ через API WNet, а не системные API, относящиеся к типу ресурса. Например, если входное имя удаленного ресурса было "\server\share\dir1\dir2", то выходные данные NETRESOURCE содержат сведения о ресурсе "\server\share". Возвращаются поля lpRemoteName, lpProvider, dwType, dwDisplayType и dwUsage , содержащие значения, а все остальные поля имеют значение NULL.

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

Поставщик не должен выполнять чисто синтаксическую проверку, чтобы определить, принадлежит ли ему ресурс. Это может привести к неправильным результатам, если две сети работают на клиенте и поставщик, выполняя синтаксическую проверку, вызывается первым.

[in, out] lpBufferSize

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

[out] lplpSystem

При успешном возвращении указатель на строку, завершающуюся значением NULL, в выходном буфере, указывающую ту часть ресурса, к которому осуществляется доступ через системные API, относящиеся к типу ресурса, а не через API WNet. Если такой части нет, lplpSystem имеет значение NULL. Например, если входное имя удаленного ресурса было "\server\share\dir", возвращается lpRemoteName , указывающее на "\server\share", а lplpSystem указывает на "\dir", обе строки хранятся в буфере, на который указывает lpBuffer.

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

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

Код возврата Описание
WN_MORE_DATA
Входной буфер слишком мал.
WN_BAD_NETNAME
Этот поставщик не распознает ресурс.
WN_BAD_VALUE
Недопустимый dwUsage или dwType.
WN_BAD_DEV_TYPE
Вызывающий объект передает ненулевой тип dwType , который не соответствует фактическому типу сетевого ресурса.
WN_NOT_AUTHENTICATED
Вызывающий объект не прошел проверку подлинности в сети.
WN_ACCESS_DENIED
Вызывающий объект прошел проверку подлинности в сети, но не имеет достаточных разрешений.

Комментарии

Дерево перечисления можно перейти вниз от именованного сетевого ресурса с помощью NPOpenum и связанных с ним функций. Для перехода из именованного ресурса можно вызвать функцию NPGetResourceInformation для получения сведений о ресурсе, а затем функцию NPGetResourceParent для получения имени и типа родительского ресурса.

NPGetResourceInformation определяет, является ли указанный поставщик правильным поставщиком для ответа на запрос указанного сетевого ресурса. Затем он возвращает сведения о типе ресурса.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header npapi.h