Condividi tramite


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 per 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 semantica COPP.

[in] Parameters

Puntatore a una struttura DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS che contiene il tipo di informazioni compatibili con COPP da recuperare dall'oggetto di output protetto il cui handle viene 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 RequestedInformation punta è invariato.

Valore restituito

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

Osservazioni

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

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

Di seguito sono riportati alcuni fatti relativi a DxgkDdiOPMGetCOPPCompatibleInformation e che non riguardano la funzioneDxgkDdiOPMGetInformation:

  • 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 il parametro parametri 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 guidInformation membro di DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

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

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

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

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

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

  2. Recuperare le informazioni richieste.

  3. Copiare il numero casuale specificato dal membro rnRandomNumber del DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERSrnRandomNumber 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 utilizzata dipende dal tipo di informazioni richieste dal chiamante. La struttura viene 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 Laboratories. Per informazioni su OMAC-1, vedere la pagina di riferimento DXGKMDT_OPM_OMAC.

Inizialmente, il sottosistema 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 del kernel grafico DirectX chiama DxgkDdiOPMGetCOPPCompatibleInformation senza chiamare anche DxgkDdiOPMConfigureProtectedOutput.

DxgkDdiOPMGetCOPPCompatibleInformation deve essere reso pageable.

Fabbisogno

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

Vedere anche

DxgkDdiAddDevice

DxgkDdiOPMConfigureProtectedOutput

DxgkDdiOPMCreateProtectedOutput

DxgkDdiOPMGetInformation

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers

DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS

DXGKMDT_OPM_OMAC

DXGKMDT_OPM_REQUESTED_INFORMATION