Condividi tramite


Recupero di informazioni COPP-Compatible sull'output protetto

Il driver miniport di visualizzazione può ricevere richieste per recuperare informazioni compatibili con COPP sull'output protetto associato al connettore di output fisico di una scheda grafica. La funzione DxgkDdiOPMGetCOPPCompatibleInformation del driver miniport di visualizzazione viene passato un puntatore a una struttura DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS nel parametro Parameters che contiene la richiesta di informazioni. DxgkDdiOPMGetCOPPCompatibleInformation scrive le informazioni necessarie nella struttura DXGKMDT_OPM_REQUESTED_INFORMATION a cui punta il parametro RequestedInformation . I membri guidInformation e abParameters di DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS specificano la richiesta di informazioni. A seconda della richiesta di informazioni, il driver miniport di visualizzazione deve popolare i membri del DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALINGo DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION struttura con le informazioni necessarie e puntare il membro abRequestedInformation di DXGKMDT_OPM_REQUESTED_INFORMATION a tale struttura. Dopo che il driver specifica i membri cbRequestedInformationSize (ad esempio, sizeof (DXGKMDT_OPM_STANDARD_INFORMATION)) e abRequestedInformation di DXGKMDT_OPM_REQUESTED_INFORMATION, il driver deve calcolare il codice di autenticazione del messaggio in modalità CBC (One-Key Cipher Block Chaining) per i dati in DXGKMDT_OPM_REQUESTED_INFORMATION e deve impostare questo OMAC nel membro omac di DXGKMDT_OPM_REQUESTED_INFORMATION. Per altre informazioni sul calcolo di OMAC, vedere l'algoritmo OMAC-1.

Nota Prima che DxgkDdiOPMGetCOPPCompatibleInformation restituisca, il driver miniport di visualizzazione deve verificare che il numero di sequenza specificato nel membro ulSequenceNumber di DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS corrisponda al numero di sequenza attualmente archiviato dal driver. Il driver deve quindi incrementare il numero di sequenza archiviato.

Nota Il driver deve restituire un numero casuale a 128 bit sicuro nel membro rnRandomNumber di DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING o DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION. Il numero casuale è stato generato dall'applicazione di invio ed è stato fornito nel membro rnRandomNumber di DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

Il driver restituisce le informazioni seguenti per la richiesta indicata:

  • Per DXGKMDT_OPM_GET_SUPPORTED_PROTECTION_TYPES impostato nel membro guidInformation e non definito nel membro abParameters di DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS, il driver indica i tipi di meccanismi di protezione disponibili. Per indicare i tipi di protezione disponibili, il driver restituisce una combinazione OR bit per bit valida dei valori dell'enumerazione DXGKMDT_OPM_PROTECTION_TYPE nel membro ulInformation di DXGKMDT_OPM_STANDARD_INFORMATION. I valori DXGKMDT_OPM_PROTECTION_TYPE_ACP, DXGKMDT_OPM_PROTECTION_TYPE_CGMSA e DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP sono validi.

  • Per DXGKMDT_OPM_GET_CONNECTOR_TYPE impostato in guidInformation e non definito in abParameters, il driver indica il tipo di connettore. Per indicare il tipo di connettore, il driver restituisce una combinazione OR bit per bit valida dei valori dell'enumerazione D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY nel membro ulInformation di DXGKMDT_OPM_STANDARD_INFORMATION.

  • Per DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL o DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL impostato in guidInformation e il tipo di protezione impostato in abParameters, il driver restituisce un valore a livello di protezione nel membro ulInformation di DXGKMDT_OPM_STANDARD_INFORMATION. Se il tipo di protezione è DXGKMDT_OPM_PROTECTION_TYPE_ACP, il valore a livello di protezione proviene dall'enumerazione DXGKMDT_OPM_ACP_PROTECTION_LEVEL . Se il tipo di protezione è DXGKMDT_OPM_PROTECTION_TYPE_CGMSA, il valore a livello di protezione proviene dall'enumerazione DXGKMDT_OPM_CGMSA . Se il tipo di protezione è DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP, il valore a livello di protezione proviene dall'enumerazione DXGKMDT_OPM_HDCP_PROTECTION_LEVEL .

    La richiesta DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL restituisce il livello di protezione attualmente impostato per l'output protetto. La richiesta DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL restituisce il livello di protezione attualmente impostato per il connettore fisico associato all'output protetto.

  • Per DXGKMDT_OPM_GET_ADAPTER_BUS_TYPE impostato in guidInformation e non definito in abParameters, il driver identifica il tipo del bus che connette una scheda grafica al bridge nord del chipset di una scheda madre. Per identificare il tipo del bus, il driver restituisce una combinazione OR bit per bit valida dei valori dell'enumerazione DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION nel membro ulInformation di DXGKMDT_OPM_STANDARD_INFORMATION.

    Il driver può combinare solo il valore DXGKMDT_OPM_COPP_COMPATIBLE_BUS_TYPE_INTEGRATED (0x80000000) con uno dei valori di tipo bus quando nessuno dei segnali di interfaccia tra la scheda grafica e altri sottosistemi è disponibile in un bus di espansione che usa una specifica disponibile pubblicamente e un tipo di connettore standard. Gli autobus di memoria vengono esclusi da questa definizione.

  • Per DXGKMDT_OPM_GET_ACTUAL_OUTPUT_FORMAT impostato in guidInformation e non definito in abParameters, il driver restituisce informazioni nei membri di DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT che descrivono come viene formattato il segnale che passa attraverso il connettore fisico associato all'output protetto.

  • Per DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING impostato in guidInformation e non definito in abParameters, il driver restituisce informazioni nei membri di DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING che descrivono come viene protetto il segnale che passa attraverso il connettore fisico associato all'output protetto.

  • Per DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION impostato in guidInformation e non definito in abParameters, il driver restituisce informazioni nei membri di DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION che contengono informazioni hdCP (High-bandwidth Digital Content Protection).