DRMFORWARD 结构 (drmk.h)

DRMFORWARD 结构包含 DRMK 系统驱动程序将 DRM 内容 ID 转发到处理受保护内容的设备所需的信息。

语法

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

成员

Flags

当前未定义任何标志位。 将此成员设置为零。

DeviceObject

指向设备对象的指针,它是 DEVICE_OBJECT类型的系统结构。

FileObject

指向文件对象的指针,该文件对象是 FILE_OBJECT类型的系统结构。

Context

指向上下文数据的指针。 有关更多信息,请参见下面的“备注”部分。

注解

此结构是 DrmForwardContentToDeviceObject 函数的调用参数之一。 结构包含函数向 WDM 驱动程序发送 KSPROPERTY_DRMAUDIOSTREAM_CONTENTIDset-property 请求所需的信息。

WDM 驱动程序管理由 DeviceObject 成员表示的设备。 DrmForwardContentToDeviceObject 函数将属性请求发送到此设备对象。

构造包含属性请求的 IRP 时, DrmForwardContentToDeviceObject 函数将 FileObject 成员复制到 IRP 中驱动程序的 I/O 堆栈位置的 FileObject 字段中。 如果 WDM 驱动程序是实现全部或部分 KS 筛选器) 的 KS 驱动程序 (, 则 FileObject 成员表示要接收包含受保护内容的流的筛选器上的引脚。 对于非 KS 驱动程序,FILE_OBJECT 结构中的上下文字段可以包含驱动程序和 DrmForwardContentToDeviceObject 函数的调用方之间达成一致含义的任何值。

Context 成员包含一个上下文值,DrmForwardContentToDeviceObject 函数 (KSP_DRMAUDIOSTREAM_CONTENTID结构的 Context 成员) 复制到KSPROPERTY_DRMAUDIOSTREAM_CONTENTID set-property 请求的属性描述符中。 Context 成员可以包含驱动程序与 DrmForwardContentToDeviceObject 函数的调用方之间达成一致含义的任何值。

按照约定,如果下游模块是 KS 筛选器, 则 Context 成员指向一个文件对象,该对象指定 DrmForwardContentToDeviceObject 函数向其发送属性请求的 KS 引脚。 换句话说, 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 的一般信息,请参阅 数字版权管理

要求

要求
Header drmk.h (包括 Drmk.h)

另请参阅

DEVICE_OBJECT

DrmForwardContentToDeviceObject

FILE_OBJECT

IDrmPort2::ForwardContentToDeviceObject

KSPROPERTY_DRMAUDIOSTREAM_CONTENTID

KSP_DRMAUDIOSTREAM_CONTENTID

PcForwardContentToDeviceObject