Edit

Share via


COPP Query Reference

[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

This section describes the status queries that are supported by Certified Output Protection Protocol (COPP). For each query, the GUID that defines the query is listed, along with the input data and return data.

Query GUID
Bus Data DXVA_COPPQueryBusData
Connector Type DXVA_COPPQueryConnectorType
Display Data DXVA_COPPQueryDisplayData
HDCP Key Data DXVA_COPPQueryHDCPKeyData
Global Protection Level DXVA_COPPQueryGlobalProtectionLevel
Local Protection Level DXVA_COPPQueryLocalProtectionLevel
Protection Type DXVA_COPPQueryProtectionType
Signaling DXVA_COPPQuerySignaling

 

Bus Data Query

Returns the type of I/O bus used by the graphics adapter.

  • GUID: DXVA_COPPQueryBusData
  • Input data: None.
  • Return data: Returns a DXVA_COPPStatusData structure. The bus type is returned in the dwData member as a flag from the COPP_BusType enumeration.

Connector Type Query

Returns the physical connector type.

  • GUID: DXVA_COPPQueryConnectorType
  • Input data: None.
  • Return data: Returns a DXVA_COPPStatusData structure. The connector type is returned in the dwData member as a flag from the COPP_ConnectorType enumeration.

Display Data Query

Returns a description of the video signal that is being transmitted over the connector.

The video signal that is transmitted over the connector does not necessarily have the same format as the desktop display mode. For example, the desktop display mode might be 1024x768 pixels at 85 Hz, while the connector might be an S-Video connector that transmits a video signal at 720x480 pixels, 60/1.01 Hz interlaced. In that case, the driver would return the resolution of the S-Video signal, not the desktop resolution.

HDCP Key Data Query

Returns the device's HDCP key selection vector (B-KSV).

The KSV is an identifier provided to the device manufacturer, and is used in the HDCP authentication and setup process. The application should check this value against the list of revoked KSVs. The mechanism for obtaining the KSV revocation list is outside the scope of the COPP protocol. For more information, consult the HDCP specification.

This query also determines whether the connected HDCP device is a monitor or an HDCP repeater. The application should not play protected content if the HDCP device is an HDCP repeater, because these are not supported by COPP.

Global Protection Level Query

Returns the global protection level for a specified protection mechanism.

The global protection level is the protection level that is currently being applied on the connector, regardless of how the graphics driver was instructed to apply the protection. For example, an application can set the ACP protection level by calling the ChangeDisplaySettingsEx function. In that case, the global protection level would reflect this setting, even though it was not requested through COPP.

  • GUID: DXVA_COPPQueryGlobalProtectionLevel

  • Input data: The protection mechanism to query, specified as a 32-bit integer. See COPP Protection Type Flags.

  • Return data: Returns a DXVA_COPPStatusData structure. The current protection level is returned in the dwData member. The meaning of this value depends on the protection mechanism that is queried. For each protection mechanism, the value of the dwData member is a flag from a different enumeration, as shown in the following table.

    Protection mechanism Enumeration
    ACP COPP_ACP_Protection_Level
    CGMS-A COPP_CGMSA_Protection_Level
    HDCP COPP_HDCP_Protection_Level

     

Local Protection Level Query

Returns the local protection level for a specified protection mechanism.

The local protection level is the protection level that was requested through the current COPP session. The driver might set a higher protection level.

  • GUID: DXVA_COPPQueryLocalProtectionLevel

  • Input data: The protection mechanism to query, as a 32-bit integer. See COPP Protection Type Flags.

  • Return data: Returns a DXVA_COPPStatusData structure. The current protection level is returned in the dwData member. The meaning of this value depends on the protection mechanism that is queried. For each protection mechanism, the value of the dwData member is a flag from a different enumeration, as shown in the following table.

    Protection mechanism Enumeration
    ACP COPP_ACP_Protection_Level
    CGMS-A COPP_CGMSA_Protection_Level
    HDCP COPP_HDCP_Protection_Level

     

Protection Type Query

Returns the protection mechanisms that are available for the connector.

  • GUID: DXVA_COPPQueryProtectionType
  • Input data: None.
  • Return data: Returns a DXVA_COPPStatusData structure. The protection mechanisms are returned in the dwData member as a combination of zero or more flags. See COPP Protection Type Flags. If more than one protection mechanism is available, the flags are combined with a bitwise OR.

Signaling Query

Returns a list of all the protection standards that are supported by the driver, the standard that is currently active, and the current aspect ratio or other signaling data.

Using Certified Output Protection Protocol (COPP)