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