DXGKDDI_VIDPN_ASSIGNTARGETMODESET コールバック関数 (d3dkmddi.h)

pfnAssignTargetModeSet 関数は、指定した VidPN 内の特定のターゲットに設定されたターゲット モードを割り当てます。

構文

DXGKDDI_VIDPN_ASSIGNTARGETMODESET DxgkddiVidpnAssigntargetmodeset;

NTSTATUS DxgkddiVidpnAssigntargetmodeset(
  [in] IN_D3DKMDT_HVIDPN hVidPn,
  [in] IN_CONST_D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId,
  [in] IN_CONST_D3DKMDT_HVIDPNTARGETMODESET hVidPnTargetModeSet
)
{...}

パラメーター

[in] hVidPn

VidPN オブジェクトへのハンドル。 VidPN マネージャーは、以前に DxgkDdiEnumVidPnCofuncModality または DxgkDdiRecommendFunctionalVidPn を呼び出すことによって、ディスプレイ ミニポート ドライバーにこのハンドルを提供しました。

[in] VidPnTargetId

VidPN オブジェクトに関連付けられているビデオの存在ターゲットの 1 つを識別する整数。

[in] hVidPnTargetModeSet

VidPnTargetId によって識別されるターゲットに割り当てられるターゲット モード セット オブジェクトへのハンドル。 ディスプレイ ミニポート ドライバーは、 以前に pfnCreateNewTargetModeSet を呼び出してこのハンドルを取得しました。

戻り値

pfnAssignTargetModeSet 関数は、次のいずれかの値を返します。

リターン コード 説明
STATUS_SUCCESS 関数が正常に実行されました。
STATUS_GRAPHICS_INVALID_VIDPN hVidPn で指定されたハンドルが無効です。
STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET VidPnTargetId で指定された識別子が無効です。
STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET hVidPnTargetModeSet で指定されたハンドルが無効です。
STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET 割り当てようとしているターゲット モード セットには、ターゲットに既に固定されているモードが含まれていません。

注釈

VidPN ターゲット識別子は、ディスプレイ ミニポート ドライバーによって割り当てられます。 ディスプレイ ミニポート ドライバーによって実装される DxgkDdiQueryChildRelations は、識別子を含むDXGK_CHILD_DESCRIPTOR構造体の配列を返します。

pfnCreateNewTargetModeSet を呼び出してハンドルを取得し、そのハンドルを pfnAssignTargetModeSet に渡す場合は、pfnReleaseTargetModeSet を呼び出してハンドルを解放する必要はありません。

pfnCreateNewTargetModeSet を呼び出してハンドルを取得し、新しいターゲット モード セットをターゲットに割り当てないことを決定した場合は、pfnReleaseTargetModeSet を呼び出して、新しく取得したハンドルを解放する必要があります。

メモpfnAssignTargetModeSet 関数は、pfnAssignTargetModeSet が失敗した原因に応じて、hVidPnTargetModeSet パラメーターによって識別されるターゲット モード セット オブジェクトを解放するか、解放しません。

pfnAssignTargetModeSet が無効な入力パラメーター (つまり、STATUS_GRAPHICS_INVALID_VIDPN、STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET、STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET またはエラー コードで失敗) で失敗した場合、 pfnAssignTargetModeSet はターゲット モード セット オブジェクトを解放しません。 このような無効なパラメーターの状況は、ドライバーの総コーディング エラーを示します。 このエラーを修正するには、正しい VidPN ハンドル、ターゲット識別子、または VidPN ターゲット モード セット ハンドルを指定します。

pfnAssignTargetModeSet は、次のいずれかの理由で pfnAssignTargetModeSet が失敗した場合に、すべての入力パラメーターを正常に検証した後にターゲット モード セット オブジェクトを解放します。

  • ターゲット モード セットが空です。
  • ターゲット モード セットには、前のモード セットに固定されているモード (存在する場合) は含まれません。
  • VidPnTargetId によって識別されるターゲットに対してターゲット モード セットが作成されませんでした。
 
D3DDDI_VIDEO_PRESENT_TARGET_ID データ型は D3dukmdt.h で定義されています。

D3DKMDT_HVIDPNデータ型とD3DKMDT_HVIDPNTARGETMODESETデータ型は D3dkmdt.h で定義されています。

要件

要件
サポートされている最小のクライアント Windows Vista
対象プラットフォーム デスクトップ
Header d3dkmddi.h (D3dkmddi.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

VidPN ターゲット モード セット インターフェイス

pfnCreateNewTargetModeSet