3.1.1 Abstract Data Model
This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.
The device maintains the following state:
ServiceHandle: This variable stores the service handle of the DRM transmitter service. This handle is allocated by the device and sent to the host via the CreateService routine. It is then used by both the host and the device to uniquely identify the DRM transmitter service in subsequent remote function calls.
DRMTransmitterRemoteService: This variable contains the pointers to the proxy functions offered by the DRM transmitter service (RegistrationRequestMessage and RegistrationResponseResult). These proxies are allocated by the device after the DRM transmitter service has been successfully instantiated using the CreateService routine. The device uses these proxies to invoke functions remotely in the WMDRM-ND registration process.
The following information is not maintained by the device. This information is made available by the system, using implementation-specific methods, for the WMDRM-ND registration process to succeed.
Device Certificate: The unique signed device certificate that includes a 1024-bit RSA public key. This value is maintained by WMDRM-ND and stored in the non-volatile memory in the device hardware. See [MS-DRMND] for more detail.
Device ID: The unique serial number that has been assigned to the device. This value is stored in non-volatile memory on the device.