DXGKDDI_OPM_CREATE_PROTECTED_OUTPUT コールバック関数 (dispmprt.h)

DxgkDdiOPMCreateProtectedOutput 関数は、Certified Output Protection Protocol (COPP) または OPM セマンティクスを使用して、新しい保護された出力オブジェクトを作成します。

構文

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
)
{...}

パラメーター

[in] MiniportDeviceContext

ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 以前は、ディスプレイ ミニポート ドライバーの DxgkDdiAddDevice 関数は、DirectX グラフィックス カーネル サブシステムにこのハンドルを提供しました。

[in] VidPnTargetId

新しい保護された出力オブジェクトに対応するビデオの現在のターゲットを一意に識別する整数。 各ビデオの現在のターゲットは、1 つの物理モニター コネクタに対応している必要があります。 VidPnTargetId が複数の物理モニター コネクタに対応する場合、DxgkDdiOPMCreateProtectedOutput はSTATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLEDまたはSTATUS_GRAPHICS_OPM_THEATER_MODE_ENABLEDエラー コードを返す必要があります。

[in] NewVideoOutputSemantics

新しい保護された出力に COPP セマンティクスと OPM セマンティクスのどちらが含まれるかを決定する、 DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS型指定の値。

[out] NewProtectedOutputHandle

DxgkDdiOPMCreateProtectedOutput が正常に返された場合に、新しい保護された出力オブジェクトへのハンドルを受け取る変数へのポインター。 DirectX グラフィックス カーネル サブシステムは、ディスプレイ ミニポート ドライバーの DxgkDdiOPMGetRandomNumberDxgkDdiOPMSetSigningKeyAndSequenceNumbersDxgkDdiOPMGetInformationDxgkDdiOPMGetCOPPCompatibleInformationDxgkDdiOPMConfigureProtectedOutputDxgkDdiOPMDestroyProtectedOutput の呼び出しでこのハンドルを渡します。

DxgkDdiOPMCreateProtectedOutput が失敗した場合、変数の値は変更されません。

戻り値

DxgkDdiOPMCreateProtectedOutput は 、次のいずれかの値を返します。

リターン コード 説明
STATUS_SUCCESS 関数は、保護された新しい出力オブジェクトを正常に作成しました。
STATUS_GRAPHICS_OPM_NOT_SUPPORTED ディスプレイ ミニポート ドライバーは、ハードウェア ベンダーが OPM ライセンス契約に署名しなかったか、ミニポート ドライバーのグラフィックス ハードウェアが OPM 規則に準拠していないため、OPM をサポートしていません。
STATUS_GRAPHICS_COPP_NOT_SUPPORTED ディスプレイ ミニポート ドライバーは、ハードウェア ベンダーが COPP ライセンス契約に署名していないか、ミニポート ドライバーのグラフィックス ハードウェアが COPP 規則に準拠していないため、COPP をサポートしていません。
STATUS_NO_MEMORY DxgkDdiOPMCreateProtectedOutput では、完了するために必要なメモリを割り当てることができません。
STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED DxgkDdiOPMCreateProtectedOutput は、ビデオの現在のターゲットがスパン モードであるため、保護された出力を作成できませんでした。 ビデオ表示ターゲットがスパン モードの場合は、複数の物理モニター コネクタに対応し、各コネクタはフレーム バッファーの個別の部分を表示します。 ディスプレイ ミニポート ドライバーが通常スパニング モードを実装する方法の図については、「解説」セクションを参照してください。 ディスプレイ ミニポート ドライバーは、フレーム バッファーが特定のモニターにどのように対応するかをオペレーティング システムに通知します。 フレーム バッファーの左半分が 1 つのモニターに表示され、フレーム バッファーの右半分がもう一方のモニターに表示されます。
STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED DxgkDdiOPMCreateProtectedOutput は、ビデオの現在のターゲットがシアター モードであるため、保護された出力を作成できませんでした。 ビデオの現在のターゲットがシアター モードの場合は、2 つの物理モニター コネクタに対応します。1 つのコネクタはフレーム バッファー全体を表示し、もう 1 つのコネクタはフレーム バッファーの一部のみを表示します。 シアター モードは、ミラー モードとも呼ばれます。 ディスプレイ ミニポート ドライバーが通常、シアター モードを実装する方法の図については、「解説」セクションを参照してください。 ディスプレイ ミニポート ドライバーは、フレーム バッファーが特定のモニターにどのように対応するかをオペレーティング システムに通知します。 フレーム バッファー全体が 1 つのモニターに表示され、もう一方のモニターにはフレーム バッファーの一部のみが表示されます。

この関数は、Ntstatus.h で定義されている他のエラー コードも返す場合があります。

注釈

次の図は、ディスプレイ ミニポート ドライバーが通常、スパニング モードを実装する方法を示しています。

スパニング モードを示す図 次の図は、ディスプレイ ミニポート ドライバーが通常、シアター モードを実装する方法を示しています。 シアター モード *DxgkDdiOPMCreateProtectedOutput* をページング可能にする必要があることを示す図

要件

要件
対象プラットフォーム デスクトップ
Header dispmprt.h (Dispmprt.h を含む)
IRQL PASSIVE_LEVEL (「解説」セクションを参照)

こちらもご覧ください

DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS

DxgkDdiAddDevice

DxgkDdiOPMConfigureProtectedOutput

DxgkDdiOPMDestroyProtectedOutput

DxgkDdiOPMGetCOPPCompatibleInformation

DxgkDdiOPMGetInformation

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers