次の方法で共有


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

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

戻り値

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

備考

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

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

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

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降で使用できます。
ターゲット プラットフォーム デスクトップ
ヘッダー dispmprt.h
IRQL PASSIVE_LEVEL

関連項目

DXGKRNL_INTERFACE

DXGK_DEVICE_INFO

DxgkCbAcquirePostDisplayOwnership する

DxgkCbGetDeviceInformation

DxgkCbMapMemory

DxgkDdiAddDevice

DxgkDdiStopDevice