DXVA_ConfigQueryOrReplyFlag and DXVA_ConfigQueryorReplyFunc Variables

The DXVA_ConfigQueryOrReplyFlag variable indicates the type of query or response when using probing and locking commands. The most significant 24 bits of the dwFunction member of the following structures contains the DXVA_ConfigQueryOrReplyFlag variable.

DXVA_ConfigPictureDecode for compressed picture decoding.

DXVA_ConfigAlphaLoad for alpha-blending data loading.

DXVA_ConfigAlphaCombine for alpha-blending combination.

The most significant 20 bits of the DXVA_ConfigQueryOrReplyFlag variable specify the following queries and responses.

Value Description

0xFFFF1

Sent by the host decoder as a probing command.

0xFFFF5

Sent by the host decoder as a locking command.

0xFFFF8

Sent by the accelerator with an S_OK response to a probing command, with a copy of the probed configuration.

0xFFFF9

Sent by the accelerator with an S_OK response to a probing command, with a suggested alternative configuration.

0xFFFFC

Sent by the accelerator with an S_OK response to a locking command, with a copy of the locked configuration.

0xFFFFB

Sent by the accelerator with an S_FALSE response to a probing command, with a suggested alternative configuration.

0xFFFFF

Sent by the accelerator with an S_FALSE response to a locking command, with a suggested alternative configuration.

The least significant 4 bits of the DXVA_ConfigQueryOrReplyFlag variable specify the following status indicators for queries and responses.

Bit Description

3

This is zero when sent by the host decoder, and 1 when sent by the accelerator.

2

This is zero when associated with a probe, and 1 when associated with a lock.

1

This is zero for success, and 1 for failure.

0

This is zero when it is a duplicate configuration structure, and 1 when it is a new configuration structure.

The least significant 8 bits of the dwFunction member is the is the bDXVA_Func variable. The bDXVA_Func variable, when used with DXVA_ConfigQueryorReplyFunc, indicates probing and locking operations and specifies an associated configuration function.

Probing and Locking

When bDXVA_Func is used to probe and lock a configuration for a specific DirectX VA function, bDXVA_Func is placed in the 8 least significant bits of the DXVA_ConfigQueryorReplyFunc variable. DXVA_ConfigQueryorReplyFunc is conveyed to the accelerator as specified in the Microsoft Windows SDK.

Specifying a Configuration To Be Probed or Locked

When bDXVA_Func is used to specify the function associated with a configuration structure that is passed with a probe or lock command, bDXVA_Func is placed in the 8 least significant bits of the DXVA_ConfigQueryorReplyFunc variable in the dwFunction member of one of the following configuration structures:

DXVA_ConfigPictureDecode for compressed picture decoding.

DXVA_ConfigAlphaLoad for alpha-blending data loading.

DXVA_ConfigAlphaCombine for alpha-blending combination.

DXVA_EncryptProtocolFunc

The most significant 24 bits of the DXVA_EncryptProtocolFunc DWORD variable are set as follows:

The least significant 8 bits of the DXVA_EncryptProtocolFunc DWORD variable contain the value of bDXVA_Func associated with the encryption protocol. The only value supported for this use is bDXVA_Func = 1 (compressed picture decoding).

Specifying an Operation to be Performed by DdMoCompRender

When bDXVA_Func is used to signal an actual operation to be performed (compressed picture decoding, alpha-blend data loading, alpha-blend combination, or picture resampling), bDXVA_Func is conveyed to the accelerator by inclusion in a series of bDXVA_Func byte values in the dwFunction member of a DD_RENDERMOCOMPDATA structure in a call to DdMoCompRender. The first bDXVA_Func operation is specified in the most significant byte, the next operation is specified in the next most significant byte, and so on. Any remaining bytes of dwFunction are set to zero.