DXGKDDI_OPM_GET_INFORMATION回呼函式 (dispmprt.h)
DXGKDDI_OPM_GET_INFORMATION函式會從指定的受保護輸出物件擷取資訊。
語法
DXGKDDI_OPM_GET_INFORMATION DxgkddiOpmGetInformation;
NTSTATUS DxgkddiOpmGetInformation(
[in] PVOID MiniportDeviceContext,
[in] HANDLE ProtectedOutputHandle,
[in] const DXGKMDT_OPM_GET_INFO_PARAMETERS *Parameters,
[out] PDXGKMDT_OPM_REQUESTED_INFORMATION RequestedInformation
)
{...}
參數
[in] MiniportDeviceContext
與顯示配接器相關聯的內容區塊句柄。 先前,顯示迷你埠驅動程式的 DxgkDdiAddDevice 函式會提供此句柄給 DirectX 圖形核心子系統。
[in] ProtectedOutputHandle
受保護輸出物件的句柄。 DxgkDdiOPMCreateProtectedOutput 函式會建立受保護的輸出物件,並將句柄傳回給 物件。 對應至此句柄的受保護輸出對象應該具有 OPM 語意。
[in] Parameters
DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 結構的指標,其中包含用來從受保護輸出物件擷取資訊的參數,其句柄是在 ProtectedOutputHandle 參數中指定。 DXGKDDI_OPM_GET_INFORMATION 判斷參數是否包含間接建立受保護輸出對象的應用程式的有效要求。 如需詳細資訊,請參閱<備註>一節。
[out] RequestedInformation
DXGKDDI_OPM_GET_INFORMATION成功傳回時,接收受保護輸出對象資訊的DXGKMDT_OPM_REQUESTED_INFORMATION結構的指標。
如果 DXGKDDI_OPM_GET_INFORMATION 失敗, RequestedInformation 所指向的值會保持不變。
傳回值
DxgkDdiOPMGetCOPPCompatibleInformation 會傳回STATUS_SUCCESS或 Ntstatus.h 錯誤碼。
備註
只有當輸出具有 OPM 語意時,DirectX 圖形核心子系統才應該呼叫 DXGKDDI_OPM_GET_INFORMATION 。
DirectX 圖形核心子系統在呼叫 DXGKDDI_OPM_GET_INFORMATION 時,將受保護的輸出句柄傳遞至 ProtectedOutputHandle 參數之前,DirectX 圖形核心子系統一律會將受保護的輸出句柄傳遞至 DxgkDdiOPMSetSigningKeyAndSequenceNumbers 和 DxgkDdiOPMGetRandomNumber 函式。
DXGKDDI_OPM_GET_INFORMATION 擷取下列其中一種資訊類型:
- 受保護的輸出連接器類型。
- 受保護輸出所支援的內容保護類型。 受保護的輸出目前可支援 ACP、CGMS-A 和 HDCP。
- 受保護輸出針對特定保護類型的目前虛擬保護層級。
- 特定保護類型的實體輸出實際保護等級。
- 受保護輸出目前使用的HDCP SRM 版本。
- 圖形配接器所使用的擴充總線類型,以及圖形適配卡如何連線到計算機的北橋。
- 圖形配接器從實體輸出傳送至監視器的影像格式。
參數所指向之DXGKMDT_OPM_GET_INFO_PARAMETERS結構的 guidInformation 成員絕不應該包含DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION和DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING GUID,因為只有 COPP 應用程式應該指定這些 GUID。
DXGKMDT_OPM_GET_INFO_PARAMETERS abParameters 成員的前 4 個 位元組,在guidInformationDXGKMDT_OPM_GET_INFO_PARAMETERS 成員中指定了 DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL 或 DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL GUID 時,應該永遠不會包含DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP保護類型,因為只有 COPP 應用程式會使用此保護類型。
呼叫 驅動程式DXGKDDI_OPM_GET_INFORMATION 函式時,驅動程式必須執行下列順序。
確認傳遞至 DXGKDDI_OPM_GET_INFORMATION ProtectedOutputHandle 參數的受保護輸出句柄具有 OPM 語意。
確認 Parameters 參數中的資訊已使用受保護的輸出物件的簽署密鑰簽署。 呼叫 DxgkDdiOPMSetSigningKeyAndSequenceNumbers 函式時,先前已設定受保護的輸出對象簽署密鑰。 進階加密標準 (AES) 區塊加密和 OMAC-1 簽署演算法應該用來驗證簽章。 如需 AES 的相關信息,請參閱 RSA 一文 網站。 如需 OMAC-1 的相關信息,請參閱 DXGKMDT_OPM_OMAC 參考頁面。
擷取要求的資訊。
將 DXGKMDT_OPM_GET_INFO_PARAMETERS rnRandomNumber 成員指定的隨機數複製到 DXGKMDT_OPM_STANDARD_INFORMATION 或 DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT 結構中的 rnRandomNumber 成員。 所使用的結構取決於呼叫端所要求的信息類型,而且是在 RequestedInformation 參數指向之DXGKMDT_OPM_REQUESTED_INFORMATION結構的 abRequestedInformation 成員中設定。
簽署DXGKMDT_OPM_REQUESTED_INFORMATION結構,並將簽章放在 DXGKMDT_OPM_REQUESTED_INFORMATION 的 omac 成員中。 AES 區塊加密和 OMAC-1 簽署演算法應該用來簽署結構。
一開始,DirectX 圖形核心子系統會 呼叫 DXGKDDI_OPM_GET_INFORMATION 以擷取輸出的相關信息,然後呼叫 DxgkDdiOPMConfigureProtectedOutput 一或多次來設定輸出。 接著,DirectX 圖形核心子系統會呼叫 DXGKDDI_OPM_GET_INFORMATION ,而不需同時呼叫 DxgkDdiOPMConfigureProtectedOutput。
DXGKDDI_OPM_GET_INFORMATION 應該可分頁。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | dispmprt.h (包括 Dispmprt.h) |
IRQL | PASSIVE_LEVEL (请参阅一节) |
另請參閱
DxgkDdiOPMConfigureProtectedOutput
DxgkDdiOPMCreateProtectedOutput
DxgkDdiOPMSetSigningKeyAndSequenceNumbers