我正在处理样本以获取连接到计算机的打印机列表。为此,我使用EnumPrinters()API来获取打印机。随机地给出错误RPC_S_SERVER_UNAVAILABLE(1722)。我试图在网上搜索,但我无法得到解决方案。
请帮我解决这个问题。
答案 0 :(得分:1)
你如何调用EnumPrinters(提示 - 发布代码)?
对于某些API调用模式,本地系统将依次RPC到目标服务器 - 这使用RPC,因此您可以返回RPC错误。您可以通过使用与EnumPrinters不同的参数的重量级调用来获取所需的信息。
来自the docs:
使用a调用EnumPrinters时 2级(PRINTER_INFO_2)数据 结构,它执行OpenPrinter 呼叫每个远程连接。如果一个 远程连接已关闭,或者 远程服务器不再存在,或者 远程打印机不再存在了 函数必须等待RPC超时 因此OpenPrinter失败了 呼叫。这可能需要一段时间。