diff options
Diffstat (limited to 'src/event.rs')
| -rw-r--r-- | src/event.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/event.rs b/src/event.rs new file mode 100644 index 0000000..2f00bb1 --- /dev/null +++ b/src/event.rs @@ -0,0 +1,31 @@ +//! Event Objects. + +use ::basedef::DISPATCHER_HEADER; + +extern "system" +{ + pub fn KeInitializeEvent(Event: PKEVENT, Type: EVENT_TYPE, State: bool); + pub fn KeSetEvent(Event: PKEVENT, Increment: i32, Wait: bool) -> i32; + pub fn KeReadStateEvent(Event: PKEVENT) -> i32; + pub fn KeResetEvent(Event: PKEVENT) -> i32; + pub fn KeClearEvent(Event: PKEVENT); +} + +pub type PKEVENT = *mut KEVENT; + +/// Specifies the event type. +#[repr(C)] +pub enum EVENT_TYPE +{ + /// Manual-reset event. + NotificationEvent = 0, + /// Auto-clearing event. + SynchronizationEvent, +} + +/// Event object. +#[repr(C)] +pub struct KEVENT +{ + Header: DISPATCHER_HEADER, +} |