次の方法で共有


OPM DDI の取得

次のシーケンスは、Microsoft DirectX グラフィックス カーネル サブシステム (Dxgkrnl.sys) がディスプレイ ミニポート ドライバーの OPM DDI を取得する方法を示しています。

  1. DirectX グラフィックス カーネル サブシステムは、ディスプレイ ミニポート ドライバーの DxgkDdiAddDevice 関数を呼び出して、グラフィックス アダプターのコンテキスト ブロックを作成し、そのグラフィックス アダプターにハンドルを返します。

  2. DirectX グラフィックス カーネル サブシステムは、次の表の値を使用して QUERY_INTERFACE 構造体を初期化します。

    メンバー名 メンバーの型

    InterfaceType

    CONST PGUID

    GUID_DEVINTERFACE_OPM を指すポインター

    (BF4672DE-6B4E-4BE4-A325-68A91EA49C09)

    Size

    USHORT

    sizeof(DXGK_OPM_INTERFACE)

    Version

    USHORT

    DXGK_OPM_INTERFACE_VERSION_1

    Interface

    PINTERFACE

    DXGK_OPM_INTERFACE 構造体を指すポインター

    InterfaceSpecificData

    PVOID

    NULL

  3. DirectX グラフィックス カーネル サブシステムは、ディスプレイ ミニポート ドライバーへの DxgkDdiQueryInterface 関数の呼び出しで初期化された QUERY_INTERFACE を渡します。

  4. ディスプレイ ミニポート ドライバーが OPM インターフェイスをサポートしていない場合、DxgkDdiQueryInterface は STATUS_NOT_SUPPORTED を返す必要があります。

    ディスプレイ ミニポート ドライバーが OPM をサポートしている場合、DxgkDdiQueryInterface は、次の表の値を使用して QUERY_INTERFACEInterface メンバーで受信した DXGK_OPM_INTERFACE 構造体を初期化します。

    メンバー名、タイプ、および値:

    Size
    USHORT タイプ

    sizeof(DXGK_OPM_INTERFACE)

    Version
    USHORT タイプ

    DXGK_OPM_INTERFACE_VERSION_1

    InterfaceReference
    PINTERFACE_REFERENCE タイプ

    ディスプレイ ミニポート ドライバーの InterfaceReference ルーチンを指すポインター (InterfaceReference の詳細については、INTERFACE 構造体の「備考」セクションを参照してください。)

    InterfaceDereference
    PINTERFACE_DEREFERENCE タイプ

    ディスプレイ ミニポート ドライバーの InterfaceDereference ルーチンを指すポインター (InterfaceDereference の詳細については、INTERFACE 構造体の「備考」セクションを参照してください。)

    DxgkDdiOPMGetCertificateSize
    DXGKDDI_OPM_GET_CERTIFICATE_SIZE タイプ

    ディスプレイ ミニポート ドライバーの DxgkDdiOPMGetCertificateSize 関数を指すポインター

    DxgkDdiOPMGetCertificate
    DXGKDDI_OPM_GET_CERTIFICATE タイプ

    ディスプレイ ミニポート ドライバーの DxgkDdiOPMGetCertificate 関数を指すポインター

    DxgkDdiOPMCreateProtectedOutput
    DXGKDDI_OPM_CREATE_PROTECTED_OUTPUT タイプ

    ディスプレイ ミニポート ドライバーの DxgkDdiOPMCreateProtectedOutput 関数を指すポインター

    DxgkDdiOPMGetRandomNumber
    DXGKDDI_OPM_GET_RANDOM_NUMBER タイプ

    ディスプレイ ミニポート ドライバーの DxgkDdiOPMGetRandomNumber 関数を指すポインター

    DxgkDdiOPMSetSigningKeyAndSequenceNumbers
    DXGKDDI_OPM_SET_SIGNING_KEY_AND_SEQUENCE_NUMBERS

    ディスプレイ ミニポート ドライバーの DxgkDdiOPMSetSigningKeyAndSequenceNumbers 関数を指すポインター

    DxgkDdiOPMGetInformation
    DXGKDDI_OPM_GET_INFORMATION

    ディスプレイ ミニポート ドライバーの DxgkDdiOPMGetInformation 関数を指すポインター

    DxgkDdiOPMGetCOPPCompatibleInformation
    DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION

    ディスプレイ ミニポート ドライバーの DxgkDdiOPMGetCOPPCompatibleInformation 関数を指すポインター

    DxgkDdiOPMConfigureProtectedOutput
    DXGKDDI_OPM_CONFIGURE_PROTECTED_OUTPUT

    ディスプレイ ミニポート ドライバーの DxgkDdiOPMConfigureProtectedOutput 関数を指すポインター

    DxgkDdiOPMDestroyProtectedOutput
    DXGKDDI_OPM_DESTROY_PROTECTED_OUTPUT

    ディスプレイ ミニポート ドライバーの DxgkDdiOPMDestroyProtectedOutput 関数を指すポインター

  5. ディスプレイ ミニポート ドライバーが OPM インターフェイスを使用して終了すると、ドライバーは、その InterfaceDereference ルーチンを呼び出します。 ドライバーは、その DxgkDdiRemoveDevice 関数が呼び出される前に、InterfaceDereference を呼び出す必要があります。