From 28ff216899e95a6a9756bcbe580f28ed8ce61228 Mon Sep 17 00:00:00 2001 From: pravic Date: Tue, 12 Apr 2016 16:39:37 +0300 Subject: Windows Kernel-Mode library --- src/driver_object.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/driver_object.rs (limited to 'src/driver_object.rs') diff --git a/src/driver_object.rs b/src/driver_object.rs new file mode 100644 index 0000000..82a87e7 --- /dev/null +++ b/src/driver_object.rs @@ -0,0 +1,34 @@ +//! Driver Object. + +use ::{NTSTATUS, UNICODE_STRING}; +use ::device_object::*; +use ::irp::IRP; + + +pub type PDRIVER_INITIALIZE = Option NTSTATUS>; +pub type PDRIVER_STARTIO = Option; +pub type PDRIVER_UNLOAD = Option; + + +/// Represents the image of a loaded kernel-mode driver. +#[repr(C)] +pub struct DRIVER_OBJECT +{ + pub Type: u16, + pub Size: u16, + pub DeviceObject: *mut DEVICE_OBJECT, + pub Flags: u32, + pub DriverStart: *const u8, + pub DriverSize: u32, + pub DriverSection: *const u8, + pub DriverExtension: *mut u8, + pub DriverName: UNICODE_STRING, + pub HardwareDatabase: *const UNICODE_STRING, + pub FastIoDispatch: *mut u8, + pub DriverInit: PDRIVER_INITIALIZE, + pub DriverStartIo: PDRIVER_STARTIO, + /// The entry point for the driver's Unload routine, if any. + pub DriverUnload: PDRIVER_UNLOAD, + /// A dispatch table consisting of an array of entry points for the driver's `DispatchXxx` routines. + pub MajorFunction: [PDRIVER_DISPATCH; 28], +} -- cgit v1.2.3