コールバック関数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
オペレーティング システムが D3DDDIFMT_R8G8B8 形式を報告する場合、ディスプレイ ミニポート ドライバーはそれを無視する必要があります。

ビデオの現在のターゲットの初期化

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 を呼び出すことができます。 この場合、ドライバーは DxgkCbAcquirePostDisplayOwnershipDxgkDdiStartDevice 関数の呼び出しのコンテキスト内から呼び出す必要があります。
  • デバイスが休止状態の後に PowerDeviceD0 電源状態を再開した場合、ディスプレイ ミニポート ドライバーは DxgkCbAcquirePostDisplayOwnership を呼び出すことができます。 この場合、ドライバーは DxgkCbAcquirePostDisplayOwnershipDxgkDdiSetPowerState 関数の呼び出しのコンテキスト内から呼び出す必要があります。
  • ディスプレイ ミニポート ドライバーは、ドライバーが 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

こちらもご覧ください

DXGKRNL_INTERFACE

DXGK_DISPLAY_INFORMATION

DxgkDdiSetPowerState

DxgkDdiStartDevice

DxgkDdiStopDeviceAndReleasePostDisplayOwnership

RtlGetVersion