Fonction EnumPorts
La fonction EnumPorts énumère les ports disponibles pour l’impression sur un serveur spécifié.
Syntaxe
BOOL EnumPorts(
_In_ LPTSTR pName,
_In_ DWORD Level,
_Out_ LPBYTE pPorts,
_In_ DWORD cbBuf,
_Out_ LPDWORD pcbNeeded,
_Out_ LPDWORD pcReturned
);
Paramètres
-
pName [in]
-
Pointeur vers une chaîne terminée par null qui spécifie le nom du serveur dont vous souhaitez énumérer les ports d’imprimante.
Si pName a la valeur NULL, la fonction énumère les ports d’imprimante de l’ordinateur local.
-
Niveau [in]
-
Type d’informations retournées dans la mémoire tampon pPorts . Si Level a la valeur 1, pPorts reçoit un tableau de structures PORT_INFO_1 . Si Level a la valeur 2, pPorts reçoit un tableau de structures PORT_INFO_2 .
-
pPorts [out]
-
Pointeur vers une mémoire tampon qui reçoit un tableau de structures PORT_INFO_1 ou PORT_INFO_2 . Chaque structure contient des données qui décrivent un port d’imprimante disponible. La mémoire tampon doit être suffisamment grande pour stocker les chaînes pointées par les membres de la structure.
Pour déterminer la taille de mémoire tampon requise, appelez EnumPorts avec cbBuf défini sur zéro. EnumPorts échoue, GetLastError retourne ERROR_INSUFFICIENT_BUFFER et le paramètre pcbNeeded retourne la taille, en octets, de la mémoire tampon requise pour contenir le tableau des structures et leurs données.
-
cbBuf [in]
-
Taille, en octets, de la mémoire tampon pointée par pPorts.
-
pcbNeeded [out]
-
Pointeur vers une variable qui reçoit le nombre d’octets copiés dans la mémoire tampon pPorts . Si la mémoire tampon est trop petite, la fonction échoue et la variable reçoit le nombre d’octets requis.
-
pcReturned [out]
-
Pointeur vers une variable qui reçoit le nombre de structures PORT_INFO_1 ou PORT_INFO_2 retournées dans la mémoire tampon pPorts . Il s’agit du nombre de ports d’imprimante disponibles sur le serveur spécifié.
Valeur retournée
Si la fonction réussit, la valeur de retour est une valeur différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro.
Notes
Notes
Il s’agit d’une fonction bloquante ou synchrone qui peut ne pas être retournée immédiatement. La rapidité avec laquelle cette fonction retourne dépend de facteurs d’exécution tels que l’status réseau, la configuration du serveur d’impression et les facteurs d’implémentation du pilote d’imprimante qui sont difficiles à prédire lors de l’écriture d’une application. L’appel de cette fonction à partir d’un thread qui gère l’interaction avec l’interface utilisateur peut donner l’impression que l’application ne répond pas.
La fonction EnumPorts peut réussir même si le serveur spécifié par pName n’a pas d’imprimante définie.
Spécifications
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] |
En-tête |
|
Bibliothèque |
|
DLL |
|
Noms Unicode et ANSI |
EnumPortsW (Unicode) et EnumPortsA (ANSI) |