aboutsummaryrefslogtreecommitdiff
path: root/src/event.rs
diff options
context:
space:
mode:
authorpravic <[email protected]>2016-04-12 16:39:37 +0300
committerpravic <[email protected]>2016-04-12 16:39:37 +0300
commit28ff216899e95a6a9756bcbe580f28ed8ce61228 (patch)
treebbf00e3c5f3b440db5ddb3f86b6d3a893349cee0 /src/event.rs
parentgit ignore (diff)
downloadwinapi-kmd-rs-28ff216899e95a6a9756bcbe580f28ed8ce61228.tar.xz
winapi-kmd-rs-28ff216899e95a6a9756bcbe580f28ed8ce61228.zip
Windows Kernel-Mode library
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,
+}