psapi/
lib.rs

1// Copyright © 2015, Peter Atashian
2// Licensed under the MIT License <LICENSE.md>
3//! FFI bindings to psapi.
4#![cfg(windows)]
5extern crate winapi;
6use winapi::*;
7extern "system" {
8    pub fn EmptyWorkingSet(hProcess: HANDLE) -> BOOL;
9    pub fn EnumDeviceDrivers(lpImageBase: *mut LPVOID, cb: DWORD, lpcbNeeded: LPDWORD) -> BOOL;
10    pub fn EnumPageFilesA(pCallBackRoutine: PENUM_PAGE_FILE_CALLBACKA, pContext: LPVOID) -> BOOL;
11    pub fn EnumPageFilesW(pCallBackRoutine: PENUM_PAGE_FILE_CALLBACKW, pContext: LPVOID) -> BOOL;
12    pub fn EnumProcessModules(
13        hProcess: HANDLE, lphModule: *mut HMODULE, cb: DWORD, lpcbNeeded: LPDWORD,
14    ) -> BOOL;
15    pub fn EnumProcessModulesEx(
16        hProcess: HANDLE, lphModule: *mut HMODULE, cb: DWORD, lpcbNeeded: LPDWORD,
17        dwFilterFlag: DWORD,
18    ) -> BOOL;
19    pub fn EnumProcesses(lpidProcess: *mut DWORD, cb: DWORD, lpcbNeeded: LPDWORD) -> BOOL;
20    pub fn GetDeviceDriverBaseNameA(ImageBase: LPVOID, lpFilename: LPSTR, nSize: DWORD) -> DWORD;
21    pub fn GetDeviceDriverBaseNameW(ImageBase: LPVOID, lpFilename: LPWSTR, nSize: DWORD) -> DWORD;
22    pub fn GetDeviceDriverFileNameA(ImageBase: LPVOID, lpFilename: LPSTR, nSize: DWORD) -> DWORD;
23    pub fn GetDeviceDriverFileNameW(ImageBase: LPVOID, lpFilename: LPWSTR, nSize: DWORD) -> DWORD;
24    pub fn GetMappedFileNameA(
25        hProcess: HANDLE, lpv: LPVOID, lpFilename: LPSTR, nSize: DWORD,
26    ) -> DWORD;
27    pub fn GetMappedFileNameW(
28        hProcess: HANDLE, lpv: LPVOID, lpFilename: LPWSTR, nSize: DWORD,
29    ) -> DWORD;
30    pub fn GetModuleBaseNameA(
31        hProcess: HANDLE, hModule: HMODULE, lpBaseName: LPSTR, nSize: DWORD,
32    ) -> DWORD;
33    pub fn GetModuleBaseNameW(
34        hProcess: HANDLE, hModule: HMODULE, lpBaseName: LPWSTR, nSize: DWORD,
35    ) -> DWORD;
36    pub fn GetModuleFileNameExA(
37        hProcess: HANDLE, hModule: HMODULE, lpFilename: LPSTR, nSize: DWORD,
38    ) -> DWORD;
39    pub fn GetModuleFileNameExW(
40        hProcess: HANDLE, hModule: HMODULE, lpFilename: LPWSTR, nSize: DWORD,
41    ) -> DWORD;
42    pub fn GetModuleInformation(
43        hProcess: HANDLE, hModule: HMODULE, lpmodinfo: LPMODULEINFO, cb: DWORD,
44    ) -> BOOL;
45    pub fn GetPerformanceInfo(pPerformanceInformation: PPERFORMANCE_INFORMATION, cb: DWORD) -> BOOL;
46    pub fn GetProcessImageFileNameA(
47        hProcess: HANDLE, lpImageFileName: LPSTR, nSize: DWORD,
48    ) -> DWORD;
49    pub fn GetProcessImageFileNameW(
50        hProcess: HANDLE, lpImageFileName: LPWSTR, nSize: DWORD,
51    ) -> DWORD;
52    pub fn GetProcessMemoryInfo(
53        hProcess: HANDLE, ppsmemCounters: PPROCESS_MEMORY_COUNTERS, cb: DWORD,
54    ) -> BOOL;
55    pub fn GetWsChanges(
56        hProcess: HANDLE, lpWatchInfo: PPSAPI_WS_WATCH_INFORMATION, cb: DWORD,
57    ) -> BOOL;
58    pub fn GetWsChangesEx(
59        hProcess: HANDLE, lpWatchInfoEx: PPSAPI_WS_WATCH_INFORMATION_EX, cb: PDWORD,
60    ) -> BOOL;
61    pub fn InitializeProcessForWsWatch(hProcess: HANDLE) -> BOOL;
62    pub fn QueryWorkingSet(hProcess: HANDLE, pv: PVOID, cb: DWORD) -> BOOL;
63    pub fn QueryWorkingSetEx(hProcess: HANDLE, pv: PVOID, cb: DWORD) -> BOOL;
64}