diff options
| author | pravic <[email protected]> | 2016-04-12 16:39:37 +0300 |
|---|---|---|
| committer | pravic <[email protected]> | 2016-04-12 16:39:37 +0300 |
| commit | 28ff216899e95a6a9756bcbe580f28ed8ce61228 (patch) | |
| tree | bbf00e3c5f3b440db5ddb3f86b6d3a893349cee0 /src/pool.rs | |
| parent | git ignore (diff) | |
| download | winapi-kmd-rs-28ff216899e95a6a9756bcbe580f28ed8ce61228.tar.xz winapi-kmd-rs-28ff216899e95a6a9756bcbe580f28ed8ce61228.zip | |
Windows Kernel-Mode library
Diffstat (limited to 'src/pool.rs')
| -rw-r--r-- | src/pool.rs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/pool.rs b/src/pool.rs new file mode 100644 index 0000000..31598d5 --- /dev/null +++ b/src/pool.rs @@ -0,0 +1,42 @@ +//! Kernel Mode pools. + +use ::PVOID; + +extern "system" +{ + /// Allocates pool memory of the specified type and tag. + pub fn ExAllocatePoolWithTag(PoolType: POOL_TYPE, NumberOfBytes: usize, Tag: u32) -> PVOID; + /// Deallocates a block of pool memory allocated with the specified tag. + pub fn ExFreePoolWithTag(P: PVOID, Tag: u32); + + /// Allocates pool memory of the specified type. + pub fn ExAllocatePool(PoolType: POOL_TYPE, NumberOfBytes: usize) -> PVOID; + /// Deallocates a block of pool memory. + pub fn ExFreePool(P: PVOID); +} + + +/// Specifies the type of system memory to allocate. +#[repr(C)] +pub enum POOL_TYPE +{ + /// Nonpageable system memory, can be accessed from any IRQL. + NonPagedPool = 0, + /// Pageable system memory, can only be allocated and accessed at IRQL < DISPATCH_LEVEL. + PagedPool, + NonPagedPoolMustSucceed, + DontUseThisType, + /// Nonpaged pool, aligned on processor cache boundaries. + NonPagedPoolCacheAligned, + /// Paged pool, aligned on processor cache boundaries. + PagedPoolCacheAligned, + NonPagedPoolCacheAlignedMustS, + MaxPoolType, + NonPagedPoolSession = 32, + PagedPoolSession, + NonPagedPoolMustSucceedSession, + DontUseThisTypeSession, + NonPagedPoolCacheAlignedSession, + PagedPoolCacheAlignedSession, + NonPagedPoolCacheAlignedMustSSession, +} |