DxgkDdiOPMCreateProtectedOutput routine

The DxgkDdiOPMCreateProtectedOutput function creates a new protected output object with Certified Output Protection Protocol (COPP) or OPM semantics.

Syntax


DXGKDDI_OPM_CREATE_PROTECTED_OUTPUT DxgkDdiOPMCreateProtectedOutput;

NTSTATUS DxgkDdiOPMCreateProtectedOutput(
  _In_   PVOID MiniportDeviceContext,
  _In_   D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId,
  _In_   DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS NewVideoOutputSemantics,
  _Out_  PHANDLE NewProtectedOutputHandle
)
{ ... }

Parameters

MiniportDeviceContext [in]

A handle to a context block associated with a display adapter. Previously, the display miniport driver's DxgkDdiAddDevice function provided this handle to the DirectX graphics kernel subsystem.

VidPnTargetId [in]

An integer that uniquely identifies the video present target that corresponds to the new protected output object. Each video present target must correspond to one physical monitor connector. If VidPnTargetId corresponds to multiple physical monitor connectors, DxgkDdiOPMCreateProtectedOutput should return the STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED or STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED error code.

NewVideoOutputSemantics [in]

A DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS-typed value that determines whether the new protected output has COPP or OPM semantics.

NewProtectedOutputHandle [out]

A pointer to a variable that receives the handle to the new protected output object if DxgkDdiOPMCreateProtectedOutput returns successfully. The DirectX graphics kernel subsystem passes this handle in calls to the display miniport driver's DxgkDdiOPMGetRandomNumber, DxgkDdiOPMSetSigningKeyAndSequenceNumbers DxgkDdiOPMGetInformation, DxgkDdiOPMGetCOPPCompatibleInformation, DxgkDdiOPMConfigureProtectedOutput, and DxgkDdiOPMDestroyProtectedOutput.

If DxgkDdiOPMCreateProtectedOutput fails, the value of the variable is unchanged.

Return value

DxgkDdiOPMCreateProtectedOutput returns one of the following values.

Return codeDescription
STATUS_SUCCESS

The function successfully created a new protected output object.

STATUS_GRAPHICS_OPM_NOT_SUPPORTED

The display miniport driver does not support OPM either because the hardware vender never signed the OPM license agreement or the miniport driver's graphics hardware does not comply with OPM rules.

STATUS_GRAPHICS_COPP_NOT_SUPPORTED

The display miniport driver does not support COPP either because the hardware vender never signed the COPP license agreement or the miniport driver's graphics hardware does not comply with COPP rules.

STATUS_NO_MEMORY

DxgkDdiOPMCreateProtectedOutput cannot allocate memory required for it to complete.

STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED

DxgkDdiOPMCreateProtectedOutput could not create a protected output because the video present target is in spanning mode. When the video present target is in spanning mode, it corresponds to multiple physical monitor connectors and each connector displays a separate part of the frame buffer. For a diagram of how the display miniport driver typically implements spanning mode, see the Remarks section.

The display miniport driver informs the operating system on how the frame buffer corresponds to a particular monitor. The left half of the frame buffer is displayed on one monitor, and the right half of the frame buffer is displayed on the other monitor.

STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED

DxgkDdiOPMCreateProtectedOutput could not create a protected output because the video present target is in theater mode. When the video present target is in theater mode, it corresponds to two physical monitor connectors; one connector displays the entire frame buffer and the other connector displays only part of the frame buffer. Theater mode is also known as mirror mode. For a diagram of how the display miniport driver typically implements theater mode, see the Remarks section.

The display miniport driver informs the operating system on how the frame buffer corresponds to a particular monitor. The entire frame buffer is displayed on one monitor, and only part of the frame buffer is displayed on the other monitor.

 

This function might also return other error codes that are defined in Ntstatus.h.

Remarks

The following figure shows how the display miniport driver typically implements spanning mode.

Diagram illustrating spanning mode

The following figure shows how the display miniport driver typically implements theater mode.

Diagram illustrating theater mode

DxgkDdiOPMCreateProtectedOutput should be made pageable.

Requirements

Header

Dispmprt.h (include Dispmprt.h)

IRQL

PASSIVE_LEVEL (see Remarks section)

See also

DxgkDdiAddDevice
DxgkDdiOPMGetRandomNumber
DxgkDdiOPMSetSigningKeyAndSequenceNumbers
DxgkDdiOPMGetInformation
DxgkDdiOPMGetCOPPCompatibleInformation
DxgkDdiOPMConfigureProtectedOutput
DxgkDdiOPMDestroyProtectedOutput
DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft