6个稳定版本

1.0.44 2024年8月5日
1.0.40 2023年8月25日
1.0.39 2023年8月22日

#26Windows API

Download history 126/week @ 2024-08-05 5/week @ 2024-08-12

每月 131 下载

MIT 许可证

1.5MB
47K SLoC

Windows Native — Crates.io GitHub Workflow Status (with event) Crates.io

Windows-Native Rust库通过Rust编程语言提供了一种方便且安全的方式来访问原生Windows未公开API。这些API主要从Process Hacker原生API头文件(phnt)导出,使您能够以可靠和高效的方式与Windows内部进行交互。

请注意,使用未公开API可能存在风险,因为它们可能会在不同的Windows版本中未经通知而更改,并且可能导致系统不稳定。谨慎使用此库,并确保您充分了解使用未公开API的后果。

功能

  • 通过Rust访问未公开的Windows API。
  • 头文件主要来源于Process Hacker的NT头文件。
  • 与原始FFI相比,提供了更安全的接口。
  • 每个API的详细文档和示例。
  • 用于常见Windows任务的简单函数和类型。

安装

将此库添加到您的 Cargo.toml

[dependencies]
windows-native = "1.0.40"

或运行此命令

cargo add windows-native

此crate与 windows-rs 兼容,因此您也需要安装它。

用法

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);

文档

每个API和类型的详细文档可以在 这里 找到。

贡献

欢迎贡献!如果您发现错误或希望向库添加新功能,请打开一个issue或提交一个pull request。

许可证

本项目根据 MIT许可证 许可。

免责声明

Windows-Native 提供的现状,不保证与未来Windows版本的兼容性。使用未公开的API可能会有意外后果,包括系统不稳定和安全漏洞。使用风险自负。

依赖关系

~128MB
~2M SLoC