DXGKCB_ACQUIRE_POST_DISPLAY_OWNERSHIP コールバック関数 (dispmprt.h)
カーネル モード ディスプレイ ミニポート ドライバー (KMD) Dxgkrnlの DxgkCbAcquirePostDisplayOwnership ルーチンを呼び出して、現在の電源オン セルフテスト (POST) ディスプレイ デバイスまたは以前に実行されている WDDM ドライバーから表示情報を取得します。
ドライバーは、ディスプレイ デバイスの起動後に初期モード変更要求を最適化するには、この表示情報を使用する必要があります。
構文
DXGKCB_ACQUIRE_POST_DISPLAY_OWNERSHIP DxgkcbAcquirePostDisplayOwnership;
NTSTATUS DxgkcbAcquirePostDisplayOwnership(
[in] HANDLE DeviceHandle,
[out] PDXGK_DISPLAY_INFORMATION DisplayInfo
)
{...}
パラメーター
[in] DeviceHandle
ディスプレイ アダプターを表すハンドル。 KMD は、DxgkDdiStartDeviceに渡された DXGKRNL_INTERFACE 構造体の DeviceHandle メンバーで、このハンドルを以前に取得しました。
[out] DisplayInfo
KMD によって割り当てられる DXGK_DISPLAY_INFORMATION 構造体へのポインター。 DxgkCbAcquirePostDisplayOwnership
戻り値
DxgkCbAcquirePostDisplayOwnership
備考
DXGKCB_ACQUIRE_POST_DISPLAY_OWNERSHIP を呼び出すと、特にシステムの起動時、デバイス プラグイン イベント、休止状態からの再開後に、現在または最新の表示構成に基づいて、ドライバーが表示設定を正しく初期化できます。
使用できる色の形式
DisplayInfo->ColorFormat メンバーには、次の 2 つの D3DDDIFORMAT 形式のビットごとの OR の組み合わせを含める必要があります。
- D3DDDIFMT_X8R8G8B8
- D3DDDIFMT_A8R8G8B8
OS が D3DDDIFMT_R8G8B8 形式を報告する場合、KMD はそれを無視する必要があります。
ビデオ 表示ターゲットの初期化
DisplayInfo->TargetId メンバーが初期化されていない可能性があります。 この場合、ビデオ存在ターゲットの識別子は D3DDDI_ID_UNINITIALIZED。 通常、この状況はシステムの起動後に発生します。
同様に、DisplayInfo->AcpiId メンバーが初期化されていない可能性があります。 この場合、AcpiId
ドライバーからドライバーへのアップグレードの場合、前のドライバーはターゲット識別子と ACPI 識別子を指定します。
実装ガイドライン
WDDM 1.2 以降、KMD は DxgkCbAcquirePostDisplayOwnership
DxgkCbAcquirePostDisplayOwnership 関数のエントリ ポイントは、DXGKRNL_INTERFACE 構造体の一部です。 この構造体は、ドライバーの DxgkDdiStartDevice 関数が呼び出されたときに、DxgkInterface パラメーターを使用してドライバーに返されます。
KMD は、必要に応じて DxgkCbAcquirePostDisplayOwnership
呼び出すことができます。 ただし、以前にドライバーが DxgkCbAcquirePostDisplayOwnershipを 呼び出さなかった場合でも、OS は KMD の 関数を呼び出す可能性があり、ドライバーはその呼び出しを適切に処理する必要があります。 ドライバーの DxgkDdiStopDeviceAndReleasePostDisplayOwnership 関数が正常に完了しない場合、OS はドライバーの DxgkDdiStopDevice 関数を呼び出します。DxgkDdiStopDeviceAndReleasePostDisplayOwnership KMD は、プラグ アンド プレイ (PnP) イベントに応答してデバイスが起動された場合、dxgkCbAcquirePostDisplayOwnership を呼び
出すことができます。 この場合、ドライバーは、 関数の呼び出しのコンテキスト内から dxgkCbAcquirePostDisplayOwnershipDxgkDdiStartDevice 呼び出す必要があります。 デバイスが休止状態
後に電源状態 を呼び出すことができます。 この場合、ドライバーは、DxgkDdiSetPowerState 関数の呼び出しのコンテキスト内から dxgkCbAcquirePostDisplayOwnership を呼び出す必要があります。PowerDeviceD0 を再開した場合、KMD は DxgkCbAcquirePostDisplayOwnership KMD は、少なくとも Windows 8 を実行している場合にのみ、DxgkCbAcquirePostDisplayOwnership 関数を呼び出す必要があります。 KMD は RtlGetVersion
呼び出して、OS のバージョンを確認できます。 DxgkCbAcquirePostDisplayOwnership
、 Width メンバーが 0 に設定された 構造体を返すことができます。 この値は、現在の表示デバイスが POST 操作ができないか、OS に現在の POST デバイスの現在の表示情報がないことを示します。DXGK_DISPLAY_INFORMATION
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 (WDDM 1.2) |
サポートされる最小サーバー | Windows Server 2012 |
ターゲット プラットフォーム の |
デスクトップ |
ヘッダー | dispmprt.h (Dispmprt.h を含む) |
IRQL | <= APC_LEVEL |
関連項目
DxgkDdiSetPowerState の
DxgkDdiStartDevice の
DxgkDdiStopDeviceAndReleasePostDisplayOwnership
RtlGetVersion を