Системная ошибка 183 из вызова печати (ERROR_ALREADY_EXISTS)
Я пытаюсь распечатать пробную страницу из образца Windows Driver Kit (WDK) 8.1 (образец растрового изображения). Поскольку я не получил никакого вывода на печать, я помещал вызов "GetLastError" после каждого вызова "DrvWriteSpoolBuf":
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);
Я получаю разрешение = E_FAIL
(извините за использование жирного шрифта - комментарии, кажется, игнорируют этот результат)
Как я могу получить такую ошибку при печати? (либо в LPT1, либо в FILE: порт)
Я проверил код, сохранив в растровом изображении точное содержимое, которое я пытаюсь отправить в спулер, растровое изображение было создано правильно.
... Я прошу прощения за то, что не включил больше кода, он доступен по ссылке, которую я разместил выше... Windows Driver Kit (WDK) 8.1 Примеры
Windows Driver Kit (WDK) 8.1 Примеры \ Образцы подключаемых модулей для настройки OEM-принтеров \C++\bitmap
1 ответ
Кажется, что из-за функции, которая была реализована и не отключена, было два разных метода для обработки данных изображения... Я не знал, что каждый из них отправлял свои выходные данные в спулер (генерируя ERROR_ALREADY_EXISTS
... это мое предположение)
(точнее, пока я не реализовал FilterGraphics
, но только ImageProcessing
Я тоже должен был вернуться S_FALSE
за FilterGraphics
в GetImplementedMethod
)