来自打印调用的系统错误 183 (ERROR_ALREADY_EXISTS)

System Error 183 from print call (ERROR_ALREADY_EXISTS)

我正在尝试从 Windows Driver Kit (WDK) 8.1 Samples(位图示例)打印测试页。由于我没有得到任何打印输出,我在每次调用 'DrvWriteSpoolBuf":

后放置了一个 "GetLastError" 调用
dwWritten = pDevObj->pDrvProcs->DrvWriteSpoolBuf(pDevObj, (void*)&(pOemPDEV->bmFileHeader), sizeof(BITMAPFILEHEADER));

DWORD pdwReturn = GetLastError();
if (pdwReturn != ERROR_SUCCESS)
    ERR("OEMEndDoc: Error printing=%ld\n", pdwReturn); 

我收到错误 183 !!!来自 System Error Codes:

ERROR_ALREADY_EXISTS
183 (0xB7)
Cannot create a file when that file already exists.

上述调用的替代版本

DWORD res = pOemPDEV->pOEMHelp->DrvWriteSpoolBuf(pDevObj, &(pOemPDEV->bmFileHeader), sizeof(BITMAPFILEHEADER), &dwWritten);

我得到 res=E_FAIL

(为使用粗体表示歉意——评论似乎忽略了这个结果)

打印时怎么会出现这样的错误? (到 LPT1 或 FILE:端口)

我已经通过将我尝试发送到假脱机程序的确切内容保存到位图来测试代码,位图已正确创建。

...我很抱歉没有包含更多代码,它可以在我上面发布的link中找到...Windows Driver Kit (WDK) 8.1 Samples

Windows 驱动程序包 (WDK) 8.1 Samples\OEM 打印机自定义插件 Samples\C++\bitmap

看来,由于实现了一个未禁用的功能,因此有两种不同的方法来处理图像数据...我不知道每个方法都将它们的输出发送到假脱机程序(生成 ERROR_ALREADY_EXISTS...是我的猜测)

(更准确地说,虽然我没有实现 FilterGraphics,但只实现了 ImageProcessing,我也应该在 [=15= 中为 FilterGraphics 返回 S_FALSE ])