Freigeben über


DXGKDDI_OPM_GET_INFORMATION Rückruffunktion (dispmprt.h)

Die DXGKDDI_OPM_GET_INFORMATION-Funktion ruft Informationen aus dem angegebenen geschützten Ausgabeobjekt ab.

Syntax

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
)
{...}

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 eine OPM-Semantik aufweisen.

[in] Parameters

Ein Zeiger auf eine DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS-Struktur , die Parameter enthält, die zum Abrufen von Informationen aus einem geschützten Ausgabeobjekt verwendet werden, dessen Handle im ProtectedOutputHandle-Parameter angegeben ist. DXGKDDI_OPM_GET_INFORMATION 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 Informationen des geschützten Ausgabeobjekts empfängt, wenn DXGKDDI_OPM_GET_INFORMATION erfolgreich zurückgegeben wird.

Wenn DXGKDDI_OPM_GET_INFORMATION fehlschlägt, ist 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 nur dann DXGKDDI_OPM_GET_INFORMATION aufrufen, wenn die Ausgabe über OPM-Semantik verfügt.

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

DXGKDDI_OPM_GET_INFORMATION ruft eine der folgenden Arten von Informationen ab:

  • Der Connectortyp der geschützten Ausgabe.
  • Die Inhaltsschutztypen, die von der geschützten Ausgabe unterstützt werden. Geschützte Ausgaben können derzeit ACP, CGMS-A und HDCP unterstützen.
  • Die aktuelle virtuelle Schutzebene der geschützten Ausgabe für einen bestimmten Schutztyp.
  • Die tatsächliche Schutzebene der physischen Ausgabe für einen bestimmten Schutztyp.
  • Die Version des HDCP-SRM, die derzeit von der geschützten Ausgabe verwendet wird.
  • Der Typ des Erweiterungsbuss, den die Grafikkarte verwendet, und wie der Grafikkarte mit der Nordbrücke des Computers verbunden ist.
  • Das Format der Bilder, die die Grafikkarte von der physischen Ausgabe an den Monitor sendet.

Der guidInformation-Member der DXGKMDT_OPM_GET_INFO_PARAMETERS-Struktur , auf die der Parameterparameter verweist, sollte niemals die DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION und DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING GUIDs enthalten, da nur COPP-Anwendungen diese GUIDs angeben sollten.

Die ersten vier Bytes des abParameters-Elements von DXGKMDT_OPM_GET_INFO_PARAMETERS sollten nie den schutztyp DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP enthalten, wenn die DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL oder DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL GUID im guidInformation-Member von DXGKMDT_OPM_GET_INFO_PARAMETERS angegeben ist, da nur COPP-Anwendungen diesen Schutztyp verwenden.

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

  1. Stellen Sie sicher, dass das geschützte Ausgabehandle, das an den ProtectedOutputHandle-Parameter von DXGKDDI_OPM_GET_INFORMATION übergeben wurde, über OPM-Semantik verfügt.

  2. Stellen Sie sicher, dass die Informationen im Parameterparameter mit dem Signaturschlüssel des geschützten Ausgabeobjekts signiert wurden. Der Signaturschlüssel des geschützten Ausgabeobjekts wurde zuvor festgelegt, wenn die DxgkDdiOPMSetSigningKeyAndSequenceNumbers-Funktion aufgerufen wurde. Die AES-Blockverschlüsselung (Advanced Encryption Standard) und der OMAC-1-Signaturalgorithmus sollten verwendet werden, um die Signatur zu überprüfen. Informationen zu AES finden Sie auf der RSA Laboratories-Website . Informationen zu OMAC-1 finden Sie auf der Referenzseite DXGKMDT_OPM_OMAC .

  3. Rufen Sie die angeforderten Informationen ab.

  4. Kopieren Sie die Zufallszahl, die der rnRandomNumber-Member von DXGKMDT_OPM_GET_INFO_PARAMETERS angibt, in das element rnRandomNumber in der DXGKMDT_OPM_STANDARD_INFORMATION- oder DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT-Struktur. Die verwendete Struktur hängt vom Typ der Vom Aufrufer angeforderten Informationen abRequestedInformation-Member der DXGKMDT_OPM_REQUESTED_INFORMATION-Struktur abRequestedInformation ab, auf die der RequestedInformation-Parameter verweist.

  5. 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.

Zunächst ruft das DirectX-Grafikkernsubsystem DXGKDDI_OPM_GET_INFORMATION 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 DXGKDDI_OPM_GET_INFORMATION auf, ohne auch DxgkDdiOPMConfigureProtectedOutput aufzurufen.

DXGKDDI_OPM_GET_INFORMATION sollte als ausserierbar gemacht werden.

Anforderungen

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

Weitere Informationen

DxgkDdiAddDevice

DxgkDdiOPMConfigureProtectedOutput

DxgkDdiOPMCreateProtectedOutput

DXGKDDI_OPM_GET_INFORMATION

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers

DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS

DXGKMDT_OPM_OMAC

DXGKMDT_OPM_REQUESTED_INFORMATION