1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
//! # Windows Native Rust Library
//!
//! The **Windows-Native** Rust library provides a convenient and safe way to
//! access the native Windows undocumented APIs using the Rust programming
//! language. These APIs are mostly exported from the Process Hacker native API
//! headers (phnt), enabling you to interact with Windows internals in a
//! reliable and efficient manner.
//!
//! Please note that using undocumented APIs can be risky, as they might change
//! without notice in different Windows versions and can potentially cause
//! system instability. Use this library with caution and ensure you have a good
//! understanding of the implications of using undocumented APIs.
//!
//! ## Features
//!
//! - Access undocumented Windows APIs through Rust.
//! - Headers sourced mainly from Process Hacker's NT headers.
//! - Provides a safer interface compared to raw FFI.
//! - Detailed documentation and examples for each API.
//! - Easy-to-use functions and types for common Windows tasks.
//!
//! ## Installation
//!
//! Add this library to your `Cargo.toml`:
//!
//! ```toml
//! [dependencies]
//! windows-native = "0.51.1"
//! ```
//! or run this command
//!
//! ```text
//! cargo add windows-native
//! ```
//!
//! and then install [windows-rs](https://github.com/microsoft/windows-rs)
//!
//! ## Usage
//!
//! ```no_run
//! # fn main() {
//! use std::{thread, time::Duration};
//!
//! use windows_native::ntpsapi::{NtResumeProcess, NtSuspendProcess};
//! use windows::Win32::System::Threading::{OpenProcess, PROCESS_ALL_ACCESS};
//!
//! let handle = unsafe { OpenProcess(PROCESS_ALL_ACCESS, false, 69420).unwrap() };
//! let result = unsafe { NtSuspendProcess(handle) };
//! println!("Result {:?}", result);
//! thread::sleep(Duration::from_secs(3));
//! let result = unsafe { NtResumeProcess(handle) };
//! println!("Result {:?}", result);
//! # }
//! ```
//!
//! ## Contributing
//!
//! Contributions are welcome! If you find a bug or want to add new features to
//! the library, please open an issue or submit a pull request.
//!
//! ## Disclaimer
//!
//! **Windows-Native** is provided as-is and does not guarantee compatibility
//! with future Windows versions. Using undocumented APIs can have unintended
//! consequences, including system instability and security vulnerabilities. Use
//! at your own risk.
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(clippy::too_many_arguments)]
#![warn(clippy::cargo)]

pub mod bitfield;
pub mod ntbcd;
pub mod ntdbg;
pub mod ntexapi;
pub mod ntgdi;
pub mod ntimage;
pub mod ntioapi;
pub mod ntkeapi;
pub mod ntldr;
pub mod ntlpcapi;
pub mod ntmisc;
pub mod ntmmapi;
pub mod ntnls;
pub mod ntobapi;
pub mod ntpebteb;
pub mod ntpfapi;
pub mod ntpnpapi;
pub mod ntpoapi;
pub mod ntpsapi;
pub mod ntregapi;
pub mod ntrtl;
pub mod ntsam;
pub mod ntseapi;
pub mod ntsmss;
pub mod ntsxs;
pub mod nttmapi;
pub mod nttp;
pub mod ntwow64;
pub mod ntxcapi;
pub mod ntzwapi;
pub mod phnt_ntdef;
pub mod subprocesstag;
pub mod winsta;