次の方法で共有


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

pfnAssignSourceModeSet 関数は、指定した VidPN 内の特定のソースに設定されたソース モードを割り当てます。

構文

DXGKDDI_VIDPN_ASSIGNSOURCEMODESET DxgkddiVidpnAssignsourcemodeset;

NTSTATUS DxgkddiVidpnAssignsourcemodeset(
  [in] IN_D3DKMDT_HVIDPN hVidPn,
  [in] IN_CONST_D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId,
  [in] IN_CONST_D3DKMDT_HVIDPNSOURCEMODESET hVidPnSourceModeSet
)
{...}

パラメーター

[in] hVidPn

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

[in] VidPnSourceId

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

[in] hVidPnSourceModeSet

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

戻り値

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

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

注釈

VidPN ソース識別子は、オペレーティング システムによって割り当てられます。 DxgkDdiStartDevice は、ディスプレイ ミニポート ドライバーによって実装され、ディスプレイ アダプターでサポートされているビデオの現在のソースの数 N を返します。 次に、オペレーティング システムによって識別子 0、1、2、..が割り当てられます。N - 1。

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

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

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

pfnAssignSourceModeSet が無効な入力パラメーター (つまり、STATUS_GRAPHICS_INVALID_VIDPN、STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE、またはSTATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESETエラー コードで失敗) で失敗した場合、 pfnAssignSourceModeSet はソース モード セット オブジェクトを解放しません。これは、指定されたパラメーターがオペレーティング システムで解放するモード セット オブジェクトを決定するのに十分でなかったためです。 このような無効なパラメーターの状況は、ドライバーの総コーディング エラーを示します。 このエラーを修正するには、正しい VidPN ハンドル、ソース識別子、または VidPN ソース モード セット ハンドルを指定します。

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

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

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

要件

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

こちらもご覧ください

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

pfnCreateNewSourceModeSet