DXGKDDI_OPM_GET_INFORMATION funzione di callback (dispmprt.h)
La funzione DXGKDDI_OPM_GET_INFORMATION recupera informazioni dall'oggetto di output protetto specificato.
Sintassi
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
)
{...}
Parametri
[in] MiniportDeviceContext
Handle di un blocco di contesto associato a una scheda di visualizzazione. In precedenza, la funzione DxgkDdiAddDevice del driver miniport di visualizzazione forniva questo handle al sottosistema del kernel grafico DirectX.
[in] ProtectedOutputHandle
Handle di un oggetto di output protetto. La funzione DxgkDdiOPMCreateProtectedOutput crea l'oggetto di output protetto e restituisce l'handle all'oggetto . L'oggetto di output protetto che corrisponde a questo handle deve avere la semantica OPM.
[in] Parameters
Puntatore a una struttura DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS che contiene parametri utilizzati per recuperare informazioni da un oggetto di output protetto il cui handle viene specificato nel parametro ProtectedOutputHandle . DXGKDDI_OPM_GET_INFORMATION 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 di DXGKMDT_OPM_REQUESTED_INFORMATION che riceve le informazioni dell'oggetto di output protetto se DXGKDDI_OPM_GET_INFORMATION viene restituito correttamente.
Se DXGKDDI_OPM_GET_INFORMATION ha esito negativo, il valore a cui requestedInformation punta è invariato.
Valore restituito
DxgkDdiOPMGetCOPPCompatibleInformation restituisce STATUS_SUCCESS o un codice di errore Ntstatus.h .
Commenti
Il sottosistema kernel della grafica DirectX deve chiamare DXGKDDI_OPM_GET_INFORMATION solo se l'output ha semantica OPM.
Prima che il sottosistema del kernel grafico DirectX passi l'handle di output protetto al parametro ProtectedOutputHandle in una chiamata a DXGKDDI_OPM_GET_INFORMATION, il sottosistema kernel grafico DirectX passa sempre l'handle di output protetto alle funzioni DxgkDdiOPMSetSigningKeyAndSequenceNumbers e DxgkDdiOPMGetRandomNumber .
DXGKDDI_OPM_GET_INFORMATION recupera uno dei tipi di informazioni seguenti:
- Tipo di connettore dell'output protetto.
- Tipi di protezione del contenuto supportati dall'output protetto. Gli output protetti possono attualmente supportare ACP, CGMS-A e HDCP.
- Livello di protezione virtuale corrente dell'output protetto per un particolare tipo di protezione.
- Livello di protezione effettivo dell'output fisico per un particolare tipo di protezione.
- Versione di HDCP SRM attualmente usata dall'output protetto.
- Tipo di bus di espansione utilizzato dalla scheda grafica e modalità di connessione della scheda grafica al bridge nord del computer.
- Formato delle immagini inviate dalla scheda grafica dall'output fisico al monitor.
Il membro guidInformation della struttura DXGKMDT_OPM_GET_INFO_PARAMETERS a cui punta il parametro Parameters non deve mai contenere i GUID DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION e DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING perché solo le applicazioni COPP devono specificare questi GUID.
I primi 4 byte del membro abParameters di DXGKMDT_OPM_GET_INFO_PARAMETERS non devono mai contenere il tipo di protezione DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP quando il GUID DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL o DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL viene specificato nel membro guidInformation di DXGKMDT_OPM_GET_INFO_PARAMETERS perché solo le applicazioni COPP usano questo tipo di protezione.
Il driver deve eseguire la sequenza seguente quando viene chiamata la relativa funzione DXGKDDI_OPM_GET_INFORMATION .
Verificare che l'handle di output protetto passato al parametro ProtectedOutputHandle di DXGKDDI_OPM_GET_INFORMATION abbia la semantica OPM.
Verificare che le informazioni nel parametro Parameters siano state firmate con la chiave di firma dell'oggetto di output protetto. La chiave di firma dell'oggetto di output protetto è stata precedentemente impostata quando è stata chiamata la funzione DxgkDdiOPMSetSigningKeyAndSequenceNumbers . La crittografia a blocchi AES (Advanced Encryption Standard) e l'algoritmo di firma OMAC-1 devono essere usati per verificare la firma. Per informazioni su AES, vedere il sito Web RSA Laboratories . Per informazioni su OMAC-1, vedere la pagina di riferimento DXGKMDT_OPM_OMAC .
Recuperare le informazioni richieste.
Copiare il numero casuale specificato dal membro rnRandomNumber di DXGKMDT_OPM_GET_INFO_PARAMETERS nel membro rnRandomNumber nella struttura DXGKMDT_OPM_STANDARD_INFORMATION o DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT. La struttura utilizzata dipende dal tipo di informazioni a cui il chiamante ha richiesto e viene impostata nel membro abRequestedInformation della struttura DXGKMDT_OPM_REQUESTED_INFORMATION a cui punta il parametro RequestedInformation .
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.
Inizialmente, il sottosistema del kernel grafico DirectX chiama DXGKDDI_OPM_GET_INFORMATION per recuperare informazioni sull'output e quindi chiama DxgkDdiOPMConfigureProtectedOutput una o più volte per configurare l'output. Successivamente, il sottosistema del kernel grafico DirectX chiama DXGKDDI_OPM_GET_INFORMATION senza chiamare anche DxgkDdiOPMConfigureProtectedOutput.
DXGKDDI_OPM_GET_INFORMATION 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
DxgkDdiOPMConfigureProtectedOutput
DxgkDdiOPMCreateProtectedOutput
DxgkDdiOPMSetSigningKeyAndSequenceNumbers