EnumPorts 函数
EnumPorts 函数枚举可用于在指定服务器上打印的端口。
语法
BOOL EnumPorts(
_In_ LPTSTR pName,
_In_ DWORD Level,
_Out_ LPBYTE pPorts,
_In_ DWORD cbBuf,
_Out_ LPDWORD pcbNeeded,
_Out_ LPDWORD pcReturned
);
参数
-
pName [in]
-
指向以 null 结尾的字符串的指针,该字符串指定要枚举其打印机端口的服务器的名称。
如果 pName 为 NULL,则 函数枚举本地计算机的打印机端口。
-
级别 [in]
-
pPorts 缓冲区中返回的信息类型。 如果 Level 为 1, 则 pPorts 接收 PORT_INFO_1 结构的数组。 如果 Level 为 2, pPorts 将接收 PORT_INFO_2 结构的数组。
-
pPorts [out]
-
指向接收 PORT_INFO_1或PORT_INFO_2 结构的数组 的缓冲区的 指针。 每个结构都包含描述可用打印机端口的数据。 缓冲区必须足够大,才能存储结构成员指向的字符串。
若要确定所需的缓冲区大小,请调用将 cbBuf 设置为零的 EnumPorts。 EnumPorts 失败, GetLastError 返回ERROR_INSUFFICIENT_BUFFER, 而印刷板Needed 参数返回保存结构数组及其数据所需的缓冲区大小(以字节为单位)。
-
cbBuf [in]
-
pPorts 指向的缓冲区的大小(以字节为单位)。
-
线路板 [out]
-
指向变量的指针,该变量接收复制到 pPorts 缓冲区的字节数。 如果缓冲区太小,函数将失败,变量将接收所需的字节数。
-
pcReturned [out]
-
指向变量的指针,该变量接收 pPorts 缓冲区中返回的PORT_INFO_1或PORT_INFO_2结构的数目。 这是指定服务器上可用的打印机端口数。
返回值
如果函数成功,则返回值为非零值。
如果函数失败,则返回值为零。
注解
注意
这是一个阻塞或同步函数,可能不会立即返回。 此函数的返回速度取决于运行时因素,例如网络状态、打印服务器配置以及编写应用程序时难以预测的打印机驱动程序实现因素。 从管理与用户界面交互的线程调用此函数可能会使应用程序看起来无响应。
即使 pName 指定的服务器未定义打印机,EnumPorts 函数也可以成功。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|
库 |
|
DLL |
|
Unicode 和 ANSI 名称 |
EnumPortsW (Unicode) 和 EnumPortsA (ANSI) |