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

DXGKRNL_INTERFACE結構的指標,其中包含 DirectX 圖形核心子系統所實作之函式的指標,顯示迷你埠驅動程式可以呼叫。

[out] NumberOfVideoPresentSources

ULONG 變數的指標,可接收顯示器配接器所支持的視訊簡訊簡訊簡報來源數目。 如需影片簡報來源的詳細資訊,請參閱多個監視器和視訊簡訊。

[out] NumberOfChildren

ULONG 變數的指標,可接收MiniportDeviceContext所代表之顯示器配接器子系的裝置總數。 此計數必須包含潛在的子裝置,以及目前存在的子裝置。 例如,如果停駐可攜式計算機會提供額外的視訊輸出,則不論可攜式計算機目前是否停駐,都必須計算這些視訊輸出。 如需子裝置的詳細資訊,請參閱顯示配接 器的子裝置

傳回值

如果成功,DxgkDdiStartDevice 會傳回 STATUS_SUCCESS ;否則,它會傳回 Ntstatus.h 中定義的其中一個錯誤碼。

備註

DxgkDdiStartDevice 函式必須執行下列動作:

  • 儲存傳遞至 DxgkInterface 參數之 DXGKRNL_INTERFACE 結構所提供的函式指標。 同時儲存DXGKRNL_INTERFACE結構的DeviceHandle成員;您需要該句柄,才能回呼 DirectX 圖形核心子系統。
  • 配置 DXGK_DEVICE_INFO 結構,並呼叫 DxgkCbGetDeviceInformation 以填入該結構的成員,其中包括登錄路徑、PDO,以及 MiniportDeviceContext 所代表之顯示適配卡的已翻譯資源清單。 將選取的成員儲存 (,顯示迷你埠驅動程式稍後需要在MiniportDeviceContext所代表的內容區塊中) DXGK_DEVICE_INFO結構。
  • 藉由呼叫 DxgkCbMapMemory 函式,將記憶體資源對應到系統空間。
  • 使用準備硬體以接收 I/O 要求所需的任何狀態,初始化 MiniportDeviceContext 所代表的內容區塊。
  • NumberOfVideoPresentSources 設定為 MiniportDeviceContext 所代表的顯示配接器所支援的視訊簡訊簡訊簡報來源數目。
  • NumberOfChildren 設定為 (或可能成為 MiniportDeviceContext 所代表顯示器適配卡的) 子系。
  • 針對 MiniportDeviceContext 所代表的顯示配接器啟用中斷。
從 Windows Display Driver Model (WDDM) 1.2 開始,display miniport 驅動程式會呼叫 DxgkCbAcquirePostDisplayOwnership 函式,以取得韌體和系統載入器先前設定的顯示模式相關信息。 如果 DxgkCbAcquirePostDisplayOwnership 傳回 STATUS_SUCCESS,驅動程式會根據透過 DisplayInfo 參數傳回的顯示模式資訊,判斷它是否必須重新初始化顯示。 否則,驅動程式不應該假設裝置上目前已啟用任何特定的顯示模式,而且應該初始化顯示器。

DxgkDdiStartDevice 函式應該可分頁。

規格需求

需求
最低支援的用戶端 從 Windows Vista 開始提供。
目標平台 桌面
標頭 dispmprt.h
IRQL PASSIVE_LEVEL

另請參閱

DXGKRNL_INTERFACE

DXGK_DEVICE_INFO

DxgkCbAcquirePostDisplayOwnership

DxgkCbGetDeviceInformation

DxgkCbMapMemory

DxgkDdiAddDevice

DxgkDdiStopDevice