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) |
另请参阅
DrmForwardContentToDeviceObject
IDrmPort2::ForwardContentToDeviceObject