#[repr(C)]pub struct CDriverMsg {
pub extension: [wchar_t; 12],
pub file_id: FILE_ID_INFO,
pub mem_sized_used: c_ulonglong,
pub entropy: f64,
pub pid: c_ulong,
pub irp_op: c_uchar,
pub is_entropy_calc: u8,
pub file_change: c_uchar,
pub file_location_info: c_uchar,
pub filepath: UnicodeString,
pub gid: c_ulonglong,
pub next: *const CDriverMsg,
}Expand description
The C object returned by the minifilter, available through ReplyIrp.
It is low level and use C pointers logic which is not always compatible with RUST (in particular
the lifetime of *next). That’s why we convert it asap to a plain Rust IOMessage object.
next is null (0x0) when there is no IOMessage remaining.
Fields§
§extension: [wchar_t; 12]§file_id: FILE_ID_INFO§mem_sized_used: c_ulonglong§entropy: f64§pid: c_ulong§irp_op: c_uchar§is_entropy_calc: u8§file_change: c_uchar§file_location_info: c_uchar§filepath: UnicodeString§gid: c_ulonglong§next: *const CDriverMsgnull (0x0) when there is no IOMessage remaining
Trait Implementations§
Source§impl Clone for CDriverMsg
impl Clone for CDriverMsg
Source§fn clone(&self) -> CDriverMsg
fn clone(&self) -> CDriverMsg
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CDriverMsg
impl Debug for CDriverMsg
impl Copy for CDriverMsg
Auto Trait Implementations§
impl Freeze for CDriverMsg
impl RefUnwindSafe for CDriverMsg
impl !Send for CDriverMsg
impl !Sync for CDriverMsg
impl Unpin for CDriverMsg
impl UnwindSafe for CDriverMsg
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more