Condividi tramite


Recupero di informazioni su un output protetto

Il driver miniport di visualizzazione può ricevere richieste per recuperare informazioni sull'output protetto associato al connettore di output fisico di una scheda grafica. La funzione DxgkDdiOPMGetInformation del driver miniport di visualizzazione passa un puntatore a una struttura DXGKMDT_OPM_GET_INFO_PARAMETERS nel parametro Parameters che contiene la richiesta di informazioni. DxgkDdiOPMGetInformation scrive le informazioni necessarie nella struttura DXGKMDT_OPM_REQUESTED_INFORMATION a cui punta il parametro RequestedInformation . I membri guidInformation e abParameters di DXGKMDT_OPM_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_OUTPUT_ID o DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT 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 dei messaggi 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 DxgkDdiOPMGetInformation restituisca, il driver miniport di visualizzazione deve verificare che l'OMAC specificato nel membro omac di DXGKMDT_OPM_GET_INFO_PARAMETERS sia corretto. Il driver deve anche verificare che il numero di sequenza specificato nel membro ulSequenceNumber di DXGKMDT_OPM_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_OUTPUT_ID o DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT. Il numero casuale è stato generato dall'applicazione di invio ed è stato fornito nel membro rnRandomNumber di DXGKMDT_OPM_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 della struttura DXGKMDT_OPM_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_HDCP e DXGKMDT_OPM_PROTECTION_TYPE_DPCP 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_HDCP, il valore a livello di protezione proviene dall'enumerazione DXGKMDT_OPM_HDCP_PROTECTION_LEVEL . Se il tipo di protezione è DXGKMDT_OPM_PROTECTION_TYPE_DPCP, il valore a livello di protezione proviene dall'enumerazione DXGKMDT_OPM_DPCP_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 e l'implementazione del bus che connette una scheda grafica al bridge nord del chipset di una scheda madre. Per identificare il tipo e l'implementazione del bus, il driver restituisce una combinazione OR bit per bit valida di valori dell'enumerazione DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION nel membro ulInformation di DXGKMDT_OPM_STANDARD_INFORMATION.

  • Per DXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION impostato in guidInformation e non definito in abParameters, il driver restituisce un valore nel membro ulInformation di DXGKMDT_OPM_STANDARD_INFORMATION che identifica il numero di versione dell'attuale SCP (High-Bandwidth Digital Content Protection) System Renewability Message (SRM) per l'output protetto. I bit meno significativi (bit da 0 a 15) contengono il numero di versione di SRM in formato little-endian. Per altre informazioni sul numero di versione di SRM, vedere la revisione 1.1 della specifica HDCP.

  • 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_OUTPUT_ID impostato in guidInformation e non definito in abParameters, il driver restituisce informazioni nei membri di DXGKMDT_OPM_OUTPUT_ID che identifica il connettore di output.

  • Per DXGKMDT_OPM_GET_DVI_CHARACTERISTICS impostato nel membro guidInformation e non definito nel membro abParameters della struttura DXGKMDT_OPM_GET_INFO_PARAMETERS, il driver indica le caratteristiche elettriche di un connettore di output DVI (Digital Video Interface). Per indicare le caratteristiche elettriche DVI, il driver restituisce uno dei valori dell'enumerazione DXGKDT_OPM_DVI_CHARACTERISTICS nel membro ulInformation di DXGKMDT_OPM_STANDARD_INFORMATION.