IFSMgr_SchedEvent
IFSMgr_SchedEvent(
pevent pev,
unsigned long time
)
This service schedules a timeout for the time passed in and calls the event function passed in by the FSD when the timeout event occurs. Note that the event function may not be called immediately when the timeout occurs. If there are hardware interrupts or high priority events in progress, the event function will be called at the earliest possible time it is safe to do so. The event is always scheduled i.e. the callback will not be done immediately and it runs only when interrupts have been enabled in the VM. If the time parameter is set to zero, this function behaves similarly to IFSMGR_QueueEvent.
- pev
- Supplies pointer to an event structure.
Event Structure: |
|
Value |
Meaning |
ev_handle |
Must be 0. This field is for use by the IFS manager only. |
ev_flags |
Supplies event type. |
Event Type: |
|
Value |
Meaning |
EVF_TASKTIME |
Event must be called at task time only. The IFS manager allocates an IO request packet for these events. No IO request packets are allocated for events that are not to be called at task time. |
EVF_VMEVENT |
This is a VM event; it has to run in a specific VM that is passed in. |
EVF_NOTCRIT |
This causes a priority event to be scheduled to run on a thread that does not own the critical section. This flag should be used for events that can cause context switches and do not need a critical section to run in. This flag cannot be used in combination with EVF_VMEVENT but can be used in combination with EVF_TASKTIME. |
EVF_NOTNESTEXEC |
This causes a restricted event to be scheduled that runs only when there is no nested execution in progress. It can be scheduled as a global or a VM event, that is, EVF_VMEVENT can be passed in combination with this flag. In addition, EVF_TASKTIME can also be specified to indicate whether an IOREQ is needed or not. An event that can cause a nested execution to happen should use this flag. Otherwise, it can lead to deadlock situations. |
- ev_func
- Supplies pointer to event function.
- ev_VMHand
- Supplies VM handle, needed only if the EVF_VMEVENT flag is set.
- time
- Supplies the timeout, specified in milliseconds. The event will be generated only after the timeout has expired.
- This service has no return value.