Partager via


WNetGetResourceInformationW, fonction (winnetwk.h)

Lorsqu’elle est fournie avec un chemin d’accès distant à une ressource réseau, la fonction WNetGetResourceInformation identifie le fournisseur réseau propriétaire de la ressource et obtient des informations sur le type de la ressource. La fonction est généralement utilisée conjointement avec la fonction WNetGetResourceParent pour analyser et interpréter un chemin réseau tapé par un utilisateur.

Syntaxe

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

Paramètres

[in] lpNetResource

Pointeur vers une structure NETRESOURCE qui spécifie la ressource réseau pour laquelle des informations sont requises.

Le membre lpRemoteName de la structure doit spécifier le nom du chemin d’accès distant de la ressource, généralement tapé par un utilisateur. Les membres lpProvider et dwType doivent également être renseignés s’ils sont connus, car cette opération peut être gourmande en mémoire, en particulier si vous ne spécifiez pas le membre dwType . Si vous ne connaissez pas les valeurs de ces membres, vous devez les définir sur NULL. Tous les autres membres de la structure NETRESOURCE sont ignorés.

[out] lpBuffer

Pointeur vers la mémoire tampon pour recevoir le résultat. En cas de retour réussi, la première partie de la mémoire tampon est une structure NETRESOURCE qui représente la partie du chemin de la ressource d’entrée accessible via les fonctions WNet, plutôt que via les fonctions système spécifiques au type de ressource d’entrée. (Le reste de la mémoire tampon contient les chaînes de longueur variable vers lesquelles pointent les membres de la structure NETRESOURCE .)

Par exemple, si le chemin de la ressource distante d’entrée est \server\share\dir1\dir2, la structure NETRESOURCE de sortie contient des informations sur la ressource \server\share. La partie \dir1\dir2 du chemin d’accès est accessible via les fonctions de gestion de fichiers. Les membres lpRemoteName, lpProvider, dwType, dwDisplayType et dwUsage de NETRESOURCE sont retournés, tous les autres membres ayant la valeur NULL.

Le membre lpRemoteName est retourné dans la même syntaxe que celle renvoyée par une énumération par la fonction WNetEnumResource . Cela permet à l’appelant d’effectuer une comparaison de chaînes pour déterminer si la ressource passée à WNetGetResourceInformation est identique à la ressource retournée par un appel distinct à WNetEnumResource.

[in, out] lpcbBuffer

Pointeur vers un emplacement qui, lors de l’entrée, spécifie la taille de la mémoire tampon lpBuffer , en octets. La mémoire tampon que vous allouez doit être suffisamment grande pour contenir la structure NETRESOURCE , ainsi que les chaînes vers lesquelles pointent ses membres. Si la mémoire tampon est trop petite pour le résultat, cet emplacement reçoit la taille de mémoire tampon requise et la fonction retourne ERROR_MORE_DATA.

[out] lplpSystem

Si la fonction retourne correctement, ce paramètre pointe vers une chaîne dans la mémoire tampon de sortie qui spécifie la partie de la ressource accessible via les fonctions système. (Cela s’applique uniquement aux fonctions spécifiques au type de ressource plutôt qu’aux fonctions WNet.)

Par exemple, si le nom de la ressource distante d’entrée est \server\share\dir1\dir2, le membre lpRemoteName de la structure NETRESOURCE de sortie pointe vers \server\share. En outre, le paramètre lplpSystem pointe vers \dir1\dir2. Les deux chaînes sont stockées dans la mémoire tampon vers laquelle pointe le paramètre lpBuffer .

Valeur retournée

Si la fonction réussit, la valeur de retour est NO_ERROR.

Si la fonction échoue, la valeur de retour est un code d’erreur système, comme l’une des valeurs suivantes.

Code de retour Description
ERROR_BAD_NET_NAME
Le membre lpRemoteName d’entrée n’est pas une ressource réseau existante pour un réseau.
ERROR_BAD_DEV_TYPE
Le membre dwType d’entrée ne correspond pas au type de ressource spécifié par le membre lpRemoteName .
ERROR_EXTENDED_ERROR
Une erreur spécifique au réseau s’est produite. Appelez WNetGetLastError pour obtenir une description de l’erreur.
ERROR_MORE_DATA
La mémoire tampon pointée par le paramètre lpBuffer est trop petite.
ERROR_NO_NETWORK
Le réseau n'est pas disponible.

Remarques

Notes

L’en-tête winnetwk.h définit WNetGetResourceInformation en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winnetwk.h
Bibliothèque Mpr.lib
DLL Mpr.dll

Voir aussi

WNetGetNetworkInformation

WNetGetProviderName

WNetGetResourceParent

WNetGetUniversalName

Vue d’ensemble de Windows Networking (WNet)

Fonctions de mise en réseau Windows