我的应用程序安装了一个虚拟打印机驱动程序。
在某些用户的系统上,我需要重新启动打印机后台处理程序,因为 OpenPrinter 等函数返回 RPC_S_SERVER_UNAVAILABLE(文本为“RPC 服务器不可用。”),这意味着后台打印程序已停止工作。
我尝试通过使用 CreateProcess 调用“net start spooler”来做到这一点:
PROCESS_INFORMATION pi = { 0 };
STARTUPINFO si = { sizeof(si) };
// later
CreateProcess(0, "net start spooler", 0, 0, 0, 0, 0, 0, &si, &pi );
在某些用户的系统上这是可行的,但在其他用户的系统上,它会因退出代码 2 而失败,并且 GetLastError 返回 ERROR_NO_MORE_FILES(文本是“没有更多文件。”)。
有谁知道 ERROR_NO_MORE_FILES 在这种情况下意味着什么?