Begins the initialization sequence for an Output Protection Manager (OPM) session.
HRESULT StartInitialization( [out] OPM_RANDOM_NUMBER *prnRandomNumber, [out] BYTE **ppbCertificate, [out] ULONG *pulCertificateLength );
- prnRandomNumber [out]
Pointer to an OPM_RANDOM_NUMBER structure. The structure receives a 128-bit random number generated by the display driver. This number is required for the IOPMVideoOutput::FinishInitialization method.
- ppbCertificate [out]
Receives a pointer to a buffer containing the display driver's certificate. The method allocates the memory for the buffer. The caller must release the memory by calling CoTaskMemFree.
- pulCertificateLength [out]
Receives the length of the buffer pointed to by ppbCertificate.
If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
This method is equivalent to the IAMCertifiedOutputProtection::KeyExchange method in Certified Output Protection Protocol (COPP).
The method returns a certificate chain that contains the driver's 2048-bit RSA public key. The caller must validate the certificate chain and then call IOPMVideoOutput::FinishInitialization to establish the OPM session.
This method supports both OPM semantics and COPP semantics. COPP semantics are supported for backward compatibility; new applications should use OPM semantics.
The method returns an X.509 certificate chain. The certificate chain is encoded with ASN.1 Distinguished Encoding Rules (DER).
The method returns a COPP certificate chain. The certificate chain is returned as a UTF-8 string. You can treat the buffer returned in ppbCertificate as an array of chars.
Minimum supported client
|Windows Vista [desktop apps only]|
Minimum supported server
|Windows Server 2008 [desktop apps only]|