DXGKDDI_QUERY_DEVICE_DESCRIPTOR回呼函式 (dispmprt.h)

DxgkDdiQueryDeviceDescriptor 函式會針對顯示適配卡的子裝置或外部裝置傳回描述元, (通常是連接到顯示器適配卡之子裝置的監視器) 。

語法

DXGKDDI_QUERY_DEVICE_DESCRIPTOR DxgkddiQueryDeviceDescriptor;

NTSTATUS DxgkddiQueryDeviceDescriptor(
  [in]      IN_CONST_PVOID MiniportDeviceContext,
  [in]      IN_ULONG ChildUid,
  [in, out] INOUT_PDXGK_DEVICE_DESCRIPTOR DeviceDescriptor
)
{...}

參數

[in] MiniportDeviceContext

與顯示配接器相關聯的內容區塊句柄。 顯示迷你埠驅動程式的 DxgkDdiAddDevice 函式先前已將此句柄提供給 DirectX 圖形核心子系統。

[in] ChildUid

可唯一識別子裝置的整數。 顯示迷你埠驅動程式的 DxgkDdiQueryChildRelations 函式先前已將此標識元提供給顯示埠驅動程式。

[in, out] DeviceDescriptor

DXGK_DEVICE_DESCRIPTOR 結構的指標。 呼叫端會初始化 DescriptorLengthDescriptorBuffer 成員。 如果子裝置的類型為 TypeVideoOutput,呼叫端也會初始化 DescriptorOffset 成員。 傳回時, 描述元Buffer 成員所指向的呼叫端配置緩衝區會收到描述元。

傳回值

DxgkDdiQueryDeviceDescriptor 會傳回下列其中一個值:

傳回碼 描述
STATUS_SUCCESS 函式已成功傳回裝置描述元。
STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED (上線) ChildUid 所識別的子裝置不支援描述項。
STATUS_MONITOR_NO_DESCRIPTOR ChildUid 所識別的子裝置會連線到不支援EDID描述元的監視器。
STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA ChildUid 所識別的子裝置會連線到支援 EDID 描述元的監視器,但描述項沒有由 DescriptorOffset 和 DeviceDescriptor DescriptorLengthmembers 指定的 EDID 延伸模組區塊。

備註

DxgkDdiQueryDeviceDescriptor 絕對不能寫入超過 DeviceDescriptor-DescriptorLength> 所指定的位元組數目。

如果 ChildUid 識別的子裝置類型為 TypeVideoOutput,DxgkDdiQueryDeviceDescriptor 會傳回連接到輸出之監視器的延伸顯示識別數據 (EDID) 部分。 DeviceDescriptor-DescriptorOffset> 會將位元組移指定為要傳回之數據開頭的EDID。

如果 ChildUid 識別的子裝置不是視訊輸出, DxgkDdiQueryDeviceDescriptor 會傳回一般裝置描述元;也就是說,它會填入 DXGK_GENERIC_DESCRIPTOR 結構的成員。

一個子裝置可以呼叫 DxgkDdiQueryDeviceDescriptor 函式數次。 對於具有已連線監視器的子裝置,顯示埠驅動程式會在初始化期間呼叫 DxgkDdiQueryDeviceDescriptor ,以取得監視器 EDID 的第一個 128 位元組區塊。 之後,監視器類別函式驅動程式 (Monitor.sys) 呼叫 DxgkDdiQueryDeviceDescriptor ,以取得選取的部分 (,包括該相同監視器 EDID 的第一個 128 位元組區塊) 。

DxgkDdiQueryDeviceDescriptor 應設為可分頁。

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。
目標平台 桌面
標頭 dispmprt.h
IRQL PASSIVE_LEVEL

另請參閱

DXGK_CHILD_DESCRIPTOR

DXGK_DEVICE_DESCRIPTOR

DxgkDdiQueryChildRelations

DxgkDdiQueryChildStatus