DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION funzione di callback (dispmprt.h)

La funzione DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION recupera informazioni compatibili con il protocollo COPP (Certified Output Protection Protocol) dall'oggetto di output protetto specificato.

Sintassi

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

Parametri

[in] MiniportDeviceContext

Handle a un blocco di contesto associato a una scheda di visualizzazione. In precedenza, la funzione DxgkDdiAddDevice del driver del miniport visualizzato ha fornito questo handle al sottosistema del kernel grafico DirectX.

[in] ProtectedOutputHandle

Handle in un oggetto di output protetto. La funzione DxgkDdiOPMCreateProtectedOutput crea l'oggetto output protetto e restituisce l'handle all'oggetto . L'oggetto output protetto che corrisponde a questo handle deve avere semantica COPP.

[in] Parameters

Puntatore a una struttura DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS contenente il tipo di informazioni compatibili con COPP da recuperare dall'oggetto di output protetto il cui handle è specificato nel parametro ProtectedOutputHandle . DxgkDdiOPMGetCOPPCompatibleInformation determina se i parametri contengono una richiesta valida dall'applicazione che ha creato indirettamente l'oggetto di output protetto. Per altre informazioni, vedere la sezione Osservazioni.

[out] RequestedInformation

Puntatore a una struttura DXGKMDT_OPM_REQUESTED_INFORMATION che riceve le informazioni compatibili con COPP dell'oggetto di output protetto se DxgkDdiOPMGetCOPPCompatibleInformation restituisce correttamente.

Se DxgkDdiOPMGetCOPPCompatibleInformation ha esito negativo, il valore a cui punta RequestedInformation è invariato .

Valore restituito

DxgkDdiOPMGetCOPPCompatibleInformation restituisce STATUS_SUCCESS o un codice di errore Ntstatus.h .

Commenti

Il sottosistema del kernel della grafica DirectX deve chiamare DxgkDdiOPMGetCOPPCompatibleInformation solo se l'output ha semantica COPP.

Prima che il sottosistema del kernel di grafica DirectX passi l'handle di output protetto al parametro ProtectedOutputHandle in una chiamata a DxgkDdiOPMGetCOPPCompatibleInformation, il sottosistema del kernel della grafica DirectX passa sempre l'handle di output protetto alle funzioni DxgkDdiOPMSetSigningKeyAndSequenceNumbers e DxgkDdiOPMGetRandomNumber .

Di seguito sono riportati alcuni fatti relativi alla funzione DxgkDdiOPMGetCOPPCompatibleInformation e che non riguardano la funzione DxgkDdiOPMGetInformation :

  • Il sottosistema kernel della grafica DirectX può passare un handle a un output protetto solo con semantica COPP.

  • Struttura DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS a cui punta il parametro Parameters non è firmato.

  • Il sottosistema del kernel grafico DirectX può passare i GUID DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING e DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION nel membro guidInformation di DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • Il sottosistema del kernel della grafica DirectX non può passare il GUID DXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION nel membro guidInformation di DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • Il sottosistema del kernel grafico DirectX può specificare DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP nei primi 4 byte del membro abParameters di DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS insieme al GUID DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL o DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL GUID nel membro guidInformation di DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • Il sottosistema del kernel grafico DirectX non può specificare DXGKMDT_OPM_PROTECTION_TYPE_HDCP nei primi 4 byte del membro abParameters di DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS insieme al GUID DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL o DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL GUID nel membro guidInformation di DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

Il driver deve eseguire la sequenza seguente quando viene chiamata la funzione DxgkDdiOPMGetCOPPCompatibleInformation .

  1. Verificare che l'handle di output protetto passato al parametro ProtectedOutputHandle di DxgkDdiOPMGetCOPPCompatibleInformation abbia semantica COPP.

  2. Recuperare le informazioni richieste.

  3. Copiare il numero casuale specificato dal membro rnRandomNumber di DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS al membro rnRandomNumber della struttura DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING o DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION. La struttura usata dipende dal tipo di informazioni richieste dal chiamante. La struttura è impostata nel membro abRequestedInformation della struttura DXGKMDT_OPM_REQUESTED_INFORMATION a cui punta il parametro RequestedInformation .

  4. Firmare la struttura DXGKMDT_OPM_REQUESTED_INFORMATION e inserire la firma nel membro omac di DXGKMDT_OPM_REQUESTED_INFORMATION. La crittografia a blocchi AES e l'algoritmo di firma OMAC-1 devono essere usati per firmare la struttura. Per informazioni su AES, vedere il sito Web RSA Labss . Per informazioni su OMAC-1, vedere la pagina di riferimento DXGKMDT_OPM_OMAC .

Inizialmente, il sottosistema del kernel della grafica DirectX chiama DxgkDdiOPMGetCOPPCompatibleInformation per recuperare informazioni sull'output e quindi chiama DxgkDdiOPMConfigureProtectedOutput una o più volte per configurare l'output. Successivamente, il sottosistema kernel di grafica DirectX chiama DxgkDdiOPMGetCOPPCompatibleInformation senza chiamare anche DxgkDdiOPMConfigureProtectedOutput.

DxgkDdiOPMGetCOPPCompatibleInformation deve essere reso paginabile.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione dispmprt.h (include Dispmprt.h)
IRQL PASSIVE_LEVEL (vedere la sezione Osservazioni)

Vedi anche

DxgkDdiAddDevice

DxgkDdiOPMConfigureProtectedOutput

DxgkDdiOPMCreateProtectedOutput

DxgkDdiOPMGetInformation

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers

DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS

DXGKMDT_OPM_OMAC

DXGKMDT_OPM_REQUESTED_INFORMATION