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.
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.
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 .
Rufen Sie die angeforderten Informationen ab.
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.
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
DxgkDdiOPMConfigureProtectedOutput
DxgkDdiOPMCreateProtectedOutput
DxgkDdiOPMSetSigningKeyAndSequenceNumbers