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 圖形核心子系統一律會將受保護的輸出句柄傳遞至 DxgkDdiOPMSetSigningKeyAndSequenceNumbersDxgkDdiOPMGetRandomNumber 函式。

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 函式時,驅動程式必須執行下列順序。

  1. 確認傳遞至 DXGKDDI_OPM_GET_INFORMATION ProtectedOutputHandle 參數的受保護輸出句柄具有 OPM 語意。

  2. 確認 Parameters 參數中的資訊已使用受保護的輸出物件的簽署密鑰簽署。 呼叫 DxgkDdiOPMSetSigningKeyAndSequenceNumbers 函式時,先前已設定受保護的輸出對象簽署密鑰。 進階加密標準 (AES) 區塊加密和 OMAC-1 簽署演算法應該用來驗證簽章。 如需 AES 的相關信息,請參閱 RSA 一文 網站。 如需 OMAC-1 的相關信息,請參閱 DXGKMDT_OPM_OMAC 參考頁面。

  3. 擷取要求的資訊。

  4. DXGKMDT_OPM_GET_INFO_PARAMETERS rnRandomNumber 成員指定的隨機數複製到 DXGKMDT_OPM_STANDARD_INFORMATION 或 DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT 結構中的 rnRandomNumber 成員。 所使用的結構取決於呼叫端所要求的信息類型,而且是在 RequestedInformation 參數指向之DXGKMDT_OPM_REQUESTED_INFORMATION結構的 abRequestedInformation 成員中設定。

  5. 簽署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 (请参阅一节)

另請參閱

DxgkDdiAddDevice

DxgkDdiOPMConfigureProtectedOutput

DxgkDdiOPMCreateProtectedOutput

DXGKDDI_OPM_GET_INFORMATION

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers

DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS

DXGKMDT_OPM_OMAC

DXGKMDT_OPM_REQUESTED_INFORMATION