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 が無効な入力パラメーター (つまり、STATUS_GRAPHICS_INVALID_VIDPN、STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE、またはSTATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESETエラー コードで失敗) で失敗した場合、 pfnAssignSourceModeSet はソース モード セット オブジェクトを解放しません。これは、指定されたパラメーターがオペレーティング システムで解放するモード セット オブジェクトを決定するのに十分でなかったためです。 このような無効なパラメーターの状況は、ドライバーの総コーディング エラーを示します。 このエラーを修正するには、正しい VidPN ハンドル、ソース識別子、または VidPN ソース モード セット ハンドルを指定します。
pfnAssignSourceModeSet は、次のいずれかの理由で pfnAssignSourceModeSet が失敗した場合に、すべての入力パラメーターを正常に検証した後、ソース モード セット オブジェクトを解放します。
- ソース モード セットが空です。
- ソース モード セットには、前のモード セットに固定されているモード (存在する場合) は含まれません。
- VidPnSourceId によって識別されるソースに対してソース モード セットが作成されませんでした。
D3DKMDT_HVIDPNとD3DKMDT_HVIDPNSOURCEMODESETのデータ型は 、D3dkmdt.h で定義されています。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
対象プラットフォーム | デスクトップ |
Header | d3dkmddi.h (D3dkmddi.h を含む) |
IRQL | PASSIVE_LEVEL |