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 information about the protected output that is associated with a graphics adapter's physical output connector. The display miniport driver's DxgkDdiOPMGetInformation function is passed a pointer to a DXGKMDT_OPM_GET_INFO_PARAMETERS structure in the Parameters parameter that contains the information request. DxgkDdiOPMGetInformation 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_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_OUTPUT_ID, or DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT 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 DxgkDdiOPMGetInformation returns, the display miniport driver must verify that the OMAC that is specified in the omac member of DXGKMDT_OPM_GET_INFO_PARAMETERS is correct. The driver must also verify that the sequence number that is specified in the ulSequenceNumber member of DXGKMDT_OPM_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_OUTPUT_ID, or DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT. The random number was generated by the sending application and was provided in the rnRandomNumber member of DXGKMDT_OPM_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 the DXGKMDT_OPM_GET_INFO_PARAMETERS structure, 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_HDCP and DXGKMDT_OPM_PROTECTION_TYPE_DPCP 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_HDCP, the protection-level value is from the DXGKMDT_OPM_HDCP_PROTECTION_LEVEL enumeration. If the protection type is DXGKMDT_OPM_PROTECTION_TYPE_DPCP, the protection-level value is from the DXGKMDT_OPM_DPCP_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 and implementation of the bus that connects a graphics adapter to a mother board chipset's north bridge. To identify the type and implementation 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.
For DXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION set in guidInformation and undefined in abParameters, the driver returns a value in the ulInformation member of DXGKMDT_OPM_STANDARD_INFORMATION that identifies the version number of the current High-bandwidth Digital Content Protection (HDCP) System Renewability Message (SRM) for the protected output. The least significant bits (bits 0 through 15) contain the SRM's version number in little-endian format. For more information about the SRM version number, see the HDCP Specification Revision 1.1.
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_OUTPUT_ID set in guidInformation and undefined in abParameters, the driver returns information in the members of DXGKMDT_OPM_OUTPUT_ID that identifies the output connector.
For DXGKMDT_OPM_GET_DVI_CHARACTERISTICS set in the guidInformation member and undefined in the abParameters member of the DXGKMDT_OPM_GET_INFO_PARAMETERS structure, the driver indicates electrical characteristics of a Digital Video Interface (DVI) output connector. To indicate the DVI electrical characteristics, the driver returns one of the values from the DXGKDT_OPM_DVI_CHARACTERISTICS enumeration in the ulInformation member of DXGKMDT_OPM_STANDARD_INFORMATION.