#[repr(C)]pub struct IOMessage {Show 15 fields
pub extension: [wchar_t; 12],
pub file_id_vsn: c_ulonglong,
pub file_id_id: [u8; 16],
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 filepathstr: String,
pub gid: c_ulonglong,
pub runtime_features: RuntimeFeatures,
pub file_size: i64,
pub time: SystemTime,
}Expand description
Represents a driver message.
Fields§
§extension: [wchar_t; 12]The file extension
file_id_vsn: c_ulonglongHard Disk Volume Serial Number where the file is saved (from FILE_ID_INFO)
file_id_id: [u8; 16]File ID on the disk (FILE_ID_INFO)
mem_sized_used: c_ulonglongNumber of bytes transferred (IO_STATUS_BLOCK.Information)
entropy: f64(Optional) File Entropy calculated by the driver
pid: c_ulongPid responsible for this io activity
irp_op: c_ucharWindows IRP Type caught by the minifilter:
- NONE (0)
- READ (1)
- WRITE (2)
- SETINFO (3)
- CREATE (4)
- CLEANUP (5)
is_entropy_calc: u8Is the entropy calculated?
file_change: c_ucharType of i/o operation:
- FILE_CHANGE_NOT_SET (0)
- FILE_OPEN_DIRECTORY (1)
- FILE_CHANGE_WRITE (2)
- FILE_CHANGE_NEW_FILE (3)
- FILE_CHANGE_RENAME_FILE (4)
- FILE_CHANGE_EXTENSION_CHANGED (5)
- FILE_CHANGE_DELETE_FILE (6)
- FILE_CHANGE_DELETE_NEW_FILE (7)
- FILE_CHANGE_OVERWRITE_FILE (8)
file_location_info: c_ucharThe driver has the ability to monitor specific directories only (feature currently not used):
- FILE_NOT_PROTECTED (0): Monitored dirs do not contained this file
- FILE_PROTECTED (1)
- FILE_MOVED_IN (2)
- FILE_MOVED_OUT (3)
filepathstr: StringFile path on the disk
gid: c_ulonglongGroup Identifier (maintained by the minifilter) of the operation
runtime_features: RuntimeFeaturessee class RuntimeFeatures
file_size: i64Size of the file. Can be equal to -1 if the file path is not found.
time: SystemTimeRough time at which the IRP was created
Implementations§
Source§impl IOMessage
impl IOMessage
Sourcepub fn from(c_drivermsg: &CDriverMsg) -> Self
pub fn from(c_drivermsg: &CDriverMsg) -> Self
Make a new IOMessage from a received CDriverMsg
Trait Implementations§
Source§impl<'de> Deserialize<'de> for IOMessage
impl<'de> Deserialize<'de> for IOMessage
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Ord for IOMessage
impl Ord for IOMessage
Source§impl PartialOrd for IOMessage
impl PartialOrd for IOMessage
impl Eq for IOMessage
Auto Trait Implementations§
impl Freeze for IOMessage
impl RefUnwindSafe for IOMessage
impl Send for IOMessage
impl Sync for IOMessage
impl Unpin for IOMessage
impl UnwindSafe for IOMessage
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