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 結構的指標。 呼叫端會初始化 DescriptorLength 和 DescriptorBuffer 成員。 如果子裝置的類型為 TypeVideoOutput,則呼叫端也會初始化 描述項Offset 成員。 傳回時,由 描述元Buffer 所指向的呼叫端配置緩衝區, 成員會收到描述元。
傳回值
DxgkDdiQueryDeviceDescriptor 會傳回下列其中一個值:
傳回碼 | 描述 |
---|---|
STATUS_SUCCESS | 函式已成功傳回裝置描述元。 |
STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED | ChildUid 所識別的 (onboard) 子裝置不支援描述元。 |
STATUS_MONITOR_NO_DESCRIPTOR | ChildUid 所識別的子裝置會連線到不支援EDID描述元的監視器。 |
STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA | ChildUid 所識別的子裝置會連線到支援EDID描述元的監視器,但描述元沒有DeviceDescriptor的 DescriptorOffset 和 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 |
目標平臺 | 桌面 |
標頭 | dispmprt.h |
IRQL | PASSIVE_LEVEL |