Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The display miniport driver can receive requests to retrieve COPP-compatible information about the protected output that is associated with a graphics adapter's physical output connector. The display miniport driver's DxgkDdiOPMGetCOPPCompatibleInformation function is passed a pointer to a DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS structure in the Parameters parameter that contains the information request. DxgkDdiOPMGetCOPPCompatibleInformation writes the required information to the DXGKMDT_OPM_REQUESTED_INFORMATION structure that the RequestedInformation parameter points to. The guidInformation and abParameters members of DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS specify the information request. Depending on the information request, the display miniport driver should populate the members of the DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING, or DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION structure with the required information and point the abRequestedInformation member of DXGKMDT_OPM_REQUESTED_INFORMATION to that structure. After the driver specifies the cbRequestedInformationSize (for example, sizeof (DXGKMDT_OPM_STANDARD_INFORMATION)) and abRequestedInformation members of DXGKMDT_OPM_REQUESTED_INFORMATION, the driver must calculate the One-key Cipher Block Chaining (CBC)-mode message authentication code (OMAC) for the data in DXGKMDT_OPM_REQUESTED_INFORMATION and must set this OMAC in the omac member of DXGKMDT_OPM_REQUESTED_INFORMATION. For more information about calculating OMAC, see the OMAC-1 algorithm.
Note Before DxgkDdiOPMGetCOPPCompatibleInformation returns, the display miniport driver must verify that the sequence number that is specified in the ulSequenceNumber member of DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS matches the sequence number that the driver currently has stored. The driver must then increment the stored sequence number.
Note The driver must return a 128-bit cryptographically secure random number in the rnRandomNumber member of DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING, or DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION. The random number was generated by the sending application and was provided in the rnRandomNumber member of DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.
The driver returns the following information for the indicated request:
For DXGKMDT_OPM_GET_SUPPORTED_PROTECTION_TYPES set in the guidInformation member and undefined in the abParameters member of DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS, the driver indicates the available types of protection mechanisms. To indicate the available protection types, the driver returns a valid bitwise OR combination of values from the DXGKMDT_OPM_PROTECTION_TYPE enumeration in the ulInformation member of DXGKMDT_OPM_STANDARD_INFORMATION. The DXGKMDT_OPM_PROTECTION_TYPE_ACP, DXGKMDT_OPM_PROTECTION_TYPE_CGMSA, and DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP values are valid.
For DXGKMDT_OPM_GET_CONNECTOR_TYPE set in guidInformation and undefined in abParameters, the driver indicates the connector type. To indicate the connector type, the driver returns a valid bitwise OR combination of values from the D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY enumeration in the ulInformation member of DXGKMDT_OPM_STANDARD_INFORMATION.
For DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL or DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL set in guidInformation and the protection type set in abParameters, the driver returns a protection-level value in the ulInformation member of DXGKMDT_OPM_STANDARD_INFORMATION. If the protection type is DXGKMDT_OPM_PROTECTION_TYPE_ACP, the protection-level value is from the DXGKMDT_OPM_ACP_PROTECTION_LEVEL enumeration. If the protection type is DXGKMDT_OPM_PROTECTION_TYPE_CGMSA, the protection-level value is from the DXGKMDT_OPM_CGMSA enumeration. If the protection type is DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP, the protection-level value is from the DXGKMDT_OPM_HDCP_PROTECTION_LEVEL enumeration.
The DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL request returns the currently set protection level for the protected output. The DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL request returns the currently set protection level for the physical connector that is associated with the protected output.
For DXGKMDT_OPM_GET_ADAPTER_BUS_TYPE set in guidInformation and undefined in abParameters, the driver identifies the type of the bus that connects a graphics adapter to a mother board chipset's north bridge. To identify the type of the bus, the driver returns a valid bitwise OR combination of values from the DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION enumeration in the ulInformation member of DXGKMDT_OPM_STANDARD_INFORMATION.
The driver can only combine the DXGKMDT_OPM_COPP_COMPATIBLE_BUS_TYPE_INTEGRATED (0x80000000) value with one of the bus-type values when none of the interface signals between the graphics adapter and other subsystems are available on an expansion bus that uses a publicly available specification and standard connector type. Memory buses are excluded from this definition.
For DXGKMDT_OPM_GET_ACTUAL_OUTPUT_FORMAT set in guidInformation and undefined in abParameters, the driver returns information in the members of DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT that describe how the signal that goes through the physical connector that is associated with the protected output is formatted.
For DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING set in guidInformation and undefined in abParameters, the driver returns information in the members of DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING that describe how the signal that goes through the physical connector that is associated with the protected output is protected.
For DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION set in guidInformation and undefined in abParameters, the driver returns information in the members of DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION that contain High-bandwidth Digital Content Protection (HDCP) information.