Как подключить фильтр конвейера драйвера печати Windows [C ++ / C] [WDK] - PullRequest
0 голосов
/ 11 октября 2018

Я смотрю на создание конвейерного фильтра для драйвера принтера для Windows (впервые в WDK), и, к сожалению, очень мало ресурсов и примеров, которые показывают, как это сделать.В WDK здесь приведен один пример , и есть ресурсы, на которые я ссылаюсь здесь .Я собрал и пытался подключить образец конвейерного фильтра к основному драйверу класса Microsoft PCL 6.

Насколько я могу судить по документации, все, что мне нужно сделать, чтобы прикрепить конвейерный фильтрдля драйвера, чтобы поместить DLL для фильтра в том же месте, что и файлы драйвера и обновить соответствующий файл pipeconfig.xml, чтобы отразить информацию из примера фильтра конвейера, что я сделал:

<?xml version="1.0" encoding="utf-8"?>
<Filters>
<Filter     dll  = "MSxpsPCL6.dll" clsid="{3821E518-33AF-4d17-92B3-28EB410D46B6}" name="Microsoft XPS to PCL6">
    <Input    guid = "{4d47a67c-66cc-4430-850e-daf466fe5bc4}" comment="IID_IPrintReadStream" />
    <Output   guid = "{65bb7f1b-371e-4571-8ac7-912f510c1a38}" comment="IID_IPrintWriteStream" />
  </Filter>
    <Filter dll="WdkPipelineFilter.dll" clsid="{5f5460d2-b313-44ca-82e4-37f83d793999}" name="StreamFilter">
    <Input    guid = "{4d47a67c-66cc-4430-850e-daf466fe5bc4}" comment="IID_IPrintReadStream" />
    <Output   guid = "{65bb7f1b-371e-4571-8ac7-912f510c1a38}" comment="IID_IPrintWriteStream" />
  </Filter>
</Filters>

IЯ пробовал несколько разных вариантов позиционирования с отрывком фильтра для dll PCL 6 и примера dll WDK - помещая WDK до и после PCL 6, а также полностью удаляя PCL 6 - однако, независимо от того, что явыполнять любые задания на печать, которые я отправляю через этот драйвер, в очереди печати, создавая файлы спулинга 0 КБ, которые никогда не попадают на принтер.Я также попытался вызвать встроенный в образец фильтр XPS с тем же результатом.

Я думаю, что я упускаю что-то важное, но не могу понять, что это такое.Если у кого-то есть идеи о том, что может пойти не так, или о ресурсах, на которые он может направить меня, я был бы признателен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...