| use winapi::shared::ntdef::{HANDLE, LONG, NTSTATUS, ULONG, ULONGLONG, USHORT}; |
| use winapi::shared::ntstatus::FACILITY_NTWIN32; |
| pub type KPRIORITY = LONG; |
| pub type RTL_ATOM = USHORT; |
| pub type PRTL_ATOM = *mut RTL_ATOM; |
| pub const NT_FACILITY_MASK: ULONG = 0xfff; |
| pub const NT_FACILITY_SHIFT: ULONG = 16; |
| #[inline] |
| pub const fn NT_FACILITY(Status: NTSTATUS) -> ULONG { |
| (Status as u32) >> NT_FACILITY_SHIFT & NT_FACILITY_MASK |
| } |
| #[inline] |
| pub const fn NT_NTWIN32(Status: NTSTATUS) -> bool { |
| NT_FACILITY(Status) == FACILITY_NTWIN32 as u32 |
| } |
| #[inline] |
| pub const fn WIN32_FROM_NTSTATUS(Status: NTSTATUS) -> ULONG { |
| (Status as u32) & 0xffff |
| } |
| STRUCT!{struct CLIENT_ID { |
| UniqueProcess: HANDLE, |
| UniqueThread: HANDLE, |
| }} |
| pub type PCLIENT_ID = *mut CLIENT_ID; |
| STRUCT!{struct CLIENT_ID32 { |
| UniqueProcess: ULONG, |
| UniqueThread: ULONG, |
| }} |
| pub type PCLIENT_ID32 = *mut CLIENT_ID32; |
| STRUCT!{struct CLIENT_ID64 { |
| UniqueProcess: ULONGLONG, |
| UniqueThread: ULONGLONG, |
| }} |
| pub type PCLIENT_ID64 = *mut CLIENT_ID64; |
| STRUCT!{struct KSYSTEM_TIME { |
| LowPart: ULONG, |
| High1Time: LONG, |
| High2Time: LONG, |
| }} |
| pub type PKSYSTEM_TIME = *mut KSYSTEM_TIME; |