IDirect3DCryptoSession9::NegotiateKeyExchange method (d3d9.h)

Establishes the session key for the cryptographic session.

Syntax

HRESULT NegotiateKeyExchange(
  UINT DataSize,
  VOID *pData
);

Parameters

DataSize

The size of the pData byte array, in bytes.

pData

A pointer to a byte array that contains the encrypted session key.

Return value

If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.

Remarks

To find out which key-exchange mechanism to use, call the IDirect3DDevice9Video::GetContentProtectionCaps method. The key-exchange mechanism is specified in the KeyExchangeType member of the D3DCONTENTPROTECTIONCAPS structure. If the value is D3DKEYEXCHANGE_RSAES_OAEP, use RSA Encryption Scheme - Optimal Asymmetric Encryption Padding (RSAES-OAEP) to encrypt the session key. Pass this encrypted cyphertext in the pData parameter.

If the key-exchange type is D3DKEYEXCHANGE_DXVA, do not call this method to establish the session key. Instead, use the key-exchange mechanism that is defined for DirectX Video Acceleration 2 (DXVA-2) decoding.

The driver might also use a proprietary key-exchange mechanism.

Requirements

Requirement Value
Minimum supported client Windows 7 [desktop apps only]
Minimum supported server Windows Server 2008 R2 [desktop apps only]
Target Platform Windows
Header d3d9.h

See also

GPU-Based Content Protection

IDirect3DCryptoSession9