Упрощение печати в Windows 8

blogs.msdn.com

Из всех периферийных устройств, которые вы можете подключить к компьютеру с Windows, принтер является одним из наиболее популярных и имеет самую долгую историю поддержки. Операционная система Windows 1.0 (выпущенная в 1985 году) фактически поддерживала лишь "некоторое количество принтеров и плоттеров" и включала в себя "очередь печати принтера, позволяющую пользователю работать с одним файлом во время печати другого файла". Именно так написано в информационной подборке для прессы по Windows 1.0. На приведенном ниже снимке экрана Windows 1.0 показаны файлы, входящие в эту версию Windows, - Epson.drv, множество файлов шрифтов и процесс очереди печати принтера. Некоторые компоненты системы печати старше тех людей, которые с ней работают. :-)

*

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

*Система печати затрагивает многие уровни и аспекты операционной системы Windows. Она отображает пользовательский интерфейс, а также используется для размещения драйверов, которые тоже отображают пользовательский интерфейс. Она выполняет интенсивные графические операции, поскольку печать фактически является перерисовкой содержимого с экрана на бумагу. Она осуществляет низкоуровневое взаимодействие главным образом через USB-интерфейс или по сети (большинство приобретаемых в США принтеров поддерживают работу в сети, однако согласно нашим данным телеметрии более 75 % принтеров, установленных с Windows 8 Consumer Preview, подключены к USB-порту). Система печати должна хорошо масштабироваться, поддерживая очень крупные и важные для бизнеса развертывания на больших предприятиях и эффективно работая на небольших системах.

В этой статье я расскажу о проделанной в Windows 8 работе по переосмыслению того, как именно система печати может лучше всего обеспечитьэффективную поддержку устройств для пользователей. Я покажу вам, как она работает на компьютерах на основе ARM и в приложениях в стилеMetro. Я расскажу, что было сделано для того, чтобы как можно больше существующих принтеров "просто работали" - при доступе к ним с домашнего компьютера, из приложения в стиле Metro или с устройства под управлением Windows RT.

Переосмысление системы печати в Windows 8

В Windows 8 мы представили новую архитектуру драйверов принтеров, которую назвали версией 4, или v4. Архитектура v4 использует более быстрые драйверы меньшего размера и поддерживает принцип платформы драйверов класса печати, который во многих случаях обеспечивает установку принтеров без поиска соответствующих драйверов.

Как вы уже могли догадаться, V4 является четвертым поколением архитектуры драйверов принтеров в Windows. Архитектура V3 использовалась начиная с Windows 2000 и по Windows 7 включительно и все еще полностью поддерживается в Windows 8 для обеспечения совместимости устройств. Поэтому если для текущего принтера у вас есть только имеющийся драйвер, он должен работать и в Windows 8. Архитектуры версий 1 и 2 использовались для операционных систем начиная с Windows 1.0 и по Windows ME.

Прежде чем я начну объяснять, как работает система печати, давайте поговорим о некоторых требованиях, предъявляемых к системе печати в Windows 8.

Печать из приложений в стиле Metro

Кроме всего прочего, нам нужно было определить, каким образом можно предоставить возможность печати разработчикам приложений в стиле Metro. Печать из приложений win32 требует навыков графического программирования в области GDI (интерфейс графических устройств) либо формата XPS. Когда мы проанализировали, как именно могли бы сделать печать возможной из приложений для Windows 8, то полностью пересмотрели способ реализации печати в среде выполнения Windows и существенно упростили печать из приложений HTML5/JavaScript и XAML/C#.

Интеграция функций печати в приложения в стиле Metro

Печать из приложения в стиле Metro должна, разумеется, соответствовать принципам стиля Metro. Я уверен, что во время печати большинство из вас видело небольшое всплывающее окно с сообщением о том, что в принтере закончилась бумага, или с предложением приобрести чернила.

*

Для струйных принтеров эти всплывающие окна используются повсеместно. Некоторые из них отображаются только при определенных условиях (заканчиваются чернила), другие - при каждой печати. Эти всплывающие окна предоставляются непосредственно драйвером принтера и все они, конечно же, относятся к пользовательскому интерфейсу рабочего стола. Однако нам бы не хотелось, чтобы при печати, например из приложения "Фотографии" в стиле Metro, вам приходилось переключаться на рабочий стол, чтобы просто прочитать сообщение пользовательского интерфейса о ходе выполнения печати.

Печать в Windows RT

Со временем драйверы принтеров вобрали в себя многие функциональные возможности - некоторые устанавливают службы, другие устанавливают различные небольшие приложения, причем многие из них имеют довольно большой размер. Модель драйверов принтеров v3 используется со времени превращения Windows 2000 в весьма сложную и расширяемую модель, которая предоставила производителям принтеров значительную свободу в отношении программного обеспечения, устанавливаемого вместе с их драйвером. Обдумав то, как все это будет работать на некоторых устройствах под управлением Windows RT, мы поняли, что в архитектуру придется внести значительные изменения. Мы стремились устранить негативное влияние на системы ARM, обусловленное запуском ненужных служб, и хотели уменьшить уровень использования системных ресурсов, обеспечив при этом поддержку максимального количества устройств.

Большое число поддерживаемых принтеров и существенное сокращение числа драйверов

Принтеры предоставляют множество разнообразных возможностей, а Windows поддерживает обширный диапазон принтеров. В Windows 7 и более ранних версиях Windows для работы каждого из этих принтеров требовался специальный драйвер (существуют некоторые исключения, например универсальные драйверы принтеров, однако они обычно имеют большой размер и используют много ресурсов). Это значит, что для обеспечения хорошего уровня поддержки мы включали в Windows очень много драйверов (мы называем их встроенными). Конечно, в Центре обновления Windows доступно значительно больше драйверов, но мы считаем важным иметь некоторый основной набор встроенных драйверов для поддержки наиболее распространенных устройств, так как это позволяет без проблем осуществлять печать тем людям, которые не могут или не хотят загрузить драйвер из Центра обновления Windows. Встроенные драйверы принтера крайне важны для Windows RT - фактически, эта система использует только их. Трудность заключается в том, чтобы обеспечить поддержку подходящего набора принтеров и одновременно снизить уровень используемых при этом ресурсов.

Другая интересная особенность поддержки большого количества принтеров состоит в том, что со временем такая поддержка теряет актуальность. Например, набор драйверов в Windows 7 предоставлял отличную поддержку для устройств, выпущенных в 2008 и 2009 годах, однако по мере выпуска новых устройств в течение нескольких лет этот набор драйверов в Windows 7 перестал быть актуальным. Поэтому одной из важных задач для Windows 8 является предоставление высокого уровня поддержки для множества принтеров, включая даже те, которые еще не были выпущены.

Совместное использование принтеров

Любой, кто занимался администрированием сервера печати, подтвердит, что больше всего времени уходит на установку правильных драйверов, поддерживающих возможности совместного использования. С некоторыми из этих трудностей вы можете столкнуться и при попытке совместного использования принтера дома, особенно если вы используете как 32-разрядные, так и 64-разрядные версии Windows. Это может оказаться сложным, поскольку "сервер" печати (то есть просто компьютер, к которому подключен принтер, а не серверная система Windows Server) должен предоставить драйверы клиентам, желающим выполнить печать на общем принтере. В Windows 7 для устранения этой проблемы мы использовали домашнюю группу, и долгое время это вполне удовлетворительно работало. Однако требование по загрузке драйверов для каждой архитектуры Windows вызывает новые сложности при печати из Windows RT.

Мы предполагаем, что большинство пользователей, осуществляющих печать с устройств Windows RT, будут использовать для этого беспроводные принтеры. Однако мы не хотим полностью исключить возможность печати на принтере, подключенном к USB-порту. С другой стороны, мы не хотим усложнять совместное использование принтера, требуя от пользователей добавлять драйверы для 32-разрядных клиентов, 64-разрядных клиентов и клиентов Windows RT. Поэтому в модели v4 для Windows 8 мы представили новый способ совместного использования принтеров, который не связан с размещением клиентских драйверов на сервере печати.

Система печати в Windows 8

Приложения позволяют вам создавать и просматривать контент. Задача системы печати состоит в предоставлении приложениям средств для печати контента на любом установленном принтере независимо от его типа и модели. Сейчас я немного расскажу о том, как приложение выполняет печать, а затем подробнее объясню, как контент попадает на распечатанную страницу.

Создание контента, пригодного для печати

Добавление поддержки печати для приложений является достаточно прямолинейным процессом. Контент, который требуется распечатать из приложения, имеет формат, определяемый этим приложением. Для приложений в стиле Metro в качестве такого формата часто будет использоваться HTML5 или XAML, но для приложений Win32, таких как Word или Photoshop, контент имеет формат, характерный для соответствующего приложения.

Поэтому при печати из приложения система печати должна, в частности, преобразовать контент из формата приложения в формат, понятный принтеру. К сожалению, не все принтеры поддерживают одни и те же форматы (ничего похожего даже и не наблюдается), поэтому эта задача является достаточно сложной.

Рассмотрим реальный пример - приложение, например Word, использует графическую систему GDI для отрисовки контента как на экране, так и на принтере. Когда возможно, система печати использует в качестве внутреннего формата высококачественный промежуточный формат XPS; мы преобразуем контент из Word в формат XPS. Мы выбрали формат XPS в качестве основы для нашей системы печати, так как он очень гибок и похож на электронную бумагу. Этот формат поддерживает высококачественные цвета, а благодаря описанию, основанному на XML-коде и не содержащему внедренный исполняемый код, он отлично подходит для архивирования и имеет повышенную безопасность. Кроме того, корпорация Майкрософт сотрудничала с ECMA International (Европейская ассоциация производителей компьютеров), чтобы сделать этот формат открытым стандартом (стандарт ECMA TC46, OpenXPS). Формат OpenXPS могут отображать как классическое средство просмотра, так и приложение "Средство просмотра". Я "распечатываю" все квитанции из интернет-магазинов в виде файлов XPS.

После обработки контента системой печати он преобразуется в формат, поддерживаемый принтером (если это необходимо; существует множество принтеров с непосредственной поддержкой формата XPS). Затем система печати отправляет эти данные на принтер с правильным набором параметров, и задание распечатывается.

В Windows 8 мы заметно улучшили этот процесс, так как все приложения в стиле Metro используют в качестве базового формата отрисовки Direct2D, а в Direct2D и XPS применяется одинаковый графический "язык" на основе XML. Поэтому приведем еще один реальный пример - приложение "Средство просмотра" использует Direct2D для отрисовки контента на экране. Оно также использует Direct2D для отрисовки этого контента и в системе печати. Контент приложения "Средство просмотра" можно легко передать в систему печати в формате XPS без ресурсоемкого преобразования из GDI.

Если приложению требуется разметка страницы, отличная от разметки экрана, оно может использовать для этого таблицы стилей или XAML. Это значит, что вам не требуется дополнительно получать версию страницы, соответствующую параметрам принтера. Если у вас есть принтер, поддерживающий XPS, то путь от приложения до принтера вообще не содержит преобразований, поэтому печать выполняется впечатляюще быстро!

Теперь, когда вы получили общее представление о том, как приложение отправляет информацию в систему печати, я расскажу о том, что делает система дальше, какие службы она предоставляет и какие еще изменения были внесены в Windows 8.

Поддержка большого количества принтеров

Одним из существенных преимуществ, предоставляемых системой Windows приложениям, является абстрагирование конкретного принтера от приложения, то есть разработчику приложения не нужно беспокоиться о том, какой именно принтер установлен. Всего Windows поддерживает десятки тысяч моделей принтеров, включая принтеры, драйверы для которых предоставляются в Центре обновления Windows или на сайте разработчика. Неработоспособность принтера часто вызвана тем, что производитель блокирует установку драйвера, если не удается распознать версию Windows, в которой предполагается установить его программное обеспечение. Мы сотрудничаем с производителями принтеров для обновления таких пакетов, однако на это требуется время.

В идеальном случае принтер должен начать работать сразу после подключения к компьютеру с Windows, не требуя от вас поиска и установки драйверов.

Каким же образом это воплощается на практике? В прошлом мы предоставляли в составе Windows очень большое количество драйверов. В Windows Vista было порядка 4500 драйверов, а в Windows 7 - около 2100. Хотя Windows 7 и содержала вдвое меньше драйверов по сравнению с Windows Vista, она обеспечивала более полный охват рынка. Это означает более высокую вероятность того, что в ней имеются драйверы для наиболее распространенных принтеров. Чем это вызвано? Используемые принтеры просто поражают своим разнообразием. Windows Vista поддерживала множество устаревших и практически неиспользуемых устройств, поэтому в ней уровень актуальности поддержки принтеров был ниже, чем в Windows 7.

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

Ниже приведена фотография одной из стоек в нашей лаборатории принтеров (у нас их несколько), где мы занимаемся тестированием работоспособности. Вы можете заметить несколько небольших струйных принтеров и лазерные принтеры разных производителей. К счастью для моих ушей, матричные принтеры мы сейчас тестируем нечасто.

*
Увеличить

В среднем люди используют принтер в течение 5-7 лет, поэтому при добавлении поддержки нам нужно спросить себя: "Какие устройства используются в настоящее время? Какие из устройств были наиболее популярны за последние несколько лет, и какие устройства будут популярны в будущем?" Вот эта вторая часть и становится проблемой, ведь вскоре после выхода Windows производители принтеров выпустят устройства, о которых нам ничего не было известно. То есть со временем набор устройств, поддерживаемый любой конкретной версией Windows, теряет актуальность.

Нам известно, что на любой момент времени 50 % базы установленного оборудования составляют 100 конкретных моделей принтеров. Если мы хотим охватить 75 % моделей, используемых в настоящее время, нам потребуется обеспечить поддержку около 300 моделей. Это проиллюстрировано на приведенной ниже схеме.

*
Увеличить

Чтобы охватить 95 %, нам требуется поддерживать более 1000 моделей. Однако данная проблема дополнительно осложняется тем, что принтеры в этом наборе из 100, 300 или 1000 моделей, постоянно меняются. 100 принтеров, представляющие 50 % рынка  сегодня , отличаются от тех 100 принтеров, которые будут представлять 50 % рынка  на следующей неделе  или в следующем месяце, а тем более в следующем году. Ежедневно множество людей приобретают и устанавливают новые принтеры.

Как я уже отметил, раньше эту задачу мы решали "в лоб". Представители крупных производителей принтеров работают напрямую с корпорацией Майкрософт, находясь в офисе в Редмонде и проверяя интеграцию своего исходного кода в Windows. Им бы потребовалось создавать полностью новый набор встроенных драйверов для каждого следующего выпуска Windows. Это просто не очень эффективно.

В Windows 8 мы использовали принципиально иной подход и перестали поставлять огромное количество драйверов принтеров в составе Windows. Вместо этого мы создали  платформу драйверов класса печати . Это расширяемая платформа, так как она поддерживает печать на существующих устройствах, а также позволяет производителям включать поддержку новых устройств, даже если они еще не были спроектированы.

С помощью платформы драйверов класса печати мы приблизились к цели - печать без прямого использования драйверов, когда вам не нужно искатьдрайвер и принтер просто работает с системой печати Windows. Для предоставления подлинного механизма печати без драйверов требуется изменить принципы разработки большинства принтеров, и платформа драйверов класса печати обеспечивает поддержку этой концепции. Однако мы также считаем, что крайне важно обеспечить максимальную поддержку уже существующих устройств.

Благодаря возможности поддержки новых и запланированных принтеров число принтеров, поддерживаемых платформой драйверов класса печати Windows 8, со временем будет возрастать.

Кроме значительного прогресса по увеличению числа охваченных устройств, мы также смогли сократить соответствующий уровень использования ресурсов.

Во-первых, мы сократили место на диске, требуемое для поддержки принтеров и устройств обработки изображений, с 768 МБ в Windows Vista до примерно 184 МБ в Windows 8. Это среднее значение для разных выпусков и архитектур Windows 8. Следующий рисунок иллюстрирует сокращение занимаемого места начиная с Windows Vista.

*
Увеличить

Сравнение места на диске, требуемого для поддержки принтеров и устройств обработки изображений в Windows 8, Windows 7 и Windows Vista

Кроме того, сокращение занимаемого на диске места сопровождалось повышением актуальности устройств, поддерживаемых непосредственно операционной системой Windows. В следующей таблице показано, как увеличилась актуальность встроенных драйверов при уменьшении занимаемого места.

 

Приблизительное число устройств со  встроенной поддержкой

Приблизительная база установленного оборудования

Используемое место на диске

Windows Vista

4200

55-60%

768 МБ

Windows 7

2100

60-65%

446 МБ

Windows 8

2500

70 % на момент выпуска с увеличением до 80 %

184 МБ

Это существенное улучшение Windows 8, и такое сокращение занимаемого дискового пространства предоставляет больше свободного места пользователям оборудования с запоминающими устройствами ограниченной емкости, что, как мы предполагаем, будет характерно для некоторых компьютеров под управлением Windows RT.

Модель драйверов принтеров Windows 8 также позволяет нам снабдить партнеров по производству набором кода, который не будет кардинально меняться в последующих версиях Windows, поэтому вместо постоянного пересмотра набора драйверов мы сможем с пользой направить эти ресурсы на повышение качества и производительности.

Архитектура драйверов класса печати

Помимо создания архитектуры, удовлетворяющей потребности Windows RT и приложений в стиле Metro, мы хотели обеспечить работу этой модели с существующими устройствами и применить технологии, хорошо знакомые производителям принтеров, чтобы им было проще внедрять новую технологию драйверов.

Драйвер принтера выполняет несколько ключевых функций:

  • Конфигурация позволяет изменять параметры, преобразуя, например, пожелание пользователя включить двустороннюю печать, в конкретную команду принтеру. Функция конфигурации предоставляется пользователю через пользовательский интерфейс.
  • Отрисовка преобразует печатаемый материал из формата, используемого системой печати Windows, в формат, поддерживаемый принтером. В некоторых случаях принтер может напрямую поддерживать собственный формат печати Windows (XPS), поэтому для таких устройств данная операция не выполняется, если только не требуется дополнительная отрисовка (например, для размещения нескольких страниц на одном листе бумаги). Та часть драйвера принтера, которая отвечает за отрисовку, называется  фильтром отрисовки .
  • События позволяют принтеру информировать пользователя о ходе выполнения задания печати - например, задание выполнено, застряла бумага или в принтере закончились чернила.

Пользовательский интерфейс конфигурации

Одно из существенных отличий старой модели драйверов от модели драйверов Windows 8 заключается в способе предоставления пользовательского интерфейса. В старой модели драйверов пользовательский интерфейс конфигурации был встроен в драйвер. Вот пример типичного пользовательского интерфейса принтера (соответствует принтеру Epson NX430, который стоит на моем столе).

*

Как я уже упоминал, нам требовалось найти способ отображения пользовательского интерфейса в стиле Metro для случая, когда пользователь решит изменить параметры печати.

В модели драйверов Windows 8 пользовательский интерфейс производителя полностью отделен от его драйвера. Такое архитектурное решение значительно лучше по многим причинам. Пользовательский интерфейс управления принтером теперь представляет собой приложение, которое можно вызывать при печати из приложений в стиле Metro или классических приложений. Это позволяет производителям принтеров предоставить вам еще больше возможностей - например, доступ к видео с демонстрацией настройки вашего принтера или установки картриджа с чернилами.

Вот пример приложения в стиле Metro, разработанного компанией Epson для принтера Epson NX430:

*
Увеличить

Видно, что пользовательский интерфейс имеет все особенности приложения в стиле Metro, хотя он и предназначен для принтера. Он содержит привлекательное представление уровней чернил в принтере и гораздо проще в использовании, особенно на устройствах с сенсорным экраном.

Windows автоматически покажет вам правильный тип пользовательского интерфейса - пользовательский интерфейс для рабочего стола при печати из классических приложений и пользовательский интерфейс в стиле Metro при печати из приложений в стиле Metro.

Если производитель не предусмотрел для своего устройства пользовательский интерфейс конфигурации, то Windows предоставляет некоторый стандартный пользовательский интерфейс, подходящий для любого принтера. Однако если производитель решил вложить средства в разработку индивидуального средства настройки для своего устройства, он может предоставить приложение, заменяющее этот стандартный пользовательский интерфейс Windows. В этом случае, если вы захотите изменить конфигурацию устройства или она будет изменена во время печати (например, при застревании бумаги), Windows отобразит вам приложение производителя.

Отрисовка

Одной из наиболее важных функций драйвера принтера, реализуемой при запуске печати, является преобразование контента, создаваемого приложением, в формат, поддерживаемый принтером. При создании драйвера класса печати Windows 8 именно в этой области возникло множество трудностей, поэтому давайте рассмотрим данный вопрос более подробно.

Как уже было указано выше, классические приложения, такие как Word или Photoshop, используют графические команды для отрисовки контента на экране или принтере. При этом система печати получает контент, при необходимости преобразует его в формат XPS и затем вызывает драйвер принтера (или, если точнее, компонент драйвера  фильтр отрисовки ) для преобразования контента в подходящий формат. Полученные данные отправляются на принтер, и файл распечатывается.

Возможно, одной из самых серьезных трудностей при поддержке обширного диапазона принтеров является решение проблемы отрисовки. Некоторые из более дорогих принтеров поддерживают стандартные "языки описания страниц" (PDL), такие как PostScript, PCL и XPS. Однако производители бюджетных потребительских устройств стремятся к экономии, поэтому многие из таких продуктов поддерживают собственные методы передачи информации о странице на принтер. Некоторые производители могут использовать ограниченный набор языков, применяемый во всей линейке их продуктов, однако у других производителей от модели к модели в язык могут вноситься различные изменения в попытке добиться максимальной производительности оборудования принтера.

В результате возникает ситуация, когда отдельный драйвер подходит только для конкретной модели принтера.

*

Представьте себе, что PDL является полным драйвером принтера, тогда можно будет легко понять, что расширение поддержки связано с неуклонно возрастающим числом драйверов. Конечно, здесь присутствует некоторое упрощение, так как можно создать драйвер, поддерживающий несколько устройств, и на деле часто так и бывает. Но основная мысль заключается в том, что Windows 7 и более ранние версии Windows никак не способствовали развитию этого направления в разработке.

Модель драйверов принтеров в Windows 8 поддерживает концепцию, что язык описания страниц (или драйвер) можно связать с несколькими устройствами.

*

Мы сотрудничали с партнерами по производству принтеров и убеждали их включить в свои устройства идентификатор, обобщенно описывающий способ их поддержки. Мы назвали его  идентификатором совместимости.  Таким образом, например, если устройство имеет идентификатор совместимости, указывающий на поддержку XPS, то система печати узнает, что для этой модели устройства не нужно искать специальный драйвер, а достаточно установить универсальный драйвер XPS. Windows понимает, что устройство является универсальным принтером XPS и взаимодействует с ним соответствующим образом. Конечно, Windows также понимает, что это принтер Fabrikam 1000 (или иной модели), и если для него имеется специализированный драйвер, Windows установит его. Однако при отсутствии такого драйвера Windows все равно сможет выполнять на принтере печать, используя драйвер класса.

В данном примере в состав модели драйвера класса входит встроенный набор фильтров отрисовки, и их можно установить для любого устройства, имеющего соответствующий идентификатор совместимости. Логичное и весьма вероятное развитие этой концепции состоит в том, что будущие устройства (которых нет еще даже в проекте) будут совместимы с драйвером класса печати в Windows 8. В результате нашего сотрудничества с производителями принтеров все они планируют внедрить в свои устройства идентификаторы совместимости (а многие уже сделали это). Благодаря данной возможности с течением времени число принтеров, поддерживаемых Windows 8, будет возрастать, и все большее число пользователей сможет ощутить удобство использования принтера прямо из Windows 8 без поиска подходящего драйвера.

Но как быть со всеми теми устройствами, которые используют собственные языки отрисовки? Драйвер класса печати поддерживает и такую модель, однако ее недостаток заключается в необходимости использования отдельного фильтра отрисовки для каждого небольшого подмножества моделей принтеров, использующих собственный язык. Обходного способа решения данной проблемы не существует, поэтому мы включили в Windows 8 несколько фильтров для популярных моделей. Однако еще раз отмечу, что мы сотрудничаем с производителями принтеров для улучшения сложившейся ситуации и ожидаем, что в будущем производители будут разрабатывать принтеры с более полной поддержкой драйвера класса.

Печать из Windows RT

Уменьшение объема ресурсов, используемых драйвером класса печати, напрямую влияет на сокращение места, занимаемого Windows, что особенно ценно для Windows RT. Кроме того, архитектура драйверов принтеров V3 была очень обширной и за многие годы сформировалась в модель, поощряющую разработку больших и сложных драйверов принтеров. Некоторые драйверы устанавливают службы, выполняемые постоянно, что сокращает время работы батареи и увеличивает уровень загрузки процессора. Я видел драйверы, поддерживающие только одно устройство, но по своему объему превосходящие размер полного набора драйверов принтеров в Windows 8!

Потребность в поддержке печати в Windows RT и общее желание сделать печать эффективнее заставили нас разработать архитектуру, строже контролирующую возможности драйвера. Я уже упоминал, что пользовательский интерфейс, используемый во время печати, теперь является полностью отдельным компонентом, то есть он перестал быть частью драйвера и стал приложением. Это значит, что он перестал быть обязательным, и драйверы будут прекрасно работать со стандартным пользовательским интерфейсом печати, разработанным корпорацией Майкрософт. Мы также упростили архитектуру драйверов, чтобы сделать ее эффективнее с точки зрения энергопотребления. Для этого мы удалили зависимости служб и снизили вероятность включения дополнительного программного обеспечения в драйвер.

В модели драйверов Windows 8 мы также значительно изменили сам процесс установки драйверов принтеров. В Windows 7 и более ранних версиях Windows все драйверы принтеров хранились в "хранилище драйверов" - базе данных для всех типов драйверов. При подключении принтера потребовалось бы найти подходящий драйвер в этом хранилище и скопировать его в специальное расположение, из которого очередь печати могла бы использовать его вместе с принтером. В Windows 8 мы исключили это дополнительное копирование, в результате чего существенно сократилось число дисковых операций ввода-вывода. Просто теперь очередь печати принтера знает, как найти нужный драйвер в хранилище.

В качестве реального примера приведу результаты сравнения времени установки принтера Epson Artisan в Windows 7 и в Windows 8 (в Windows 7 использовался относительно небольшой драйвер): время его установки в Windows 7 составило 14 секунд, а в Windows 8 - всего 2 секунды.

Заключительные соображения

Как вы могли убедиться, в Windows 8 архитектура драйверов принтеров сделала большой шаг вперед. Она обеспечивает хорошую поддержку множества уже используемых принтеров, а также поддерживает будущие устройства благодаря небольшой и быстродействующей встроенной платформе драйверов класса. При этом обеспечиваются высокая производительность и уменьшение места, занимаемого на диске.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=30514