nt_user_call/lib.rs
1//! This library provides bindings to all functions accessible via the `NtUserCall*` family of system calls.
2//!
3//! Up until Windows 11, a bunch of system calls were grouped together into a dispatch table, `apfnSimpleCall`,
4//! and invoked by calling a dedicated family of syscalls with the respective index of that function. For example,
5//! `CreateMenu` would be called via `NtUserCallNoParam(0);`, with `0` being its index in the dispatch table in
6//! all supported Windows versions. However, the number of functions and their indices in that table varied between
7//! Windows versions, Windows versions prior to Windows 10 did not export the `NtUserCall*` family of syscalls,
8//! and the dispatch table was removed in Windows 11 in its entirety, with all functions being converted to syscalls
9//! exported from win32u.dll.
10//!
11//! This library provides a unified interface to all of these functions by abstracting away of the differences between
12//! indices, syscall availability and exported syscalls in Windows 11.
13
14#![deny(clippy::undocumented_unsafe_blocks)]
15
16pub mod error;
17pub mod functions;
18pub mod indices;
19pub mod macros;
20pub mod version;