4 个版本
0.0.17 | 2024年4月17日 |
---|---|
0.0.16 | 2024年4月17日 |
#5 in #调用
672 每月下载量
14KB
144 代码行
windows-syscall: 为 Rust 提供的 Windows syscall
调用
syscall!
宏 提供了一种类型安全的方式来调用 Windows 系统服务。
可用功能
功能 | 描述 |
---|---|
windows-syscall-typesafe (默认) |
宏尝试在死分支中调用提供的函数,确保类型安全(默认启用)。 |
windows-syscall-use-linked |
宏直接调用提供的函数,而不是执行内联系统调用。这仅适用于测试/调试,与直接调用函数等价。 |
示例
#![feature(asm_const, maybe_uninit_uninit_array, maybe_uninit_array_assume_init)]
use phnt::ffi::{NTSTATUS, HANDLE, NtClose, NtTestAlert}; // = "0.0.25"
use windows_syscall::syscall;
fn main() {
const INVALID_HANDLE: HANDLE = core::ptr::null_mut();
assert!(syscall!(NtClose(INVALID_HANDLE)).is_err());
assert!(syscall!(NtTestAlert()).is_ok());
}
平台支持
架构 | |
---|---|
x86_64 (64位) | ✅ 是 |
x86 (32位) | ❌ 否 (有需求时) |
AArch64 | ❌ 否 (有需求时) |
此软件包仅实现对 ntoskrnl
服务 的调用,如果您需要 win32k
服务 或其他架构,请 创建问题 并通知我!
软件包版本: 0.0.x 即工作进展中。
依赖项
~22–31MB
~424K SLoC