#![doc = include_str!("../doc/intro.md")]
#![no_std]
extern crate winresult_types as types;
pub use types::{
ErrorCode,
HResult,
HResultFacilityMicrosoft,
HResultSuccess,
HResultError,
NtStatus,
NtStatusFacilityMicrosoft,
NtStatusSeverity,
WaitCode,
ErrorHResultOrCode,
};
pub use gen::codes::{*, STATUS};
#[allow(non_snake_case)]
pub mod FACILITY {
pub mod HRESULT {
use crate::HResultFacilityMicrosoft;
macro_rules! microsoft_hresult_facilities {($(
#define FACILITY_ $f:ident $value:literal
)*) => {$(
#[doc = concat!("`", stringify!($value), "` (HRESULT)")]
pub const $f : HResultFacilityMicrosoft = HResultFacilityMicrosoft::from_constant($value);
)*}}
include!("hresult/extra.facilities.rs");
include!("hresult/winerror.facilities.rs");
}
pub mod NTSTATUS {
use crate::NtStatusFacilityMicrosoft;
macro_rules! microsoft_ntstatus_facilities {($(
#define $prefix:ident $f:ident $value:literal
)*) => {$(
#[doc = concat!("`", stringify!($value), "` (NTSTATUS)")]
pub const $f : NtStatusFacilityMicrosoft = NtStatusFacilityMicrosoft::from_constant($value);
)*}}
include!("ntstatus/facilities.rs");
}
#[doc(inline)] pub use HRESULT::*;
#[doc(inline)] pub use NTSTATUS::*;
}
#[allow(non_snake_case)]
pub mod WAIT {
use super::*;
pub const OBJECT_0 : WaitCode = WaitCode::from_constant(0);
pub const ABANDONED_0 : WaitCode = WaitCode::from_constant(0x80);
pub const IO_COMPLETION : WaitCode = WaitCode::from_constant(0xC0);
pub const TIMEOUT : WaitCode = WaitCode::from_constant(258);
pub const FAILED : WaitCode = WaitCode::from_constant(0xFFFFFFFF);
pub const fn OBJECT(n: u32) -> Option<WaitCode> {
if n >= MAXIMUM_WAIT_OBJECTS { return None }
Some(WaitCode::from_constant(WAIT::OBJECT_0.to_u32() + n))
}
pub const fn ABANDONED(n: u32) -> Option<WaitCode> {
if n >= MAXIMUM_WAIT_OBJECTS { return None }
Some(WaitCode::from_constant(WAIT::ABANDONED_0.to_u32() + n))
}
const MAXIMUM_WAIT_OBJECTS : u32 = 64;
}
mod gen {
pub mod codes {
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
use types::{ErrorCode, HResultSuccess, HResultError, NtStatus, NtStatusSeverity};
#[path = "STATUS.rs"] mod _STATUS;
pub mod STATUS {
use super::*;
pub mod SEVERITY {
use super::*;
pub const SUCCESS : NtStatusSeverity = NtStatusSeverity::from_constant(0);
pub const INFORMATIONAL : NtStatusSeverity = NtStatusSeverity::from_constant(1);
pub const WARNING : NtStatusSeverity = NtStatusSeverity::from_constant(2);
pub const ERROR : NtStatusSeverity = NtStatusSeverity::from_constant(3);
}
pub use super::_STATUS::*;
}
pub mod S;
pub mod APPMODEL;
pub mod APPX;
pub mod BT;
pub mod CACHE;
pub mod CAT;
pub mod CERT;
pub mod CERTSRV;
pub mod CLASS;
pub mod CLIPBRD;
pub mod CO;
pub mod COMADMIN;
pub mod COMQC;
pub mod CONTEXT;
pub mod CONVERT10;
pub mod CRYPT;
pub mod CS;
pub mod D3D { use super::*; pub const OK : HResultSuccess = HResultSuccess::from_constant(0); }
pub mod D3D10;
pub mod D3D11;
pub mod D3D12;
pub mod D3DERR;
pub mod D3DXERR;
pub mod D3DXFERR;
pub mod D3DOK;
pub mod DATA;
pub mod DCOMPOSITION;
pub mod DIGSIG;
pub mod DISP;
pub mod DNS;
pub mod DRAGDROP;
pub mod DV;
pub mod DWM;
pub mod DWRITE;
pub mod DXCORE;
pub mod DXGI;
pub mod E;
pub mod EAS;
#[allow(dead_code)] mod EPT {}
#[path = "ERROR.rs"] mod _ERROR;
pub mod ERROR {
use types::{ErrorCode, HResultSuccess, HResultError};
pub use super::_ERROR::*;
pub mod BIDI;
pub mod CLOUD_FILE;
pub mod CLUSTER;
pub mod DBG;
pub mod DDS;
pub mod DHCP;
pub mod DS;
pub mod EVT;
pub mod FLT;
pub mod FTP;
pub mod GRAPHICS;
pub mod GOPHER;
pub mod HTTP;
pub mod INTERNET;
pub mod IPSEC;
pub mod MRM;
pub mod MUI;
pub mod NDIS;
pub mod PATCH;
pub mod PCW;
pub mod PRI_MERGE;
pub mod SECUREBOOT;
pub mod SERVER;
pub mod SERVICE;
pub mod SVHDX;
#[path = "SXS.rs"] mod _SXS;
#[path = "../ERROR_SXS_XML.rs"] mod _SXS_XML;
pub mod SXS {
pub use super::_SXS::*;
pub mod XML {
pub use super::super::_SXS_XML::*;
}
}
pub mod VHD;
pub mod WINHTTP;
pub mod WINRS;
pub mod WMI;
pub mod WSMAN;
}
pub mod EVENT;
pub mod FA;
pub mod FVE;
pub mod FWP;
pub mod GCN;
pub mod HCN;
pub mod HCS;
pub mod HSP;
pub mod HTTP;
pub mod INET;
pub mod INPLACE;
pub mod INPUT;
pub mod IORING;
pub mod JSCRIPT;
pub mod MEM;
pub mod MENROLL;
pub mod MK;
pub mod MSDTC;
pub mod MSSIPOTF;
pub mod NAP;
pub mod OLE;
pub mod OLEOBJ;
pub mod ONL;
pub mod PEER;
pub mod PEERDIST;
pub mod PERSIST;
pub mod PLA;
pub mod PRESENTATION;
pub mod REGDB;
pub mod RO;
#[allow(dead_code)] mod RPC {}
pub mod SCARD;
pub mod SCHED;
pub mod SDIAG;
pub mod SEC;
pub mod SPAPI;
pub mod SQLITE;
pub mod STATEREPOSITORY;
pub mod STG;
pub mod STORE;
pub mod TBS;
pub mod TBSIMP;
pub mod TPC;
pub mod TPM_20;
pub mod TPM;
pub mod TPMAPI;
pub mod TRUST;
pub mod TYPE;
pub mod UI;
pub mod UTC;
pub mod VIEW;
pub mod VM_SAVED_STATE_DUMP;
pub mod WEB;
pub mod WEP;
pub mod WER;
pub mod WHV;
pub mod WININET;
pub mod WPN;
pub mod WS;
pub mod WSA;
pub mod XACT;
pub mod XAUDIO2;
pub mod XENROLL;
}
}