Windows Driver Kit (WDK) 8.1 サンプル(ビットマップ サンプル)からテスト ページを印刷しようとしています。印刷出力が得られなかったので、「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 を受け取りました!!! システムエラーコードから:
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: ポートのいずれかに)
スプーラに送信しようとしている正確な内容をビットマップに保存してコードをテストしました。ビットマップは正しく作成されました。
...これ以上のコードを含めないことをお詫びします。上記のリンクから入手できます... Windows Driver Kit (WDK) 8.1 のサンプル
Windows Driver Kit (WDK) 8.1 Samples\OEM Printer Customization Plug-in Samples\C++\bitmap