-1

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

4

1 に答える 1

0

実装されていて無効になっていない機能のために、画像データを処理するための2つの異なる方法があったようです...それぞれが出力をスプーラーに送信したことを知りませんでした(生成ERROR_ALREADY_EXISTS...は私の推測です)

(より正確には、私は を実装していませんでしたが、 のみを実装してFilterGraphicsImageProcessingましS_FALSEFilterGraphicsGetImplementedMethod

于 2015-01-22T21:35:34.490 に答える