]
interface rap
{
+ typedef [public,noprint] enum {
+ NERR_Success = 0
+ } rap_status;
+
const int RAP_WshareEnum = 0;
const int RAP_WshareGetInfo = 1;
const int RAP_WshareSetInfo = 2;
typedef struct {
uint8 group_name[21];
char reserved1;
- [string,charset(DOS)] uint8 *comment;
+ astring *comment;
} rap_group_info_1;
typedef struct {
uint8 passwrd[16];
uint32 pwage;
uint16 priv;
- [string,charset(DOS)] uint8 *home_dir;
- [string,charset(DOS)] uint8 *comment;
+ astring *home_dir;
+ astring *comment;
uint16 userflags;
- [string,charset(DOS)] uint8 *logon_script;
+ astring *logon_script;
} rap_user_info_1;
typedef struct {
uint16 status;
uint32 installcode;
uint16 process_num;
- [string,charset(DOS)] uint8 *comment;
+ astring *comment;
} rap_service_info_2;
typedef struct {
uint8 share_name[13];
char reserved1;
uint16 share_type;
- [string,charset(DOS)] uint8 *comment;
+ astring *comment;
} rap_share_info_1;
typedef struct {
uint8 share_name[13];
char reserved1;
uint16 share_type;
- [string,charset(DOS)] uint8 *comment;
+ astring *comment;
uint16 perms;
uint16 maximum_users;
uint16 active_users;
- [string,charset(DOS)] uint8 *path;
+ astring *path;
uint8 password[9];
char reserved2;
} rap_share_info_2;
[public] void rap_NetShareEnum(
[in] uint16 level,
[in] uint16 bufsize,
- [out] uint16 status,
+ [out] rap_status status,
[out] uint16 convert,
[out] uint16 count,
[out] uint16 available,
[out,switch_is(level)] rap_share_info *info
);
+ /* not documented in MS-RAP */
+ [public] void rap_NetShareAdd(
+ [in] uint16 level,
+ [in] uint16 bufsize,
+ [in,switch_is(level)] rap_share_info info,
+ [out] rap_status status,
+ [out] uint16 convert
+ );
+
typedef struct {
uint8 name[16];
} rap_server_info_0;
uint8 version_major;
uint8 version_minor;
uint32 servertype;
- [string,charset(DOS)] uint8 *comment;
+ astring *comment;
} rap_server_info_1;
typedef [nodiscriminant] union {
[in] uint16 level,
[in] uint16 bufsize,
[in] uint32 servertype,
- [in] [string,charset(DOS)] uint8 *domain,
- [out] uint16 status,
+ [in] astring *domain,
+ [out] rap_status status,
[out] uint16 convert,
[out] uint16 count,
[out] uint16 available,
- [out,switch_is(level)] rap_server_info *info
+ [out,switch_is(level)] rap_server_info info[count]
);
[public] void rap_WserverGetInfo(
[in] uint16 level,
[in] uint16 bufsize,
- [out] uint16 status,
+ [out] rap_status status,
[out] uint16 convert,
[out] uint16 available,
[out,switch_is(level)] rap_server_info info
);
+ typedef [public] enum {
+ PRJ_QS_QUEUED = 0x0000,
+ PRJ_QS_PAUSED = 0x0001,
+ PRJ_QS_SPOOLING = 0x0002,
+ PRJ_QS_PRINTING = 0x0003,
+ PRJ_QS_ERROR = 0x0010
+ } rap_PrintJStatusCode;
+
+ typedef struct {
+ uint16 JobID;
+ } rap_PrintJobInfo0;
+
+ typedef struct {
+ uint16 JobID;
+ [charset(DOS)] uint8 UserName[21];
+ uint8 Pad;
+ [charset(DOS)] uint8 NotifyName[16];
+ [charset(DOS)] uint8 DataType[10];
+ [relative_short] astring *PrintParameterString;
+ uint16 PrintParameterStringHigh;
+ uint16 JobPosition;
+ rap_PrintJStatusCode JobStatus;
+ [relative_short] astring *JobStatusString;
+ uint16 JobStatusStringHigh;
+ time_t TimeSubmitted;
+ uint32 JobSize;
+ [relative_short] astring *JobCommentString;
+ uint16 JobCommentStringHigh;
+ } rap_PrintJobInfo1;
+
+ typedef struct {
+ uint16 JobID;
+ uint16 Priority;
+ [relative_short] astring *UserName;
+ uint16 UserNameHigh;
+ uint16 JobPosition;
+ rap_PrintJStatusCode JobStatus;
+ time_t TimeSubmitted;
+ uint32 JobSize;
+ [relative_short] astring *JobCommentString;
+ uint16 JobCommentStringHigh;
+ [relative_short] astring *DocumentName;
+ uint16 DocumentNameHigh;
+ } rap_PrintJobInfo2;
+
+ typedef struct {
+ uint16 JobID;
+ uint16 Priority;
+ [relative_short] astring *UserName;
+ uint16 UserNameHigh;
+ uint16 JobPosition;
+ rap_PrintJStatusCode JobStatus;
+ time_t TimeSubmitted;
+ uint32 JobSize;
+ [relative_short] astring *JobCommentString;
+ uint16 JobCommentStringHigh;
+ [relative_short] astring *DocumentName;
+ uint16 DocumentNameHigh;
+ [relative_short] astring *NotifyName;
+ uint16 NotifyNameHigh;
+ [relative_short] astring *DataType;
+ uint16 DataTypeHigh;
+ [relative_short] astring *PrintParameterString;
+ uint16 PrintParameterStringHigh;
+ [relative_short] astring *StatusString;
+ uint16 StatusStringHigh;
+ [relative_short] astring *QueueName;
+ uint16 QueueNameHigh;
+ [relative_short] astring *PrintProcessorName;
+ uint16 PrintProcessorNameHigh;
+ [relative_short] astring *PrintProcessorParams;
+ uint16 PrintProcessorParamsHigh;
+ [relative_short] astring *DriverName;
+ uint16 DriverNameHigh;
+ [relative_short] astring *DriverDataOffset;
+ uint16 DriverDataOffsetHigh;
+ [relative_short] astring *PrinterNameOffset;
+ uint16 PrinterNameOffsetHigh;
+ } rap_PrintJobInfo3;
+
+ typedef [public,nodiscriminant] union {
+ [case(0)] rap_PrintJobInfo0 info0;
+ [case(1)] rap_PrintJobInfo1 info1;
+ [case(2)] rap_PrintJobInfo2 info2;
+ [case(3)] rap_PrintJobInfo3 info3;
+ } rap_printj_info;
+
typedef [public] enum {
PRQ_ACTIVE = 0x0000,
PRQ_PAUSE = 0x0001,
} rap_PrintQStatusCode;
typedef struct {
- uint8 PrintQName[13];
+ [charset(DOS)] uint8 PrintQName[13];
} rap_PrintQueue0;
typedef struct {
- uint8 PrintQName[13];
+ [charset(DOS)] uint8 PrintQName[13];
uint8 Pad1;
uint16 Priority;
uint16 StartTime;
uint16 UntilTime;
- [relative_short] [string,charset(DOS)] uint8 *SeparatorPageFilename;
+ [relative_short] astring *SeparatorPageFilename;
uint16 SeparatorPageFilenameHigh;
- [relative_short] [string,charset(DOS)] uint8 *PrintProcessorDllName;
+ [relative_short] astring *PrintProcessorDllName;
uint16 PrintProcessorDllNameHigh;
- [relative_short] [string,charset(DOS)] uint8 *PrintDestinationsName;
+ [relative_short] astring *PrintDestinationsName;
uint16 PrintDestinationsNameHigh;
- [relative_short] [string,charset(DOS)] uint8 *PrintParameterString;
+ [relative_short] astring *PrintParameterString;
uint16 PrintParameterStringHigh;
- [relative_short] [string,charset(DOS)] uint8 *CommentString;
+ [relative_short] astring *CommentString;
uint16 CommentStringHigh;
rap_PrintQStatusCode PrintQStatus;
uint16 PrintJobCount;
} rap_PrintQueue1;
typedef struct {
+ rap_PrintQueue1 queue;
+ rap_PrintJobInfo1 job[queue.PrintJobCount];
} rap_PrintQueue2;
- typedef struct {
- [relative_short] [string,charset(DOS)] uint8 *PrintQueueName;
+ typedef [public] struct {
+ [relative_short] astring *PrintQueueName;
uint16 PrintQueueNameHigh;
uint16 Priority;
uint16 StartTime;
uint16 UntilTime;
uint16 Pad;
- [relative_short] [string,charset(DOS)] uint8 *SeparatorPageFilename;
+ [relative_short] astring *SeparatorPageFilename;
uint16 SeparatorPageFilenameHigh;
- [relative_short] [string,charset(DOS)] uint8 *PrintProcessorDllName;
+ [relative_short] astring *PrintProcessorDllName;
uint16 PrintProcessorDllNameHigh;
- [relative_short] [string,charset(DOS)] uint8 *PrintParameterString;
+ [relative_short] astring *PrintParameterString;
uint16 PrintParameterStringHigh;
- [relative_short] [string,charset(DOS)] uint8 *CommentString;
+ [relative_short] astring *CommentString;
uint16 CommentStringHigh;
rap_PrintQStatusCode PrintQStatus;
uint16 PrintJobCount;
- [relative_short] [string,charset(DOS)] uint8 *Printers;
+ [relative_short] astring *Printers;
uint16 PrintersHigh;
- [relative_short] [string,charset(DOS)] uint8 *DriverName;
+ [relative_short] astring *DriverName;
uint16 DriverNameHigh;
- [relative_short] [string,charset(DOS)] uint8 *PrintDriverData;
+ [relative_short] astring *PrintDriverData;
uint16 PrintDriverDataHigh;
} rap_PrintQueue3;
typedef struct {
+ rap_PrintQueue3 queue;
+ rap_PrintJobInfo2 job[queue.PrintJobCount];
} rap_PrintQueue4;
typedef struct {
- [relative_short] [string,charset(DOS)] uint8 *PrintQueueName;
+ [relative_short] astring *PrintQueueName;
uint16 PrintQueueNameHigh;
} rap_PrintQueue5;
- typedef [nodiscriminant] union {
+ typedef [public,nodiscriminant] union {
[case(0)] rap_PrintQueue0 info0;
[case(1)] rap_PrintQueue1 info1;
[case(2)] rap_PrintQueue2 info2;
[case(5)] rap_PrintQueue5 info5;
} rap_printq_info;
+ [public] void rap_NetPrintQEnum(
+ [in] uint16 level,
+ [in] uint16 bufsize,
+ [out] rap_status status,
+ [out] uint16 convert,
+ [out] uint16 count,
+ [out] uint16 available,
+ [out,switch_is(level)] rap_printq_info info[count]
+ );
+
+ [public] void rap_NetPrintQGetInfo(
+ [in] astring PrintQueueName,
+ [in] uint16 level,
+ [in] uint16 bufsize,
+ [out] rap_status status,
+ [out] uint16 convert,
+ [out] uint16 available,
+ [out,switch_is(level)] rap_printq_info info
+ );
+
+ [public] void rap_NetPrintJobPause(
+ [in] uint16 JobID,
+ [out] rap_status status,
+ [out] uint16 convert
+ );
+
+ [public] void rap_NetPrintJobContinue(
+ [in] uint16 JobID,
+ [out] rap_status status,
+ [out] uint16 convert
+ );
+
+ [public] void rap_NetPrintJobDelete(
+ [in] uint16 JobID,
+ [out] rap_status status,
+ [out] uint16 convert
+ );
+
+ /* not documented in MS-RAP */
+ [public] void rap_NetPrintQueuePause(
+ [in] astring PrintQueueName,
+ [out] rap_status status,
+ [out] uint16 convert
+ );
+
+ /* not documented in MS-RAP */
+ [public] void rap_NetPrintQueueResume(
+ [in] astring PrintQueueName,
+ [out] rap_status status,
+ [out] uint16 convert
+ );
+
+ /* not documented in MS-RAP */
+ [public] void rap_NetPrintQueuePurge(
+ [in] astring PrintQueueName,
+ [out] rap_status status,
+ [out] uint16 convert
+ );
+
+ /* not documented in MS-RAP */
+ [public] void rap_NetPrintJobEnum(
+ [in] astring PrintQueueName,
+ [in] uint16 level,
+ [in] uint16 bufsize,
+ [out] rap_status status,
+ [out] uint16 convert,
+ [out] uint16 count,
+ [out] uint16 available,
+ [out,switch_is(level)] rap_printj_info info[count]
+ );
+
+ [public] void rap_NetPrintJobGetInfo(
+ [in] uint16 JobID,
+ [in] uint16 level,
+ [in] uint16 bufsize,
+ [out] rap_status status,
+ [out] uint16 convert,
+ [out] uint16 available,
+ [out,switch_is(level)] rap_printj_info info
+ );
+
+ typedef enum {
+ RAP_PARAM_JOBNUM = 0x0001,
+ RAP_PARAM_USERNAME = 0x0002,
+ RAP_PARAM_NOTIFYNAME = 0x0003,
+ RAP_PARAM_DATATYPE = 0x0004,
+ RAP_PARAM_PARAMETERS_STRING = 0x0005,
+ RAP_PARAM_JOBPOSITION = 0x0006,
+ RAP_PARAM_JOBSTATUS = 0x0007,
+ RAP_PARAM_JOBSTATUSSTR = 0x0008,
+ RAP_PARAM_TIMESUBMITTED = 0x0009,
+ RAP_PARAM_JOBSIZE = 0x000a,
+ RAP_PARAM_JOBCOMMENT = 0x000b
+ } rap_JobInfoParamNum;
+
+ typedef [nodiscriminant] union {
+ [case (RAP_PARAM_JOBNUM)] uint16 value;
+ [case (RAP_PARAM_USERNAME)] astring string;
+ [case (RAP_PARAM_NOTIFYNAME)] astring string;
+ [case (RAP_PARAM_DATATYPE)] astring string;
+ [case (RAP_PARAM_PARAMETERS_STRING)] astring string;
+ [case (RAP_PARAM_JOBPOSITION)] uint16 value;
+ [case (RAP_PARAM_JOBSTATUS)] uint16 value;
+ [case (RAP_PARAM_JOBSTATUSSTR)] astring string;
+ [case (RAP_PARAM_TIMESUBMITTED)] uint32 value4;
+ [case (RAP_PARAM_JOBSIZE)] uint32 value4;
+ [case (RAP_PARAM_JOBCOMMENT)] astring string;
+ } rap_JobInfoParam;
+
+ [public] void rap_NetPrintJobSetInfo(
+ [in] uint16 JobID,
+ [in] uint16 level,
+ [in] uint16 bufsize,
+ [in] rap_JobInfoParamNum ParamNum,
+ [in,switch_is(ParamNum)] rap_JobInfoParam Param,
+ [out] rap_status status,
+ [out] uint16 convert
+ );
+
+ /* all not documented in MS-RAP */
+
+ typedef struct {
+ [charset(DOS)] uint8 PrintDestName[9];
+ } rap_PrintDest0;
+
+ typedef struct {
+ [charset(DOS)] uint8 PrintDestName[9];
+ [charset(DOS)] uint8 UserName[21];
+ uint16 JobId;
+ uint16 Status;
+ [relative_short] astring *StatusStringName;
+ uint16 PrintQueueNameHigh;
+ uint16 Time;
+ } rap_PrintDest1;
+
+ typedef struct {
+ [relative_short] astring *PrinterName;
+ uint16 PrinterNameHigh;
+ } rap_PrintDest2;
+
+ typedef struct {
+ [relative_short] astring *PrinterName;
+ uint16 PrinterNameHigh;
+ [relative_short] astring *UserName;
+ uint16 UserNameHigh;
+ [relative_short] astring *LogAddr;
+ uint16 LogAddrHigh;
+ uint16 JobId;
+ uint16 Status;
+ [relative_short] astring *StatusStringName;
+ uint16 PrintQueueNameHigh;
+ [relative_short] astring *Comment;
+ uint16 CommentHigh;
+ [relative_short] astring *Drivers;
+ uint16 DriversHigh;
+ uint16 Time;
+ uint16 Pad1;
+ } rap_PrintDest3;
+
+ typedef [public,nodiscriminant] union {
+ [case(0)] rap_PrintDest0 info0;
+ [case(1)] rap_PrintDest1 info1;
+ [case(2)] rap_PrintDest2 info2;
+ [case(3)] rap_PrintDest3 info3;
+ } rap_printdest_info;
+
+ /* not documented in MS-RAP */
+ [public] void rap_NetPrintDestEnum(
+ [in] uint16 level,
+ [in] uint16 bufsize,
+ [out] rap_status status,
+ [out] uint16 convert,
+ [out] uint16 count,
+ [out] uint16 available,
+ [out,switch_is(level)] rap_printdest_info info[count]
+ );
+
+ /* not documented in MS-RAP */
+ [public] void rap_NetPrintDestGetInfo(
+ [in] astring PrintDestName,
+ [in] uint16 level,
+ [in] uint16 bufsize,
+ [out] rap_status status,
+ [out] uint16 convert,
+ [out] uint16 available,
+ [out,switch_is(level)] rap_printdest_info info
+ );
+
+ [public] void rap_NetUserPasswordSet2(
+ [in] astring UserName,
+ [in] uint8 OldPassword[16],
+ [in] uint8 NewPassword[16],
+ [in] uint16 EncryptedPassword,
+ [in] uint16 RealPasswordLength,
+ [out] rap_status status,
+ [out] uint16 convert
+ );
+
+ /* not documented in MS-RAP */
+ [public] void rap_NetOEMChangePassword(
+ [in] astring UserName,
+ [in] uint8 crypt_password[516],
+ [in] uint8 password_hash[16],
+ [out] rap_status status,
+ [out] uint16 convert
+ );
+
+ typedef struct {
+ [charset(DOS)] uint8 Name[21];
+ } rap_NetUserInfo0;
+
typedef [public] enum {
- PRJ_QS_QUEUED = 0x0000,
- PRJ_QS_PAUSED = 0x0001,
- PRJ_QS_SPOOLING = 0x0002,
- PRJ_QS_PRINTING = 0x0003,
- PRJ_QS_ERROR = 0x0010
- } rap_PrintJStatusCode;
+ USER_PRIV_GUEST = 0,
+ USER_PRIV_USER = 1,
+ USER_PRIV_ADMIN = 2
+ } rap_UserPriv;
typedef struct {
- uint16 JobID;
- } rap_PrintJobInfo0;
+ [charset(DOS)] uint8 Name[21];
+ uint8 Pad;
+ uint8 Password[16];
+ time_t PasswordAge;
+ rap_UserPriv Priv;
+ [relative_short] astring *HomeDir;
+ uint16 HomeDirHigh;
+ [relative_short] astring *Comment;
+ uint16 CommentHigh;
+ uint16 Flags; /* FIXME */
+ [relative_short] astring *ScriptPath;
+ uint16 ScriptPathHigh;
+ } rap_NetUserInfo1;
+
+ typedef [public,v1_enum] enum {
+ AF_OP_PRINT = 0,
+ AF_OP_COMM = 1,
+ AF_OP_SERVER = 2,
+ AF_OP_ACCOUNTS = 3
+ } rap_AuthFlags;
+
+ typedef [public] struct {
+ uint8 LogonHours[21];
+ } rap_LogonHours;
typedef struct {
- uint16 JobID;
- uint8 UserName[21];
+ [charset(DOS)] uint8 Name[21];
uint8 Pad;
- uint8 NotifyName[16];
- uint8 DataType[10];
- [relative_short] [string,charset(DOS)] uint8 *PrintParameterString;
- uint16 PrintParameterStringHigh;
- uint16 JobPosition;
- rap_PrintJStatusCode JobStatus;
- [relative_short] [string,charset(DOS)] uint8 *JobStatusString;
- uint16 JobStatusStringHigh;
- uint32 TimeSubmitted;
- uint32 JobSize;
- [relative_short] [string,charset(DOS)] uint8 *JobCommentString;
- uint16 JobCommentStringHigh;
- } rap_PrintJobInfo1;
+ uint8 Password[16];
+ time_t PasswordAge;
+ rap_UserPriv Priv;
+ [relative_short] astring *HomeDir;
+ uint16 HomeDirHigh;
+ [relative_short] astring *Comment;
+ uint16 CommentHigh;
+ uint16 Flags; /* FIXME */
+ [relative_short] astring *ScriptPath;
+ uint16 ScriptPathHigh;
+ rap_AuthFlags AuthFlags;
+ [relative_short] astring *FullName;
+ uint16 FullNameHigh;
+ [relative_short] astring *UsrComment;
+ uint16 UsrCommentHigh;
+ [relative_short] astring *pParms;
+ uint16 pParmsHigh;
+ [relative_short] astring *WorkStations;
+ uint16 WorkStationsHigh;
+ time_t LastLogon;
+ time_t LastLogOff;
+ time_t AcctExpires;
+ uint32 MaxStorage;
+ uint16 UnitsPerWeek;
+ [relative_short] rap_LogonHours *LogonHours;
+ uint16 LogonHoursHigh;
+ uint16 BadPwCount;
+ uint16 NumLogons;
+ [relative_short] astring *LogonServer;
+ uint16 LogonServerHigh;
+ uint16 CountryCode;
+ uint16 CodePage;
+ } rap_NetUserInfo2;
typedef struct {
- uint16 JobID;
- uint16 Priority;
- [relative_short] [string,charset(DOS)] uint8 *UserName;
- uint16 UserNameHigh;
- uint16 JobPosition;
- rap_PrintJStatusCode JobStatus;
- uint32 TimeSubmitted;
- uint32 JobSize;
- [relative_short] [string,charset(DOS)] uint8 *JobCommentString;
- uint16 JobCommentStringHigh;
- [relative_short] [string,charset(DOS)] uint8 *DocumentName;
- uint16 DocumentNameHigh;
- } rap_PrintJobInfo2;
+ [charset(DOS)] uint8 Name[21];
+ uint8 Pad;
+ [relative_short] astring *Comment;
+ uint16 CommentHigh;
+ [relative_short] astring *UsrComment;
+ uint16 UsrCommentHigh;
+ [relative_short] astring *FullName;
+ uint16 FullNameHigh;
+ } rap_NetUserInfo10;
typedef struct {
- uint16 JobID;
- uint16 Priority;
- [relative_short] [string,charset(DOS)] uint8 *UserName;
+ [charset(DOS)] uint8 Name[21];
+ uint8 Pad;
+ [relative_short] astring *Comment;
+ uint16 CommentHigh;
+ [relative_short] astring *UsrComment;
+ uint16 UsrCommentHigh;
+ [relative_short] astring *FullName;
+ uint16 FullNameHigh;
+ rap_UserPriv Priv;
+ rap_AuthFlags AuthFlags;
+ time_t PasswordAge;
+ [relative_short] astring *HomeDir;
+ uint16 HomeDirHigh;
+ [relative_short] astring *Parms;
+ uint16 ParmsHigh;
+ time_t LastLogon;
+ time_t LastLogOff;
+ uint16 BadPWCount;
+ uint16 NumLogons;
+ [relative_short] astring *LogonServer;
+ uint16 LogonServerHigh;
+ uint16 CountryCode;
+ [relative_short] astring *WorkStations;
+ uint16 WorkStationsHigh;
+ uint32 MaxStorage;
+ uint16 UnitsPerWeek;
+ [relative_short] rap_LogonHours *LogonHours;
+ uint16 LogonHoursHigh;
+ uint16 CodePage;
+ } rap_NetUserInfo11;
+
+ typedef [public,nodiscriminant] union {
+ [case(0)] rap_NetUserInfo0 info0;
+ [case(1)] rap_NetUserInfo1 info1;
+ [case(2)] rap_NetUserInfo2 info2;
+ [case(10)] rap_NetUserInfo10 info10;
+ [case(11)] rap_NetUserInfo11 info11;
+ } rap_netuser_info;
+
+ [public] void rap_NetUserGetInfo(
+ [in] astring UserName,
+ [in] uint16 level,
+ [in] uint16 bufsize,
+ [out] rap_status status,
+ [out] uint16 convert,
+ [out] uint16 available,
+ [out,switch_is(level)] rap_netuser_info info
+ );
+
+ typedef struct {
+ [relative_short] astring *ComputerName;
+ uint16 ComputerNameHigh;
+ [relative_short] astring *UserName;
uint16 UserNameHigh;
- uint16 JobPosition;
- rap_PrintJStatusCode JobStatus;
- uint32 TimeSubmitted;
- uint32 JobSize;
- [relative_short] [string,charset(DOS)] uint8 *JobCommentString;
- uint16 JobCommentStringHigh;
- [relative_short] [string,charset(DOS)] uint8 *DocumentName;
- uint16 DocumentNameHigh;
- [relative_short] [string,charset(DOS)] uint8 *NotifyName;
- uint16 NotifyNameHigh;
- [relative_short] [string,charset(DOS)] uint8 *DataType;
- uint16 DataTypeHigh;
- [relative_short] [string,charset(DOS)] uint8 *PrintParameterString;
- uint16 PrintParameterStringHigh;
- [relative_short] [string,charset(DOS)] uint8 *StatusString;
- uint16 StatusStringHigh;
- [relative_short] [string,charset(DOS)] uint8 *QueueName;
- uint16 QueueNameHigh;
- [relative_short] [string,charset(DOS)] uint8 *PrintProcessorName;
- uint16 PrintProcessorNameHigh;
- [relative_short] [string,charset(DOS)] uint8 *PrintProcessorParams;
- uint16 PrintProcessorParamsHigh;
- [relative_short] [string,charset(DOS)] uint8 *DriverName;
- uint16 DriverNameHigh;
- [relative_short] [string,charset(DOS)] uint8 *DriverDataOffset;
- uint16 DriverDataOffsetHigh;
- [relative_short] [string,charset(DOS)] uint8 *PrinterNameOffset;
- uint16 PrinterNameOffsetHigh;
- } rap_PrintJobInfo3;
+ uint16 num_conns;
+ uint16 num_opens;
+ uint16 num_users;
+ uint32 sess_time;
+ uint32 idle_time;
+ uint32 user_flags;
+ [relative_short] astring *CliTypeName;
+ uint16 CliTypeNameHigh;
+ } rap_session_info_2;
+
+ typedef [public,nodiscriminant] union {
+ [case(2)] rap_session_info_2 info2;
+ } rap_session_info;
- [public,noprint] void rap_NetPrintQEnum(
+ /* not documented in MS-RAP */
+ [public] void rap_NetSessionEnum(
[in] uint16 level,
[in] uint16 bufsize,
- [out] uint16 status,
+ [out] rap_status status,
[out] uint16 convert,
[out] uint16 count,
[out] uint16 available,
- [out,switch_is(level)] rap_printq_info *info
+ [out,switch_is(level)] rap_session_info info[count]
+ );
+
+ /* not documented in MS-RAP */
+ [public] void rap_NetSessionGetInfo(
+ [in] astring SessionName,
+ [in] uint16 level,
+ [in] uint16 bufsize,
+ [out] rap_status status,
+ [out] uint16 convert,
+ [out] uint16 available,
+ [out,switch_is(level)] rap_session_info info
+ );
+
+ /* not documented in MS-RAP */
+ [public] void rap_NetUserAdd(
+ [in] uint16 level,
+ [in] uint16 bufsize,
+ [in] uint16 pwdlength,
+ [in] uint16 unknown,
+ [in,switch_is(level)] rap_netuser_info info,
+ [out] rap_status status,
+ [out] uint16 convert
+ );
+
+ /* not documented in MS-RAP */
+ [public] void rap_NetUserDelete(
+ [in] astring UserName,
+ [out] rap_status status,
+ [out] uint16 convert
+ );
+
+ typedef [public] struct {
+ uint32 TimeSinceJan11970;
+ uint32 TimeSinceBoot;
+ uint8 Hours;
+ uint8 Minutes;
+ uint8 Seconds;
+ uint8 Hundreds;
+ uint16 TimeZone;
+ uint16 ClockFrequency;
+ uint8 Day;
+ uint8 Month;
+ uint16 Year;
+ uint8 Weekday;
+ } rap_TimeOfDayInfo;
+
+ [public] void rap_NetRemoteTOD(
+ [in] uint16 bufsize,
+ [out] rap_status status,
+ [out] uint16 convert,
+ [out] rap_TimeOfDayInfo tod
);
/* Parameter description strings for RAP calls */