title | description | keywords | ms.date | |
---|---|---|---|---|
Retrieving the OPM DDI |
Retrieving the OPM DDI |
|
04/20/2017 |
The following sequence shows how the Microsoft DirectX graphics kernel subsystem (Dxgkrnl.sys) retrieves the display miniport driver's OPM DDI:
-
The DirectX graphics kernel subsystem calls the display miniport driver's DxgkDdiAddDevice function to create a context block for a graphics adapter and to return a handle to that graphics adapter.
-
The DirectX graphics kernel subsystem initializes a QUERY_INTERFACE structure with the values in the following table.
Member name Member type Value InterfaceType
CONST PGUID
A pointer to GUID_DEVINTERFACE_OPM
(BF4672DE-6B4E-4BE4-A325-68A91EA49C09)
Size
USHORT
sizeof(DXGK_OPM_INTERFACE)
Version
USHORT
DXGK_OPM_INTERFACE_VERSION_1
Interface
PINTERFACE
A pointer to a DXGK_OPM_INTERFACE structure
InterfaceSpecificData
PVOID
NULL
-
The DirectX graphics kernel subsystem passes the initialized QUERY_INTERFACE in a call to the display miniport driver's DxgkDdiQueryInterface function.
-
If the display miniport driver does not support the OPM interface, DxgkDdiQueryInterface must return STATUS_NOT_SUPPORTED.
If the display miniport driver supports OPM, DxgkDdiQueryInterface initializes the DXGK_OPM_INTERFACE structure that was received in the Interface member of QUERY_INTERFACE with the values in the following table.
Member name, type, and value:
Size
Type USHORTsizeof(DXGK_OPM_INTERFACE)
Version
Type USHORTDXGK_OPM_INTERFACE_VERSION_1
InterfaceReference
Type PINTERFACE_REFERENCEA pointer to the display miniport driver's InterfaceReference routine (For information about InterfaceReference, see the Remarks section of the INTERFACE structure.)
InterfaceDereference
Type PINTERFACE_DEREFERENCEA pointer to the display miniport driver's InterfaceDereference routine (For information about InterfaceDereference, see the Remarks section of the INTERFACE structure.)
DxgkDdiOPMGetCertificateSize
Type DXGKDDI_OPM_GET_CERTIFICATE_SIZEA pointer to the display miniport driver's DxgkDdiOPMGetCertificateSize function
DxgkDdiOPMGetCertificate
Type DXGKDDI_OPM_GET_CERTIFICATEA pointer to the display miniport driver's DxgkDdiOPMGetCertificate function
DxgkDdiOPMCreateProtectedOutput
Type DXGKDDI_OPM_CREATE_PROTECTED_OUTPUTA pointer to the display miniport driver's DxgkDdiOPMCreateProtectedOutput function
DxgkDdiOPMGetRandomNumber
Type DXGKDDI_OPM_GET_RANDOM_NUMBERA pointer to the display miniport driver's DxgkDdiOPMGetRandomNumber function
DxgkDdiOPMSetSigningKeyAndSequenceNumbers
DXGKDDI_OPM_SET_SIGNING_KEY_AND_SEQUENCE_NUMBERSA pointer to the display miniport driver's DxgkDdiOPMSetSigningKeyAndSequenceNumbers function
DxgkDdiOPMGetInformation
DXGKDDI_OPM_GET_INFORMATIONA pointer to the display miniport driver's DxgkDdiOPMGetInformation function
DxgkDdiOPMGetCOPPCompatibleInformation
DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATIONA pointer to the display miniport driver's DxgkDdiOPMGetCOPPCompatibleInformation function
DxgkDdiOPMConfigureProtectedOutput
DXGKDDI_OPM_CONFIGURE_PROTECTED_OUTPUTA pointer to the display miniport driver's DxgkDdiOPMConfigureProtectedOutput function
DxgkDdiOPMDestroyProtectedOutput
DXGKDDI_OPM_DESTROY_PROTECTED_OUTPUTA pointer to the display miniport driver's DxgkDdiOPMDestroyProtectedOutput function
-
When the display miniport driver is finished using the OPM interface, the driver calls its InterfaceDereference routine. The driver should call InterfaceDereference before its DxgkDdiRemoveDevice function is called.