Revision control
Copy as Markdown
Other Tools
// Licensed under the Apache License, Version 2.0
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
//! This file contains structures for communication with the Alerter service
use shared::lmcons::{EVLEN, NET_API_STATUS, SNLEN};
use shared::minwindef::{DWORD, LPVOID};
use um::winnt::{LPCWSTR, WCHAR};
extern "system" {
pub fn NetAlertRaise(
AlertType: LPCWSTR,
Buffer: LPVOID,
BufferSize: DWORD,
) -> NET_API_STATUS;
pub fn NetAlertRaiseEx(
AlertType: LPCWSTR,
VariableInfo: LPVOID,
VariableInfoSize: DWORD,
ServiceName: LPCWSTR,
) -> NET_API_STATUS;
}
STRUCT!{struct STD_ALERT {
alrt_timestamp: DWORD,
alrt_eventname: [WCHAR; EVLEN + 1],
alrt_servicename: [WCHAR; SNLEN + 1],
}}
pub type PSTD_ALERT = *mut STD_ALERT;
pub type LPSTD_ALERT = *mut STD_ALERT;
STRUCT!{struct ADMIN_OTHER_INFO {
alrtad_errcode: DWORD,
alrtad_numstrings: DWORD,
}}
pub type PADMIN_OTHER_INFO = *mut ADMIN_OTHER_INFO;
pub type LPADMIN_OTHER_INFO = *mut ADMIN_OTHER_INFO;
STRUCT!{struct ERRLOG_OTHER_INFO {
alrter_errcode: DWORD,
alrter_offset: DWORD,
}}
pub type PERRLOG_OTHER_INFO = *mut ERRLOG_OTHER_INFO;
pub type LPERRLOG_OTHER_INFO = *mut ERRLOG_OTHER_INFO;
STRUCT!{struct PRINT_OTHER_INFO {
alrtpr_jobid: DWORD,
alrtpr_status: DWORD,
alrtpr_submitted: DWORD,
alrtpr_size: DWORD,
}}
pub type PPRINT_OTHER_INFO = *mut PRINT_OTHER_INFO;
pub type LPPRINT_OTHER_INFO = *mut PRINT_OTHER_INFO;
STRUCT!{struct USER_OTHER_INFO {
alrtus_errcode: DWORD,
alrtus_numstrings: DWORD,
}}
pub type PUSER_OTHER_INFO = *mut USER_OTHER_INFO;
pub type LPUSER_OTHER_INFO = *mut USER_OTHER_INFO;
pub const ALERTER_MAILSLOT: &'static str = "\\\\.\\MAILSLOT\\Alerter";
pub const ALERT_PRINT_EVENT: &'static str = "PRINTING";
pub const ALERT_MESSAGE_EVENT: &'static str = "MESSAGE";
pub const ALERT_ERRORLOG_EVENT: &'static str = "ERRORLOG";
pub const ALERT_ADMIN_EVENT: &'static str = "ADMIN";
pub const ALERT_USER_EVENT: &'static str = "USER";
pub const PRJOB_QSTATUS: DWORD = 0x3;
pub const PRJOB_DEVSTATUS: DWORD = 0x1fc;
pub const PRJOB_COMPLETE: DWORD = 0x4;
pub const PRJOB_INTERV: DWORD = 0x8;
pub const PRJOB_ERROR: DWORD = 0x10;
pub const PRJOB_DESTOFFLINE: DWORD = 0x20;
pub const PRJOB_DESTPAUSED: DWORD = 0x40;
pub const PRJOB_NOTIFY: DWORD = 0x80;
pub const PRJOB_DESTNOPAPER: DWORD = 0x100;
pub const PRJOB_DELETED: DWORD = 0x8000;
pub const PRJOB_QS_QUEUED: DWORD = 0;
pub const PRJOB_QS_PAUSED: DWORD = 1;
pub const PRJOB_QS_SPOOLING: DWORD = 2;
pub const PRJOB_QS_PRINTING: DWORD = 3;