Требования к DRM
В этом разделе представлены требования, которым должен соответствовать аудиодрайвер минипорта для прохождения проверки соответствия DRM лабораторией microsoft Windows Hardware Quality Lab (WHQL). Эти требования применяются, в частности, к драйверам звукового минипорта WaveCyclic и WavePci, которые являются аппаратными аналогами драйверов портов WavePci и WaveCyclic в библиотеке классов портов (Portcls.sys). Тестирование соответствия DRM в настоящее время недоступно для USB-драйверов.
В Windows XP и более поздних версиях только доверенные аудиодрайверы могут воспроизводить содержимое, защищенное DRM. Windows идентифицирует доверенный драйвер с помощью цифровой подписи DRM, хранящейся в CAT-файлах драйвера (каталог). Корпорация Майкрософт выдает сигнатуру DRM только для драйвера, который проходит проверку соответствия ТРЕБОВАНИЯМ DRM в рамках тестирования совместимости оборудования, управляемого WHQL.
Однако для Windows XP и более поздних версий проверка соответствия DRM является обязательной частью тестирования WHQL. Чтобы получить право на получение логотипа "Разработано для Windows XP", драйвер должен пройти проверку соответствия ТРЕБОВАНИЯМ DRM.
Для проверки соответствия требованиям DRM требуется доверенный аудиодрайвер для выполнения следующих действий:
Драйвер аудио минипорта должен реализовать интерфейс IDrmAudioStream в своих объектах потока, который должен возвращать объект типа IDrmAudioStream, если запрашивается IID_IDrmAudioStream.
При запросе защиты от копирования (DRMRIGHTS. CopyProtect = TRUE), звуковой драйвер должен отключить возможность записи воспроизводимого в данный момент потока. Это означает, что драйвер не должен сохранять незащищенное цифровое содержимое в любом виде энергонезависимого хранилища, включая жесткий диск, EEPROM, память карта и накопитель памяти. Кроме того, драйвер должен отключить мультиплексор захвата в выходном преобразователе D/A и в противном случае предотвратить замыкание цифрового содержимого на себя.
Когда звуковому драйверу предлагается отключить цифровой аудиовыход на устройстве (DRMRIGHTS. DigitalOutputDisable = TRUE), он должен отключать все цифровые звуковые выходы, способные передавать содержимое через стандартный интерфейс через стандартную схему взаимодействия. Цифровые выходы включают, но не ограничиваются строго S/PDIF, IEEE 1394, параллельные, последовательные, модемные и сетевые порты. (Это требование в настоящее время не применяется к USB.)
При обработке защищенного содержимого аудиодрайвер никогда не должен присоединять ненадежный драйвер к стеку. Другими словами, аудиодрайвер должен полагаться только на другие компоненты, которые также содержат сигнатуры DRM. Драйвер никогда не должен облегчать передачу звуковых данных в любой компонент без подписи DRM. В частности, если драйвер передает цифровое содержимое другому компоненту, драйвер должен использовать API DRM в ядре, чтобы сообщить системному драйверу DRMK об этом.
Помимо прохождения теста соответствия ТРЕБОВАНИЯМ DRM, звуковое устройство и драйвер не должны позволять пользователю выбирать режим работы, который не позволяет использовать компоненты DRM в ядре. В частности, драйвер не должен предоставлять параметры реестра, панели управления пользователем или другие средства отключения функций DRM.