OPM_CONFIGURE_PARAMETERS structure (opmapi.h)

Contains an Output Protection Manager (OPM) or Certified Output Protection Manager (COPP) command.


  OPM_OMAC omac;
  GUID     guidSetting;
  ULONG    ulSequenceNumber;
  ULONG    cbParametersSize;
  BYTE     abParameters[4056];



An OPM_MAC structure. Fill in this structure with the Message Authentication Code (MAC) of the command data. Use AES-based one-key CBC MAC (OMAC) to calculate this value.


A GUID that specifies the command. For more information, see OPM Commands.


A command sequence number. The application must keep a running count of the commands issued. For each command, increment the sequence number by one.

On the first call to IOPMVideoOutput::Configure, set ulSequenceNumber equal to the starting command sequence number, which is specified when the application calls IOPMVideoOutput::FinishInitialization. On each subsequent call, increment ulSequenceNumber by 1.

Exception: If the IOPMVideoOutput::Configure method fails, do not increment the sequence number. Instead, re-use the same number for the next command.


The number of bytes of valid data in the abParameters member.


The data for the command. The meaning of the data depends on the command. For more information, see OPM Commands.


The layout of this structure is identical to the AMCOPPCommand structure used in Certified Output Protection Protocol (COPP).

Initialize this structure as follows.

  1. Fill in all the structure members except the omac member.
  2. Use the OMAC 1 algorithm to calculate a message authentication code (MAC) for the block of data that appears after the omac member (excluding the omac member).
  3. Copy the MAC to the omac member.


Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Header opmapi.h

See also


OPM Structures

Output Protection Manager