PFND3DWDDM2_0DDI_GETCRYPTOSESSIONPRIVATEDATASIZE callback function

GetCryptoSessionPrivateDataSize retrieves sizes for optional private driver data.

Syntax

PFND3DWDDM2_0DDI_GETCRYPTOSESSIONPRIVATEDATASIZE Pfnd3dwddm20DdiGetcryptosessionprivatedatasize;

void Pfnd3dwddm20DdiGetcryptosessionprivatedatasize(
  D3D10DDI_HDEVICE hDevice,
  const GUID *pCryptoType,
  const GUID *pDecoderProfile,
  const GUID *pKeyExchangeType,
  UINT *pPrivateInputSize,
  UINT *pPrivateOutputSize
)
{...}

Parameters

hDevice

A handle to the display device (graphics context). The Direct3D runtime passed the user-mode driver this handle as the hDevice member of the D3DDDIARG_CREATEDEVICE structure at device creation.

pCryptoType

Indicates the crypto type for which the private input and output size is queried.

pDecoderProfile

Indicates the decoder profile for which the private input and output size is queried.

pKeyExchangeType

Indicates the key exchange type for which the private input and output size is queried.

pPrivateInputSize

Returns the size of private data that the driver needs for input commands.

pPrivateOutputSize

Returns the size of private data that the driver needs for output commands.

Return Value

This callback function does not return a value.

Remarks

When pKeyExchangeType is D3D11_KEY_EXCHANGE_HW_PROTECTION, the following behavior is expected in the NegotiateCryptessionKeyExchangedevice driver interface (DDI):

  • DataSize is set to the size of the D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA structure.
  • pData points to a D3D11_KEY_EXCHANGE_CONTENT_PROTECTION_DATA structure.
  • pInputData points to a D3D11_KEY_EXCHANGE_CONTENT_PROTECTION_OUTPUT_DATA structure where:
    • pbInput[0] – pbInput[N-1] contains memory reserved for use by the driver. The number of bytes (N) reserved for the driver is determined by the pPrivateInputSize value returned by the GetCryptoSessionPrivateDataSizeDDI.
    • pbInput[N] contains the first byte of the Digital Rights Management (DRM) command packet.
  • pOutputData points to a D3D11_KEY_EXCHANGE_CONTENT_PROTECTION_OUTPUT_DATA structure where:
    • pbOutput[0] – pbOutput[M-1] contains memory reserved for use by the driver. The number of bytes (M) reserved for the driver is determined by the pPrivateOutputSize value returned by the GetCryptoSessionPrivateDataSizeDDI.
    • pbOutput[M] contains the first byte of the DRM command packet.

Requirements

   
Minimum supported client Windows 10
Minimum supported server Windows Server 2016
Target Platform Desktop
Header d3d10umddi.h (include D3d10umddi.h)

See Also

D3DDDIARG_CREATEDEVICE