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:
0xFFFF00 when sent by the host software decoder in the dwFunction member of the DD_RENDERMOCOMPDATA structure in a call to DdMoCompRender.
0xFFFF08 when sent by the video accelerator in the dwFunction member of the DXVA_EncryptProtocolHeader structure.
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.