1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 use shared
::basetsd
::UINT64
;
7 use shared
::d3d9
::IDirect3DDevice9
;
8 use shared
::d3d9types
::D3DFORMAT
;
9 use shared
::guiddef
::GUID
;
10 use shared
::minwindef
::{BYTE, DWORD, ULONG}
;
11 use shared
::windef
::HMONITOR
;
12 use um
::dxva2api
::DXVA2_SampleFormat
;
13 use um
::unknwnbase
::{IUnknown, IUnknownVtbl}
;
14 use um
::winnt
::{HRESULT, LUID}
;
15 DEFINE_GUID
!{OPM_GET_CURRENT_HDCP_SRM_VERSION
,
16 0x99c5ceff, 0x5f1d, 0x4879, 0x81, 0xc1, 0xc5, 0x24, 0x43, 0xc9, 0x48, 0x2b}
17 DEFINE_GUID
!{OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION
,
18 0x0db59d74, 0xa992, 0x492e, 0xa0, 0xbd, 0xc2, 0x3f, 0xda, 0x56, 0x4e, 0x00}
19 DEFINE_GUID
!{OPM_GET_ACP_AND_CGMSA_SIGNALING
,
20 0x6629a591, 0x3b79, 0x4cf3, 0x92, 0x4a, 0x11, 0xe8, 0xe7, 0x81, 0x16, 0x71}
21 DEFINE_GUID
!{OPM_GET_CONNECTOR_TYPE
,
22 0x81d0bfd5, 0x6afe, 0x48c2, 0x99, 0xc0, 0x95, 0xa0, 0x8f, 0x97, 0xc5, 0xda}
23 DEFINE_GUID
!{OPM_GET_SUPPORTED_PROTECTION_TYPES
,
24 0x38f2a801, 0x9a6c, 0x48bb, 0x91, 0x07, 0xb6, 0x69, 0x6e, 0x6f, 0x17, 0x97}
25 DEFINE_GUID
!{OPM_GET_VIRTUAL_PROTECTION_LEVEL
,
26 0xb2075857, 0x3eda, 0x4d5d, 0x88, 0xdb, 0x74, 0x8f, 0x8c, 0x1a, 0x05, 0x49}
27 DEFINE_GUID
!{OPM_GET_ACTUAL_PROTECTION_LEVEL
,
28 0x1957210a, 0x7766, 0x452a, 0xb9, 0x9a, 0xd2, 0x7a, 0xed, 0x54, 0xf0, 0x3a}
29 DEFINE_GUID
!{OPM_GET_ACTUAL_OUTPUT_FORMAT
,
30 0xd7bf1ba3, 0xad13, 0x4f8e, 0xaf, 0x98, 0x0d, 0xcb, 0x3c, 0xa2, 0x04, 0xcc}
31 DEFINE_GUID
!{OPM_GET_ADAPTER_BUS_TYPE
,
32 0xc6f4d673, 0x6174, 0x4184, 0x8e, 0x35, 0xf6, 0xdb, 0x52, 0x0, 0xbc, 0xba}
33 DEFINE_GUID
!{OPM_GET_OUTPUT_ID
,
34 0x72cb6df3, 0x244f, 0x40ce, 0xb0, 0x9e, 0x20, 0x50, 0x6a, 0xf6, 0x30, 0x2f}
35 DEFINE_GUID
!{OPM_GET_DVI_CHARACTERISTICS
,
36 0xa470b3bb, 0x5dd7, 0x4172, 0x83, 0x9c, 0x3d, 0x37, 0x76, 0xe0, 0xeb, 0xf5}
37 DEFINE_GUID
!{OPM_GET_CODEC_INFO
,
38 0x4f374491, 0x8f5f, 0x4445, 0x9d, 0xba, 0x95, 0x58, 0x8f, 0x6b, 0x58, 0xb4}
39 DEFINE_GUID
!{OPM_GET_OUTPUT_HARDWARE_PROTECTION_SUPPORT
,
40 0x3b129589, 0x2af8, 0x4ef0, 0x96, 0xa2, 0x70, 0x4a, 0x84, 0x5a, 0x21, 0x8e}
41 DEFINE_GUID
!{OPM_SET_PROTECTION_LEVEL
,
42 0x9bb9327c, 0x4eb5, 0x4727, 0x9f, 0x00, 0xb4, 0x2b, 0x09, 0x19, 0xc0, 0xda}
43 DEFINE_GUID
!{OPM_SET_ACP_AND_CGMSA_SIGNALING
,
44 0x09a631a5, 0xd684, 0x4c60, 0x8e, 0x4d, 0xd3, 0xbb, 0x0f, 0x0b, 0xe3, 0xee}
45 DEFINE_GUID
!{OPM_SET_HDCP_SRM
,
46 0x8b5ef5d1, 0xc30d, 0x44ff, 0x84, 0xa5, 0xea, 0x71, 0xdc, 0xe7, 0x8f, 0x13}
47 DEFINE_GUID
!{OPM_SET_PROTECTION_LEVEL_ACCORDING_TO_CSS_DVD
,
48 0x39ce333e, 0x4cc0, 0x44ae, 0xbf, 0xcc, 0xda, 0x50, 0xb5, 0xf8, 0x2e, 0x72}
49 ENUM
!{enum __MIDL___MIDL_itf_opmapi_0000_0000_0001
{
51 OPM_128_BIT_RANDOM_NUMBER_SIZE
= 16,
52 OPM_ENCRYPTED_INITIALIZATION_PARAMETERS_SIZE
= 256,
53 OPM_CONFIGURE_SETTING_DATA_SIZE
= 4056,
54 OPM_GET_INFORMATION_PARAMETERS_SIZE
= 4056,
55 OPM_REQUESTED_INFORMATION_SIZE
= 4076,
56 OPM_HDCP_KEY_SELECTION_VECTOR_SIZE
= 5,
57 OPM_PROTECTION_TYPE_SIZE
= 4,
58 OPM_BUS_TYPE_MASK
= 0xffff,
59 OPM_BUS_IMPLEMENTATION_MODIFIER_MASK
= 0x7fff,
61 ENUM
!{enum OPM_VIDEO_OUTPUT_SEMANTICS
{
62 OPM_VOS_COPP_SEMANTICS
= 0,
63 OPM_VOS_OPM_SEMANTICS
= 1,
64 OPM_VOS_OPM_INDIRECT_DISPLAY
= 2,
66 ENUM
!{enum __MIDL___MIDL_itf_opmapi_0000_0000_0002
{
67 OPM_HDCP_FLAG_NONE
= 0,
68 OPM_HDCP_FLAG_REPEATER
= 0x1,
70 ENUM
!{enum __MIDL___MIDL_itf_opmapi_0000_0000_0003
{
71 OPM_STATUS_NORMAL
= 0,
72 OPM_STATUS_LINK_LOST
= 0x1,
73 OPM_STATUS_RENEGOTIATION_REQUIRED
= 0x2,
74 OPM_STATUS_TAMPERING_DETECTED
= 0x4,
75 OPM_STATUS_REVOKED_HDCP_DEVICE_ATTACHED
= 0x8,
77 ENUM
!{enum __MIDL___MIDL_itf_opmapi_0000_0000_0004
{
78 OPM_CONNECTOR_TYPE_OTHER
= -1i32 as u32,
79 OPM_CONNECTOR_TYPE_VGA
= 0,
80 OPM_CONNECTOR_TYPE_SVIDEO
= 1,
81 OPM_CONNECTOR_TYPE_COMPOSITE_VIDEO
= 2,
82 OPM_CONNECTOR_TYPE_COMPONENT_VIDEO
= 3,
83 OPM_CONNECTOR_TYPE_DVI
= 4,
84 OPM_CONNECTOR_TYPE_HDMI
= 5,
85 OPM_CONNECTOR_TYPE_LVDS
= 6,
86 OPM_CONNECTOR_TYPE_D_JPN
= 8,
87 OPM_CONNECTOR_TYPE_SDI
= 9,
88 OPM_CONNECTOR_TYPE_DISPLAYPORT_EXTERNAL
= 10,
89 OPM_CONNECTOR_TYPE_DISPLAYPORT_EMBEDDED
= 11,
90 OPM_CONNECTOR_TYPE_UDI_EXTERNAL
= 12,
91 OPM_CONNECTOR_TYPE_UDI_EMBEDDED
= 13,
92 OPM_CONNECTOR_TYPE_RESERVED
= 14,
93 OPM_CONNECTOR_TYPE_MIRACAST
= 15,
94 OPM_CONNECTOR_TYPE_TRANSPORT_AGNOSTIC_DIGITAL_MODE_A
= 16,
95 OPM_CONNECTOR_TYPE_TRANSPORT_AGNOSTIC_DIGITAL_MODE_B
= 17,
96 OPM_COPP_COMPATIBLE_CONNECTOR_TYPE_INTERNAL
= 0x80000000,
98 ENUM
!{enum __MIDL___MIDL_itf_opmapi_0000_0000_0005
{
99 OPM_DVI_CHARACTERISTIC_1_0
= 1,
100 OPM_DVI_CHARACTERISTIC_1_1_OR_ABOVE
= 2,
102 ENUM
!{enum OPM_OUTPUT_HARDWARE_PROTECTION
{
103 OPM_OUTPUT_HARDWARE_PROTECTION_NOT_SUPPORTED
= 0,
104 OPM_OUTPUT_HARDWARE_PROTECTION_SUPPORTED
= 0x1,
106 ENUM
!{enum __MIDL___MIDL_itf_opmapi_0000_0000_0006
{
107 OPM_BUS_TYPE_OTHER
= 0,
108 OPM_BUS_TYPE_PCI
= 0x1,
109 OPM_BUS_TYPE_PCIX
= 0x2,
110 OPM_BUS_TYPE_PCIEXPRESS
= 0x3,
111 OPM_BUS_TYPE_AGP
= 0x4,
112 OPM_BUS_IMPLEMENTATION_MODIFIER_INSIDE_OF_CHIPSET
= 0x10000,
113 OPM_BUS_IMPLEMENTATION_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP
= 0x20000,
114 OPM_BUS_IMPLEMENTATION_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET
= 0x30000,
115 OPM_BUS_IMPLEMENTATION_MODIFIER_DAUGHTER_BOARD_CONNECTOR
= 0x40000,
116 OPM_BUS_IMPLEMENTATION_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE
= 0x50000,
117 OPM_BUS_IMPLEMENTATION_MODIFIER_NON_STANDARD
= 0x80000000,
118 OPM_COPP_COMPATIBLE_BUS_TYPE_INTEGRATED
= 0x80000000,
120 ENUM
!{enum OPM_DPCP_PROTECTION_LEVEL
{
123 OPM_DPCP_FORCE_ULONG
= 0x7fffffff,
125 ENUM
!{enum OPM_HDCP_PROTECTION_LEVEL
{
128 OPM_HDCP_FORCE_ULONG
= 0x7fffffff,
130 ENUM
!{enum OPM_TYPE_ENFORCEMENT_HDCP_PROTECTION_LEVEL
{
131 OPM_TYPE_ENFORCEMENT_HDCP_OFF
= OPM_HDCP_OFF
,
132 OPM_TYPE_ENFORCEMENT_HDCP_ON_WITH_NO_TYPE_RESTRICTION
= OPM_HDCP_ON
,
133 OPM_TYPE_ENFORCEMENT_HDCP_ON_WITH_TYPE1_RESTRICTION
= OPM_HDCP_ON
+ 1,
134 OPM_TYPE_ENFORCEMENT_HDCP_FORCE_ULONG
= 0x7fffffff,
136 ENUM
!{enum __MIDL___MIDL_itf_opmapi_0000_0000_0007
{
138 OPM_CGMSA_COPY_FREELY
= 0x1,
139 OPM_CGMSA_COPY_NO_MORE
= 0x2,
140 OPM_CGMSA_COPY_ONE_GENERATION
= 0x3,
141 OPM_CGMSA_COPY_NEVER
= 0x4,
142 OPM_CGMSA_REDISTRIBUTION_CONTROL_REQUIRED
= 0x8,
144 ENUM
!{enum OPM_ACP_PROTECTION_LEVEL
{
146 OPM_ACP_LEVEL_ONE
= 1,
147 OPM_ACP_LEVEL_TWO
= 2,
148 OPM_ACP_LEVEL_THREE
= 3,
149 OPM_ACP_FORCE_ULONG
= 0x7fffffff,
151 ENUM
!{enum __MIDL___MIDL_itf_opmapi_0000_0000_0008
{
152 OPM_PROTECTION_TYPE_OTHER
= 0x80000000,
153 OPM_PROTECTION_TYPE_NONE
= 0,
154 OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP
= 0x1,
155 OPM_PROTECTION_TYPE_ACP
= 0x2,
156 OPM_PROTECTION_TYPE_CGMSA
= 0x4,
157 OPM_PROTECTION_TYPE_HDCP
= 0x8,
158 OPM_PROTECTION_TYPE_DPCP
= 0x10,
159 OPM_PROTECTION_TYPE_TYPE_ENFORCEMENT_HDCP
= 0x20,
161 ENUM
!{enum __MIDL___MIDL_itf_opmapi_0000_0000_0009
{
162 OPM_PROTECTION_STANDARD_OTHER
= 0x80000000,
163 OPM_PROTECTION_STANDARD_NONE
= 0,
164 OPM_PROTECTION_STANDARD_IEC61880_525I
= 0x1,
165 OPM_PROTECTION_STANDARD_IEC61880_2_525I
= 0x2,
166 OPM_PROTECTION_STANDARD_IEC62375_625P
= 0x4,
167 OPM_PROTECTION_STANDARD_EIA608B_525
= 0x8,
168 OPM_PROTECTION_STANDARD_EN300294_625I
= 0x10,
169 OPM_PROTECTION_STANDARD_CEA805A_TYPEA_525P
= 0x20,
170 OPM_PROTECTION_STANDARD_CEA805A_TYPEA_750P
= 0x40,
171 OPM_PROTECTION_STANDARD_CEA805A_TYPEA_1125I
= 0x80,
172 OPM_PROTECTION_STANDARD_CEA805A_TYPEB_525P
= 0x100,
173 OPM_PROTECTION_STANDARD_CEA805A_TYPEB_750P
= 0x200,
174 OPM_PROTECTION_STANDARD_CEA805A_TYPEB_1125I
= 0x400,
175 OPM_PROTECTION_STANDARD_ARIBTRB15_525I
= 0x800,
176 OPM_PROTECTION_STANDARD_ARIBTRB15_525P
= 0x1000,
177 OPM_PROTECTION_STANDARD_ARIBTRB15_750P
= 0x2000,
178 OPM_PROTECTION_STANDARD_ARIBTRB15_1125I
= 0x4000,
180 ENUM
!{enum OPM_IMAGE_ASPECT_RATIO_EN300294
{
181 OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_4_BY_3
= 0,
182 OPM_ASPECT_RATIO_EN300294_BOX_14_BY_9_CENTER
= 1,
183 OPM_ASPECT_RATIO_EN300294_BOX_14_BY_9_TOP
= 2,
184 OPM_ASPECT_RATIO_EN300294_BOX_16_BY_9_CENTER
= 3,
185 OPM_ASPECT_RATIO_EN300294_BOX_16_BY_9_TOP
= 4,
186 OPM_ASPECT_RATIO_EN300294_BOX_GT_16_BY_9_CENTER
= 5,
187 OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_4_BY_3_PROTECTED_CENTER
= 6,
188 OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_16_BY_9_ANAMORPHIC
= 7,
189 OPM_ASPECT_RATIO_FORCE_ULONG
= 0x7fffffff,
191 STRUCT
!{#[repr(packed)] struct OPM_RANDOM_NUMBER {
192 abRandomNumber
: [BYTE
; 16],
194 STRUCT
!{#[repr(packed)] struct OPM_OMAC {
197 STRUCT
!{#[repr(packed)] struct OPM_ENCRYPTED_INITIALIZATION_PARAMETERS {
198 abEncryptedInitializationParameters
: [BYTE
; 256],
200 STRUCT
!{#[repr(packed)] struct OPM_GET_INFO_PARAMETERS {
202 rnRandomNumber
: OPM_RANDOM_NUMBER
,
203 guidInformation
: GUID
,
204 ulSequenceNumber
: ULONG
,
205 cbParametersSize
: ULONG
,
206 abParameters
: [BYTE
; 4056],
208 STRUCT
!{#[repr(packed)] struct OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS {
209 rnRandomNumber
: OPM_RANDOM_NUMBER
,
210 guidInformation
: GUID
,
211 ulSequenceNumber
: ULONG
,
212 cbParametersSize
: ULONG
,
213 abParameters
: [BYTE
; 4056],
215 STRUCT
!{#[repr(packed)] struct OPM_HDCP_KEY_SELECTION_VECTOR {
216 abKeySelectionVector
: [BYTE
; 5],
218 STRUCT
!{#[repr(packed)] struct OPM_CONNECTED_HDCP_DEVICE_INFORMATION {
219 rnRandomNumber
: OPM_RANDOM_NUMBER
,
220 ulStatusFlags
: ULONG
,
222 ksvB
: OPM_HDCP_KEY_SELECTION_VECTOR
,
223 Reserved
: [BYTE
; 11],
224 Reserved2
: [BYTE
; 16],
225 Reserved3
: [BYTE
; 16],
227 STRUCT
!{#[repr(packed)] struct OPM_REQUESTED_INFORMATION {
229 cbRequestedInformationSize
: ULONG
,
230 abRequestedInformation
: [BYTE
; 4076],
232 STRUCT
!{#[repr(packed)] struct OPM_STANDARD_INFORMATION {
233 rnRandomNumber
: OPM_RANDOM_NUMBER
,
234 ulStatusFlags
: ULONG
,
235 ulInformation
: ULONG
,
239 STRUCT
!{#[repr(packed)] struct OPM_ACTUAL_OUTPUT_FORMAT {
240 rnRandomNumber
: OPM_RANDOM_NUMBER
,
241 ulStatusFlags
: ULONG
,
242 ulDisplayWidth
: ULONG
,
243 ulDisplayHeight
: ULONG
,
244 dsfSampleInterleaveFormat
: DXVA2_SampleFormat
,
245 d3dFormat
: D3DFORMAT
,
246 ulFrequencyNumerator
: ULONG
,
247 ulFrequencyDenominator
: ULONG
,
249 STRUCT
!{#[repr(packed)] struct OPM_ACP_AND_CGMSA_SIGNALING {
250 rnRandomNumber
: OPM_RANDOM_NUMBER
,
251 ulStatusFlags
: ULONG
,
252 ulAvailableTVProtectionStandards
: ULONG
,
253 ulActiveTVProtectionStandard
: ULONG
,
255 ulAspectRatioValidMask1
: ULONG
,
256 ulAspectRatioData1
: ULONG
,
257 ulAspectRatioValidMask2
: ULONG
,
258 ulAspectRatioData2
: ULONG
,
259 ulAspectRatioValidMask3
: ULONG
,
260 ulAspectRatioData3
: ULONG
,
261 ulReserved2
: [ULONG
; 4],
262 ulReserved3
: [ULONG
; 4],
264 STRUCT
!{#[repr(packed)] struct OPM_OUTPUT_ID_DATA {
265 rnRandomNumber
: OPM_RANDOM_NUMBER
,
266 ulStatusFlags
: ULONG
,
269 STRUCT
!{#[repr(packed)] struct OPM_CONFIGURE_PARAMETERS {
272 ulSequenceNumber
: ULONG
,
273 cbParametersSize
: ULONG
,
274 abParameters
: [BYTE
; 4056],
276 STRUCT
!{#[repr(packed)] struct OPM_SET_PROTECTION_LEVEL_PARAMETERS {
277 ulProtectionType
: ULONG
,
278 ulProtectionLevel
: ULONG
,
282 STRUCT
!{#[repr(packed)] struct OPM_SET_ACP_AND_CGMSA_SIGNALING_PARAMETERS {
283 ulNewTVProtectionStandard
: ULONG
,
284 ulAspectRatioChangeMask1
: ULONG
,
285 ulAspectRatioData1
: ULONG
,
286 ulAspectRatioChangeMask2
: ULONG
,
287 ulAspectRatioData2
: ULONG
,
288 ulAspectRatioChangeMask3
: ULONG
,
289 ulAspectRatioData3
: ULONG
,
290 ulReserved
: [ULONG
; 4],
291 ulReserved2
: [ULONG
; 4],
294 STRUCT
!{#[repr(packed)] struct OPM_SET_HDCP_SRM_PARAMETERS {
297 STRUCT
!{#[repr(packed)] struct OPM_GET_CODEC_INFO_PARAMETERS {
299 Verifier
: [BYTE
; 4052],
301 STRUCT
!{#[repr(packed)] struct OPM_GET_CODEC_INFO_INFORMATION {
302 rnRandomNumber
: OPM_RANDOM_NUMBER
,
305 DEFINE_GUID
!{IID_IOPMVideoOutput
,
306 0x0a15159d, 0x41c7, 0x4456, 0x93, 0xe1, 0x28, 0x4c, 0xd6, 0x1d, 0x4e, 0x8d}
307 RIDL
!{#[uuid(0x0a15159d, 0x41c7, 0x4456, 0x93, 0xe1, 0x28, 0x4c, 0xd6, 0x1d, 0x4e, 0x8d)]
308 interface
IOPMVideoOutput(IOPMVideoOutputVtbl
): IUnknown(IUnknownVtbl
) {
309 fn StartInitialization(
310 prnRandomNumber
: *mut OPM_RANDOM_NUMBER
,
311 ppbCertificate
: *mut *mut BYTE
,
312 pulCertificateLength
: *mut ULONG
,
314 fn FinishInitialization(
315 pParameters
: *const OPM_ENCRYPTED_INITIALIZATION_PARAMETERS
,
318 pParameters
: *const OPM_GET_INFO_PARAMETERS
,
319 pRequestedInformation
: *mut OPM_REQUESTED_INFORMATION
,
321 fn COPPCompatibleGetInformation(
322 pParameters
: *const OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS
,
323 pRequestedInformation
: *mut OPM_REQUESTED_INFORMATION
,
326 pParameters
: *const OPM_CONFIGURE_PARAMETERS
,
327 ulAdditionalParametersSize
: ULONG
,
328 pbAdditionalParameters
: *const BYTE
,
332 pub fn GetBusType(ulBusTypeAndImplementation
: ULONG
) -> ULONG
{
333 ulBusTypeAndImplementation
& OPM_BUS_TYPE_MASK
336 pub fn GetBusImplementation(ulBusTypeAndImplementation
: ULONG
) -> ULONG
{
337 (ulBusTypeAndImplementation
& OPM_BUS_IMPLEMENTATION_MODIFIER_MASK
) >> 16
340 pub fn IsNonStandardBusImplementation(ulBusTypeAndImplementation
: ULONG
) -> ULONG
{
341 ulBusTypeAndImplementation
& OPM_BUS_IMPLEMENTATION_MODIFIER_NON_STANDARD
344 pub fn OPMGetVideoOutputsFromHMONITOR(
346 vos
: OPM_VIDEO_OUTPUT_SEMANTICS
,
347 pulNumVideoOutputs
: *mut ULONG
,
348 pppOPMVideoOutputArray
: *mut *mut *mut IOPMVideoOutput
,
350 pub fn OPMGetVideoOutputForTarget(
351 pAdapterLuid
: *mut LUID
,
353 vos
: OPM_VIDEO_OUTPUT_SEMANTICS
,
354 ppOPMVideoOutput
: *mut *mut IOPMVideoOutput
,
356 pub fn OPMGetVideoOutputsFromIDirect3DDevice9Object(
357 pDirect3DDevice9
: *mut IDirect3DDevice9
,
358 vos
: OPM_VIDEO_OUTPUT_SEMANTICS
,
359 pulNumVideoOutputs
: *mut ULONG
,
360 pppOPMVideoOutputArray
: *mut *mut *mut IOPMVideoOutput
,