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


Функция 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", поставщик должен убедиться, что он является правильным поставщиком для "\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. В противном случае он должен вернуть код ошибки, который может быть одним из следующих.

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

Замечания

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

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

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
Header npapi.h
Library davclnt.lib