Структура DRMFORWARD (drmk.h)

Структура DRMFORWARD содержит сведения, необходимые драйверу системы DRMK для пересылки идентификатора содержимого DRM на устройство, обрабатывающее защищенное содержимое.

Синтаксис

typedef struct tagDRMFORWARD {
  DWORD          Flags;
  PDEVICE_OBJECT DeviceObject;
  PFILE_OBJECT   FileObject;
  PVOID          Context;
} DRMFORWARD, *PDRMFORWARD;

Члены

Flags

В настоящее время биты флагов не определены. Присвойте этому элементу значение ноль.

DeviceObject

Указатель на объект устройства, который представляет собой системную структуру типа DEVICE_OBJECT.

FileObject

Указатель на объект file, который является системной структурой типа FILE_OBJECT.

Context

Указатель на данные контекста. Дополнительные сведения см. в разделе "Примечания".

Комментарии

Эта структура является одним из параметров вызова функции DrmForwardContentToDeviceObject . Структура содержит сведения, необходимые функции для отправки KSPROPERTY_DRMAUDIOSTREAM_CONTENTIDзапроса set-property драйверу WDM.

Драйвер WDM управляет устройством, представленным элементом DeviceObject . Функция DrmForwardContentToDeviceObject отправляет запрос свойства этому объекту устройства.

При создании IRP, содержащего запрос свойства, функция DrmForwardContentToDeviceObject копирует элемент FileObject в поле FileObject в расположении стека ввода-вывода драйвера в IRP. Если драйвер WDM является драйвером KS (который реализует весь фильтр KS или его часть), член FileObject представляет контакт на фильтре, который должен получить поток, содержащий защищенное содержимое. Для драйвера, отличного от KS, поля контекста в структуре FILE_OBJECT могут содержать любое значение, значение которого согласовано драйвером и вызывающим объектом функции DrmForwardContentToDeviceObject .

Элемент Context содержит значение контекста, которое функция DrmForwardContentToDeviceObject копирует в дескриптор свойства KSPROPERTY_DRMAUDIOSTREAM_CONTENTID запроса set-property (элемент Context структуры KSP_DRMAUDIOSTREAM_CONTENTID). Элемент Context может содержать любое значение, значение которого согласовано между драйвером и вызывающим объектом функции DrmForwardContentToDeviceObject .

По соглашению, если подчиненный модуль является фильтром KS, член Context указывает на объект файла, указывающий маркер KS, в который функция DrmForwardContentToDeviceObject отправляет запрос свойства. Иными словами, элемент Context указывает на тот же объект файла, что и элемент FileObject .

Структура DRMFORWARD также используется функцией PcForwardContentToDeviceObject и методом IDrmPort2::ForwardContentToDeviceObject , которые являются альтернативными точками входа для функции DrmForwardContentToDeviceObject . Дополнительные сведения см. в разделе Функции и интерфейсы DRM.

Когда звуковой драйвер пересылает содержимое DRM в предоставленный системой USB-драйвер, применяются следующие условия:

  • DRMFORWARD. DeviceObject должен находиться в верхней части стека устройств.
  • DRMFORWARD. FileObject может иметь значение NULL , так как стек USB не использует IO_STACK_LOCATION. FileObject.
  • DRMFORWARD. Для контекста необходимо задать значение USBD_PIPE_HANDLE, соответствующее каналу, используемому звуковым драйвером.

Общие сведения о DRM см. в разделе Управление цифровыми правами.

Требования

Требование Значение
Заголовок drmk.h (включая Drmk.h)

См. также раздел

DEVICE_OBJECT

DrmForwardContentToDeviceObject

FILE_OBJECT

IDrmPort2::ForwardContentToDeviceObject

KSPROPERTY_DRMAUDIOSTREAM_CONTENTID

KSP_DRMAUDIOSTREAM_CONTENTID

PcForwardContentToDeviceObject