3.2.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 host maintains the following state for each managed device:
ServiceHandle: Stores the service handle of the DRM Receiver service. The ServiceHandle is allocated by the host and sent to the device using the CreateService routine. It is then used by both the host and the device to uniquely identify the DRM receiver service for that device in subsequent remote function calls.
DRMReceiverRemoteService: This variable contains the pointers to the proxy functions offered by the DRM receiver service: RegisterTransmitterService, UnregisterTransmitterService, InitiateRegistration, and RegistrationResponseMessage. These proxies are allocated by the host after the DRM receiver service has been successfully instantiated by using the CreateService routine. The host then uses these proxies to invoke the functions remotely in the WMDRM-ND registration process.
RegisteredDevice: The variable to store the registered device interface for the remote device being managed. If the device is not registered, this variable is NULL.