次の方法で共有


DXGKDDI_START_DEVICE コールバック関数 (dispmprt.h)

DxgkDdiStartDevice 関数は、I/O 要求を受信するディスプレイ アダプターを準備します。

構文

DXGKDDI_START_DEVICE DxgkddiStartDevice;

NTSTATUS DxgkddiStartDevice(
  [in]  IN_CONST_PVOID MiniportDeviceContext,
  [in]  IN_PDXGK_START_INFO DxgkStartInfo,
  [in]  IN_PDXGKRNL_INTERFACE DxgkInterface,
  [out] OUT_PULONG NumberOfVideoPresentSources,
  [out] OUT_PULONG NumberOfChildren
)
{...}

パラメーター

[in] MiniportDeviceContext

ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 ディスプレイ ミニポート ドライバーの DxgkDdiAddDevice 関数は、以前は DirectX グラフィックス カーネル サブシステムにこのハンドルを提供しました。

[in] DxgkStartInfo

ディスプレイ ミニポート ドライバーが初期化 に必要な情報を含むDXGK_START_INFO構造体へのポインター。

[in] DxgkInterface

ディスプレイ ミニポート ドライバーが呼び出すことができる DirectX グラフィックス カーネル サブシステムによって実装される関数へのポインターを含む DXGKRNL_INTERFACE構造体への ポインター。

[out] NumberOfVideoPresentSources

ディスプレイ アダプターでサポートされているビデオ存在ソースの数を受け取る ULONG 変数へのポインター。 ビデオの現在のソースの詳細については、「 複数のモニターとビデオ の現在のネットワーク」を参照してください。

[out] NumberOfChildren

MiniportDeviceContext で表されるディスプレイ アダプターの子であるデバイスの合計数を受け取る ULONG 変数へのポインター。 この数には、潜在的な子デバイスと、現在存在する子デバイスが含まれている必要があります。 たとえば、ポータブル コンピューターをドッキングすると、追加のビデオ出力が使用可能になる場合、ポータブル コンピューターが現在ドッキングされているかどうかに関係なく、それらのビデオ出力をカウントする必要があります。 子デバイスの詳細については、「 ディスプレイ アダプターの子デバイス」を参照してください。

戻り値

DxgkDdiStartDevice は成功した場合STATUS_SUCCESS を返します。それ以外の場合は、 Ntstatus.h で定義されているエラー コードのいずれかを返します。

注釈

DxgkDdiStartDevice 関数は、次のアクションを実行する必要があります。

  • DxgkInterface パラメーターに渡されたDXGKRNL_INTERFACE構造体によって提供される関数ポインターを保存します。 また、DXGKRNL_INTERFACE構造体の DeviceHandle メンバーを保存します。DirectX グラフィックス カーネル サブシステムにコールバックするには、そのハンドルが必要です。
  • DXGK_DEVICE_INFO構造体を割り当て、DxgkCbGetDeviceInformation を呼び出して、レジストリ パス、PDO、および MiniportDeviceContext で表される表示アダプターの翻訳されたリソースの一覧を含む、その構造体のメンバーを入力します。 DXGK_DEVICE_INFO構造体の選択したメンバー (ディスプレイ ミニポート ドライバーが後で必要とするメンバー) を、MiniportDeviceContext で表されるコンテキスト ブロックに保存します。
  • DxgkCbMapMemory 関数を呼び出して、メモリ リソースをシステム空間にマップします。
  • I/O 要求を受信するハードウェアを準備するために必要な状態で 、MiniportDeviceContext で表されるコンテキスト ブロックを初期化します。
  • NumberOfVideoPresentSources 、MiniportDeviceContext で表されるディスプレイ アダプターでサポートされているビデオ存在ソースの数に設定します。
  • NumberOfChildren 、MiniportDeviceContext で表されるディスプレイ アダプターの子である (または子になる可能性がある) デバイスの数に設定します。
  • MiniportDeviceContext で表されるディスプレイ アダプターの割り込みを有効にします。
Windows ディスプレイ ドライバー モデル (WDDM) 1.2 以降では、ディスプレイ ミニポート ドライバーは DxgkCbAcquirePostDisplayOwnership 関数を呼び出して、ファームウェアとシステム ローダーによって以前に設定された表示モードに関する情報を取得します。 DxgkCbAcquirePostDisplayOwnershipSTATUS_SUCCESS で返された場合、ドライバーは DisplayInfo パラメーターで返された表示モード情報に基づいて、ディスプレイを再初期化する必要があるかどうかを判断します。 それ以外の場合、ドライバーは、特定の表示モードがデバイスで現在有効になっていると想定せず、ディスプレイを初期化する必要があります。

DxgkDdiStartDevice 関数をページング可能にする必要があります。

要件

要件
サポートされている最小のクライアント Windows Vista 以降で使用できます。
対象プラットフォーム デスクトップ
Header dispmprt.h
IRQL PASSIVE_LEVEL

こちらもご覧ください

DXGKRNL_INTERFACE

DXGK_DEVICE_INFO

DxgkCbAcquirePostDisplayOwnership

DxgkCbGetDeviceInformation

DxgkCbMapMemory

DxgkDdiAddDevice

DxgkDdiStopDevice