aboutsummaryrefslogtreecommitdiff
path: root/src/event.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/event.rs')
-rw-r--r--src/event.rs31
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,
+}