DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION Rückruffunktion (dispmprt.h)

Die funktion DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION ruft Informationen ab, die mit dem Certified Output Protection Protocol (COPP) kompatibel sind, aus dem angegebenen geschützten Ausgabeobjekt.

Syntax

DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION DxgkddiOpmGetCoppCompatibleInformation;

NTSTATUS DxgkddiOpmGetCoppCompatibleInformation(
  [in]  PVOID MiniportDeviceContext,
  [in]  HANDLE ProtectedOutputHandle,
  [in]  const DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS *Parameters,
  [out] PDXGKMDT_OPM_REQUESTED_INFORMATION RequestedInformation
)
{...}

Parameter

[in] MiniportDeviceContext

Ein Handle für einen Kontextblock, der einer Grafikkarte zugeordnet ist. Zuvor hat die DxgkDdiAddDevice-Funktion des Anzeigeminiporttreibers dieses Handle für das DirectX-Grafikkernsubsystem bereitgestellt.

[in] ProtectedOutputHandle

Das Handle für ein geschütztes Ausgabeobjekt. Die DxgkDdiOPMCreateProtectedOutput-Funktion erstellt das geschützte Ausgabeobjekt und gibt das Handle an das Objekt zurück. Das geschützte Ausgabeobjekt, das diesem Handle entspricht, sollte über COPP-Semantik verfügen.

[in] Parameters

Ein Zeiger auf eine DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS-Struktur , die den Typ der COPP-kompatiblen Informationen enthält, die aus dem geschützten Ausgabeobjekt abgerufen werden sollen, dessen Handle im ProtectedOutputHandle-Parameter angegeben ist. DxgkDdiOPMGetCOPPCompatibleInformation bestimmt, ob die Parameter eine gültige Anforderung von der Anwendung enthalten, die indirekt das geschützte Ausgabeobjekt erstellt hat. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.

[out] RequestedInformation

Ein Zeiger auf eine DXGKMDT_OPM_REQUESTED_INFORMATION-Struktur , die die COPP-kompatiblen Informationen des geschützten Ausgabeobjekts empfängt, wenn DxgkDdiOPMGetCOPPCompatibleInformation erfolgreich zurückgibt.

Wenn DxgkDdiOPMGetCOPPCompatibleInformation fehlschlägt, bleibt der Wert, auf den RequestedInformation verweist, unverändert.

Rückgabewert

DxgkDdiOPMGetCOPPCompatibleInformation gibt STATUS_SUCCESS oder einen Ntstatus.h-Fehlercode zurück.

Hinweise

Das DirectX-Grafikkernsubsystem sollte DxgkDdiOPMGetCOPPCompatibleInformation nur aufrufen, wenn die Ausgabe über COPP-Semantik verfügt.

Bevor das DirectX-Grafikkernsubsystem das geschützte Ausgabehandle in einem Aufruf von DxgkDdiOPMGetCOPPCompatibleInformation an den ProtectedOutputHandle-Parameter übergibt, übergibt das DirectX-Grafikkernsubsystem immer das geschützte Ausgabehandle an die Funktionen DxgkDdiOPMSetSigningKeyAndSequenceNumbers und DxgkDdiOPMGetRandomNumber.

Im Folgenden sind einige Fakten aufgeführt, die sich auf DxgkDdiOPMGetCOPPCompatibleInformation beziehen und die sich nicht auf die DxgkDdiOPMGetInformation-Funktion beziehen:

  • Das DirectX-Grafikkernsubsystem kann ein Handle nur mit COPP-Semantik an eine geschützte Ausgabe übergeben.

  • Die DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS Struktur, auf die der Parameterparameter verweist, ist nicht signiert.

  • Das DirectX-Grafikkernsubsystem kann die DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING und DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION GUIDs im guidInformation-Member von DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS übergeben.

  • Das DirectX-Grafikkernsubsystem kann die DXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION GUID im guidInformation-Member von DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS nicht übergeben.

  • Das DirectX-Grafikkernsubsystem kann DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP in den ersten 4 Bytes des abParameters-Elements von DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS zusammen mit der DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL oder DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL GUID im guidInformation-Member von DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS angeben.

  • Das DirectX-Grafikkernsubsystem kann nicht DXGKMDT_OPM_PROTECTION_TYPE_HDCP in den ersten vier Bytes des abParameters-Elements von DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS zusammen mit der DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL oder DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL GUID im guidInformation-Member von DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS angeben.

Der Treiber muss die folgende Sequenz ausführen, wenn seine DxgkDdiOPMGetCOPPCompatibleInformation-Funktion aufgerufen wird.

  1. Überprüfen Sie, ob das geschützte Ausgabehandle, das an den ProtectedOutputHandle-Parameter von DxgkDdiOPMGetCOPPCompatibleInformation übergeben wurde, über COPP-Semantik verfügt.

  2. Rufen Sie die angeforderten Informationen ab.

  3. Kopieren Sie die Zufallszahl, die der rnRandomNumber-Member von DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS angibt, in den rnRandomNumber-Member der DXGKMDT_OPM_STANDARD_INFORMATION-, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT-, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING- oder DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION-Struktur. Die verwendete Struktur hängt vom Typ der Vom Aufrufer angeforderten Informationen ab. Die -Struktur wird im abRequestedInformation-Member der DXGKMDT_OPM_REQUESTED_INFORMATION-Struktur festgelegt, auf die der RequestedInformation-Parameter verweist.

  4. Signieren Sie die DXGKMDT_OPM_REQUESTED_INFORMATION-Struktur , und platzieren Sie die Signatur im omac-Element von DXGKMDT_OPM_REQUESTED_INFORMATION. Die AES-Blockchiffre und der OMAC-1-Signaturalgorithmus sollten verwendet werden, um die Struktur zu signieren. Informationen zu AES finden Sie auf der RSA Laboratories-Website . Informationen zu OMAC-1 finden Sie auf der Referenzseite DXGKMDT_OPM_OMAC .

Zunächst ruft das DirectX-Grafikkernsubsystem DxgkDdiOPMGetCOPPCompatibleInformation auf, um Informationen zur Ausgabe abzurufen, und ruft dann dxgkDdiOPMConfigureProtectedOutput ein oder mehrmals auf, um die Ausgabe zu konfigurieren. Anschließend ruft das DirectX-Grafikkernsubsystem DxgkDdiOPMGetCOPPCompatibleInformation auf , ohne auch DxgkDdiOPMConfigureProtectedOutput aufzurufen.

DxgkDdiOPMGetCOPPCompatibleInformation sollte ausgelagert werden.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile dispmprt.h (include Dispmprt.h)
IRQL PASSIVE_LEVEL (siehe Abschnitt "Hinweise")

Weitere Informationen

DxgkDdiAddDevice

DxgkDdiOPMConfigureProtectedOutput

DxgkDdiOPMCreateProtectedOutput

DxgkDdiOPMGetInformation

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers

DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS

DXGKMDT_OPM_OMAC

DXGKMDT_OPM_REQUESTED_INFORMATION