Fonction NPGetResourceInformation (npapi.h)

Sépare la partie d’une ressource réseau accessible via l’API WNet de la partie accessible via des API spécifiques au type de ressource.

Syntaxe

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

Paramètres

[in] lpNetResource

Spécifie la ressource réseau pour laquelle des informations sont requises. Le champ lpRemoteName spécifie le nom distant de la ressource. Le programme appelant doit renseigner les valeurs des champs lpProvider et dwType s’il connaît ces valeurs ; sinon, il doit définir ces champs sur NULL. Tous les autres champs de NETRESOURCE sont ignorés et ne sont pas initialisés.

Si la chaîne lpRemoteName contient une partie accessible via les API WNet et une partie accessible via d’autres API système spécifiques au type de ressource, la fonction doit retourner uniquement des informations sur la partie réseau de la ressource (à l’exception de lplpSystem, comme décrit plus loin dans cette rubrique).

Par exemple, si la ressource est « \server\share\dir1\dir2 », où « \server\share » est accessible via les API WNet et « \dir1\dir2 » par le biais des API de système de fichiers, le fournisseur doit vérifier qu’il s’agit du fournisseur approprié pour « \server\share », mais n’a pas besoin de case activée si « \dir1\dir2 » existe réellement.

[out] lpBuffer

Pointeur vers la mémoire tampon pour recevoir le résultat. Le premier champ du résultat est une structure NETRESOURCE unique et des chaînes associées, représentant la partie de la ressource d’entrée accessible via l’API WNet, plutôt que les API système spécifiques au type de ressource. Par exemple, si le nom de la ressource distante d’entrée était « \server\share\dir1\dir2 », la sortie NETRESOURCE contient des informations sur la ressource « \server\share ». Les champs lpRemoteName, lpProvider, dwType, dwDisplayType et dwUsage sont retournés contenant des valeurs, tous les autres champs étant définis sur NULL.

Le champ lpRemoteName doit être retourné dans le même format que celui renvoyé à partir d’une énumération par la fonction NPEnumResource , afin que l’appelant puisse effectuer une comparaison de chaînes respectant la casse. Cela est nécessaire pour déterminer si la ressource réseau de sortie est identique à celle retournée par NPEnumResource.

Le fournisseur ne doit pas effectuer de vérification purement syntaxique pour déterminer s’il est propriétaire de la ressource. Cela peut produire des résultats incorrects lorsque deux réseaux s’exécutent sur le client et que le fournisseur effectuant la vérification syntaxique est appelé en premier.

[in, out] lpBufferSize

Pointeur vers un emplacement qui spécifie la taille, en octets, de la mémoire tampon pointée par lpBuffer. Si la mémoire tampon est trop petite pour le résultat, la fonction place la taille de mémoire tampon requise à cet emplacement et retourne l’erreur WN_MORE_DATA.

[out] lplpSystem

En cas de retour réussi, pointeur vers une chaîne terminée par null dans la mémoire tampon de sortie spécifiant la partie de la ressource accessible via des API système spécifiques au type de ressource, plutôt que via l’API WNet. S’il n’existe aucune partie de ce type, lplpSystem est défini sur NULL. Par exemple, si le nom de la ressource distante d’entrée était « \server\share\dir », lpRemoteName est retourné pointant vers « \server\share » et lplpSystem pointe vers « \dir », les deux chaînes étant stockées dans la mémoire tampon pointée par lpBuffer.

Valeur retournée

Si la fonction réussit, elle doit retourner WN_SUCCESS. Sinon, il doit retourner un code d’erreur, qui peut être l’un des suivants.

Code de retour Description
WN_MORE_DATA
La mémoire tampon d’entrée est trop petite.
WN_BAD_NETNAME
La ressource n’est pas reconnue par ce fournisseur.
WN_BAD_VALUE
dwUsage ou dwType non valide.
WN_BAD_DEV_TYPE
L’appelant a passé un dwType différent de zéro qui ne correspond pas au type réel de la ressource réseau.
WN_NOT_AUTHENTICATED
L’appelant n’a pas été authentifié sur le réseau.
WN_ACCESS_DENIED
L’appelant a été authentifié sur le réseau, mais ne dispose pas d’autorisations suffisantes.

Remarques

L’arborescence d’énumération peut être parcourue vers le bas à partir d’une ressource réseau nommée à l’aide de NPOpenEnum et de ses fonctions associées. Pour naviguer à partir d’une ressource nommée, la fonction NPGetResourceInformation peut être appelée pour obtenir des informations sur la ressource, suivie de la fonction NPGetResourceParent pour obtenir le nom et le type de la ressource parente.

NPGetResourceInformation détermine si le fournisseur spécifié est le bon fournisseur pour répondre à une demande pour une ressource réseau spécifiée. Il retourne ensuite des informations sur le type de la ressource.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête npapi.h