Visible to Intel only — GUID: GUID-76729278-3BAA-4181-8FA6-C282612DBC78
Visible to Intel only — GUID: GUID-76729278-3BAA-4181-8FA6-C282612DBC78
Events
Intel® DAL supports sending and receiving events from other trusted applications or native services. To use events, trusted applications must define a special permission in the trusted application manifest to send/receive events. Trusted application events are sent to all instances of the same trusted application but not to a specific trusted application instance. In contrast, native events are sent to a specific instance of a trusted application.
The event mechanism can be utilized by Intel DAL services (e.g., timers), but to use them, event permissions have to be included when these services are implemented.
Trusted applications can also send events to host applications using the SendAnyMessage() method.
Note: Trusted applications cannot process commands from the host and process events simultaneously.
Note: Sending too many events will fill up the event queue, resulting in the loss of some of the messages.
Trusted Application-to-Host Event Flow
An application registers for events for a given non-shared session and passes a callback function using JHI_RegisterEvents. A thread is created at the application side by the JHI.dll and waits for events from the Intel DAL Host Interface Service. When a session posts an asynchronous event to the application, the event data is passed to the spooler. The spooler sends the event data to the Intel DAL Host Interface Service. The Intel DAL Host Interface Service notifies the application event thread that an event has arrived. The application event thread pulls the event data from the JHI service. The event thread invokes the application callback function with the event data as input. When the application calls JHI_UnRegisterEvents, the event thread is removed from the application. The flow begins and ends with the application.
Limitation
The virtual machine event queue is limited in size to 20 events. If, for some reason, the event queue is filled by unconsumed events (such as Timers, Capability Licensing Service & Applet), a new event will be dropped and never recovered.
Supported from API level 2