diff options
Diffstat (limited to 'librpc/idl/rap.idl')
-rw-r--r-- | librpc/idl/rap.idl | 1076 |
1 files changed, 1076 insertions, 0 deletions
diff --git a/librpc/idl/rap.idl b/librpc/idl/rap.idl new file mode 100644 index 0000000..780951c --- /dev/null +++ b/librpc/idl/rap.idl @@ -0,0 +1,1076 @@ +#include "idl_types.h" + +/* + rap interface definition +*/ + +[ + pointer_default(unique), + helper("../librpc/ndr/ndr_rap.h") +] +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; + const int RAP_WshareAdd = 3; + const int RAP_WshareDel = 4; + const int RAP_NetShareCheck = 5; + const int RAP_WsessionEnum = 6; + const int RAP_WsessionGetInfo = 7; + const int RAP_WsessionDel = 8; + const int RAP_WconnectionEnum = 9; + const int RAP_WfileEnum = 10; + const int RAP_WfileGetInfo = 11; + const int RAP_WfileClose = 12; + const int RAP_WserverGetInfo = 13; + const int RAP_WserverSetInfo = 14; + const int RAP_WserverDiskEnum = 15; + const int RAP_WserverAdminCommand = 16; + const int RAP_NetAuditOpen = 17; + const int RAP_WauditClear = 18; + const int RAP_NetErrorLogOpen = 19; + const int RAP_WerrorLogClear = 20; + const int RAP_NetCharDevEnum = 21; + const int RAP_NetCharDevGetInfo = 22; + const int RAP_WCharDevControl = 23; + const int RAP_NetCharDevQEnum = 24; + const int RAP_NetCharDevQGetInfo = 25; + const int RAP_WCharDevQSetInfo = 26; + const int RAP_WCharDevQPurge = 27; + const int RAP_WCharDevQPurgeSelf = 28; + const int RAP_WMessageNameEnum = 29; + const int RAP_WMessageNameGetInfo = 30; + const int RAP_WMessageNameAdd = 31; + const int RAP_WMessageNameDel = 32; + const int RAP_WMessageNameFwd = 33; + const int RAP_WMessageNameUnFwd = 34; + const int RAP_WMessageBufferSend = 35; + const int RAP_WMessageFileSend = 36; + const int RAP_WMessageLogFileSet = 37; + const int RAP_WMessageLogFileGet = 38; + const int RAP_WServiceEnum = 39; + const int RAP_WServiceInstall = 40; + const int RAP_WServiceControl = 41; + const int RAP_WAccessEnum = 42; + const int RAP_WAccessGetInfo = 43; + const int RAP_WAccessSetInfo = 44; + const int RAP_WAccessAdd = 45; + const int RAP_WAccessDel = 46; + const int RAP_WGroupEnum = 47; + const int RAP_WGroupAdd = 48; + const int RAP_WGroupDel = 49; + const int RAP_WGroupAddUser = 50; + const int RAP_WGroupDelUser = 51; + const int RAP_WGroupGetUsers = 52; + const int RAP_WUserEnum = 53; + const int RAP_WUserAdd = 54; + const int RAP_WUserDel = 55; + const int RAP_WUserGetInfo = 56; + const int RAP_WUserSetInfo = 57; + const int RAP_WUserPasswordSet = 58; + const int RAP_WUserGetGroups = 59; + const int RAP_WWkstaSetUID = 62; + const int RAP_WWkstaGetInfo = 63; + const int RAP_WWkstaSetInfo = 64; + const int RAP_WUseEnum = 65; + const int RAP_WUseAdd = 66; + const int RAP_WUseDel = 67; + const int RAP_WUseGetInfo = 68; + const int RAP_WPrintQEnum = 69; + const int RAP_WPrintQGetInfo = 70; + const int RAP_WPrintQSetInfo = 71; + const int RAP_WPrintQAdd = 72; + const int RAP_WPrintQDel = 73; + const int RAP_WPrintQPause = 74; + const int RAP_WPrintQContinue = 75; + const int RAP_WPrintJobEnum = 76; + const int RAP_WPrintJobGetInfo = 77; + const int RAP_WPrintJobSetInfo_OLD = 78; + const int RAP_WPrintJobDel = 81; + const int RAP_WPrintJobPause = 82; + const int RAP_WPrintJobContinue = 83; + const int RAP_WPrintDestEnum = 84; + const int RAP_WPrintDestGetInfo = 85; + const int RAP_WPrintDestControl = 86; + const int RAP_WProfileSave = 87; + const int RAP_WProfileLoad = 88; + const int RAP_WStatisticsGet = 89; + const int RAP_WStatisticsClear = 90; + const int RAP_NetRemoteTOD = 91; + const int RAP_WNetBiosEnum = 92; + const int RAP_WNetBiosGetInfo = 93; + const int RAP_NetServerEnum = 94; + const int RAP_I_NetServerEnum = 95; + const int RAP_WServiceGetInfo = 96; + const int RAP_WPrintQPurge = 103; + const int RAP_NetServerEnum2 = 104; + const int RAP_WAccessGetUserPerms = 105; + const int RAP_WGroupGetInfo = 106; + const int RAP_WGroupSetInfo = 107; + const int RAP_WGroupSetUsers = 108; + const int RAP_WUserSetGroups = 109; + const int RAP_WUserModalsGet = 110; + const int RAP_WUserModalsSet = 111; + const int RAP_WFileEnum2 = 112; + const int RAP_WUserAdd2 = 113; + const int RAP_WUserSetInfo2 = 114; + const int RAP_WUserPasswordSet2 = 115; + const int RAP_I_NetServerEnum2 = 116; + const int RAP_WConfigGet2 = 117; + const int RAP_WConfigGetAll2 = 118; + const int RAP_WGetDCName = 119; + const int RAP_NetHandleGetInfo = 120; + const int RAP_NetHandleSetInfo = 121; + const int RAP_WStatisticsGet2 = 122; + const int RAP_WBuildGetInfo = 123; + const int RAP_WFileGetInfo2 = 124; + const int RAP_WFileClose2 = 125; + const int RAP_WNetServerReqChallenge = 126; + const int RAP_WNetServerAuthenticate = 127; + const int RAP_WNetServerPasswordSet = 128; + const int RAP_WNetAccountDeltas = 129; + const int RAP_WNetAccountSync = 130; + const int RAP_WUserEnum2 = 131; + const int RAP_WWkstaUserLogon = 132; + const int RAP_WWkstaUserLogoff = 133; + const int RAP_WLogonEnum = 134; + const int RAP_WErrorLogRead = 135; + const int RAP_NetPathType = 136; + const int RAP_NetPathCanonicalize = 137; + const int RAP_NetPathCompare = 138; + const int RAP_NetNameValidate = 139; + const int RAP_NetNameCanonicalize = 140; + const int RAP_NetNameCompare = 141; + const int RAP_WAuditRead = 142; + const int RAP_WPrintDestAdd = 143; + const int RAP_WPrintDestSetInfo = 144; + const int RAP_WPrintDestDel = 145; + const int RAP_WUserValidate2 = 146; + const int RAP_WPrintJobSetInfo = 147; + const int RAP_TI_NetServerDiskEnum = 148; + const int RAP_TI_NetServerDiskGetInfo = 149; + const int RAP_TI_FTVerifyMirror = 150; + const int RAP_TI_FTAbortVerify = 151; + const int RAP_TI_FTGetInfo = 152; + const int RAP_TI_FTSetInfo = 153; + const int RAP_TI_FTLockDisk = 154; + const int RAP_TI_FTFixError = 155; + const int RAP_TI_FTAbortFix = 156; + const int RAP_TI_FTDiagnoseError = 157; + const int RAP_TI_FTGetDriveStats = 158; + const int RAP_TI_FTErrorGetInfo = 160; + const int RAP_NetAccessCheck = 163; + const int RAP_NetAlertRaise = 164; + const int RAP_NetAlertStart = 165; + const int RAP_NetAlertStop = 166; + const int RAP_NetAuditWrite = 167; + const int RAP_NetIRemoteAPI = 168; + const int RAP_NetServiceStatus = 169; + const int RAP_NetServerRegister = 170; + const int RAP_NetServerDeregister = 171; + const int RAP_NetSessionEntryMake = 172; + const int RAP_NetSessionEntryClear = 173; + const int RAP_NetSessionEntryGetInfo = 174; + const int RAP_NetSessionEntrySetInfo = 175; + const int RAP_NetConnectionEntryMake = 176; + const int RAP_NetConnectionEntryClear = 177; + const int RAP_NetConnectionEntrySetInfo = 178; + const int RAP_NetConnectionEntryGetInfo = 179; + const int RAP_NetFileEntryMake = 180; + const int RAP_NetFileEntryClear = 181; + const int RAP_NetFileEntrySetInfo = 182; + const int RAP_NetFileEntryGetInfo = 183; + const int RAP_AltSrvMessageBufferSend = 184; + const int RAP_AltSrvMessageFileSend = 185; + const int RAP_wI_NetRplWkstaEnum = 186; + const int RAP_wI_NetRplWkstaGetInfo = 187; + const int RAP_wI_NetRplWkstaSetInfo = 188; + const int RAP_wI_NetRplWkstaAdd = 189; + const int RAP_wI_NetRplWkstaDel = 190; + const int RAP_wI_NetRplProfileEnum = 191; + const int RAP_wI_NetRplProfileGetInfo = 192; + const int RAP_wI_NetRplProfileSetInfo = 193; + const int RAP_wI_NetRplProfileAdd = 194; + const int RAP_wI_NetRplProfileDel = 195; + const int RAP_wI_NetRplProfileClone = 196; + const int RAP_wI_NetRplBaseProfileEnum = 197; + const int RAP_WIServerSetInfo = 201; + const int RAP_WPrintDriverEnum = 205; + const int RAP_WPrintQProcessorEnum = 206; + const int RAP_WPrintPortEnum = 207; + const int RAP_WNetWriteUpdateLog = 208; + const int RAP_WNetAccountUpdate = 209; + const int RAP_WNetAccountConfirmUpdate = 210; + const int RAP_WConfigSet = 211; + const int RAP_WAccountsReplicate = 212; + const int RAP_SamOEMChgPasswordUser2_P = 214; + const int RAP_NetServerEnum3 = 215; + const int RAP_WprintDriverGetInfo = 250; + const int RAP_WprintDriverSetInfo = 251; + const int RAP_WaliasAdd = 252; + const int RAP_WaliasDel = 253; + const int RAP_WaliasGetInfo = 254; + const int RAP_WaliasSetInfo = 255; + const int RAP_WaliasEnum = 256; + const int RAP_WuserGetLogonAsn = 257; + const int RAP_WuserSetLogonAsn = 258; + const int RAP_WuserGetAppSel = 259; + const int RAP_WuserSetAppSel = 260; + const int RAP_WappAdd = 261; + const int RAP_WappDel = 262; + const int RAP_WappGetInfo = 263; + const int RAP_WappSetInfo = 264; + const int RAP_WappEnum = 265; + const int RAP_WUserDCDBInit = 266; + const int RAP_WDASDAdd = 267; + const int RAP_WDASDDel = 268; + const int RAP_WDASDGetInfo = 269; + const int RAP_WDASDSetInfo = 270; + const int RAP_WDASDEnum = 271; + const int RAP_WDASDCheck = 272; + const int RAP_WDASDCtl = 273; + const int RAP_WuserRemoteLogonCheck = 274; + const int RAP_WUserPasswordSet3 = 275; + const int RAP_WCreateRIPLMachine = 276; + const int RAP_WDeleteRIPLMachine = 277; + const int RAP_WGetRIPLMachineInfo = 278; + const int RAP_WSetRIPLMachineInfo = 279; + const int RAP_WEnumRIPLMachine = 280; + const int RAP_I_ShareAdd = 281; + const int RAP_AliasEnum = 282; + const int RAP_WaccessApply = 283; + const int RAP_WPrt16Query = 284; + const int RAP_WPrt16Set = 285; + const int RAP_WUserDel100 = 286; + const int RAP_WUserRemoteLogonCheck2 = 287; + const int RAP_WRemoteTODSet = 294; + const int RAP_WprintJobMoveAll = 295; + const int RAP_W16AppParmAdd = 296; + const int RAP_W16AppParmDel = 297; + const int RAP_W16AppParmGet = 298; + const int RAP_W16AppParmSet = 299; + const int RAP_W16RIPLMachineCreate = 300; + const int RAP_W16RIPLMachineGetInfo = 301; + const int RAP_W16RIPLMachineSetInfo = 302; + const int RAP_W16RIPLMachineEnum = 303; + const int RAP_W16RIPLMachineListParmEnum = 304; + const int RAP_W16RIPLMachClassGetInfo = 305; + const int RAP_W16RIPLMachClassEnum = 306; + const int RAP_W16RIPLMachClassCreate = 307; + const int RAP_W16RIPLMachClassSetInfo = 308; + const int RAP_W16RIPLMachClassDelete = 309; + const int RAP_W16RIPLMachClassLPEnum = 310; + const int RAP_W16RIPLMachineDelete = 311; + const int RAP_W16WSLevelGetInfo = 312; + const int RAP_WserverNameAdd = 313; + const int RAP_WserverNameDel = 314; + const int RAP_WserverNameEnum = 315; + const int RAP_I_WDASDEnum = 316; + const int RAP_WDASDEnumTerminate = 317; + const int RAP_WDASDSetInfo2 = 318; + const int MAX_API = 318; + + /* sizes of fixed-length fields, including null terminator */ + const int RAP_GROUPNAME_LEN = 21; + const int RAP_USERNAME_LEN = 21; + const int RAP_SHARENAME_LEN = 13; + const int RAP_UPASSWD_LEN = 16; /* user password */ + const int RAP_SPASSWD_LEN = 9; /* share password */ + const int RAP_MACHNAME_LEN = 16; + const int RAP_SRVCNAME_LEN = 16; + const int RAP_SRVCCMNT_LEN = 64; + const int RAP_DATATYPE_LEN = 10; + + typedef struct { + uint8 group_name[21]; + char reserved1; + astring *comment; + } rap_group_info_1; + + typedef struct { + uint8 user_name[21]; + char reserved1; + uint8 passwrd[16]; + uint32 pwage; + uint16 priv; + astring *home_dir; + astring *comment; + uint16 userflags; + astring *logon_script; + } rap_user_info_1; + + typedef struct { + uint8 service_name[16]; + uint16 status; + uint32 installcode; + uint16 process_num; + astring *comment; + } rap_service_info_2; + + typedef struct { + uint8 share_name[13]; + } rap_share_info_0; + + typedef struct { + uint8 share_name[13]; + char reserved1; + uint16 share_type; + astring *comment; + } rap_share_info_1; + + typedef struct { + uint8 share_name[13]; + char reserved1; + uint16 share_type; + astring *comment; + uint16 perms; + uint16 maximum_users; + uint16 active_users; + astring *path; + uint8 password[9]; + char reserved2; + } rap_share_info_2; + + typedef [nodiscriminant] union { + [case(0)] rap_share_info_0 info0; + [case(1)] rap_share_info_1 info1; + [case(2)] rap_share_info_2 info2; + } rap_share_info; + + [public] void rap_NetShareEnum( + [in] uint16 level, + [in] uint16 bufsize, + [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; + + typedef struct { + uint8 name[16]; + uint8 version_major; + uint8 version_minor; + uint32 servertype; + astring *comment; + } rap_server_info_1; + + typedef [nodiscriminant] union { + [case(0)] rap_server_info_0 info0; + [case(1)] rap_server_info_1 info1; + } rap_server_info; + + [public] void rap_NetServerEnum2( + [in] uint16 level, + [in] uint16 bufsize, + [in] uint32 servertype, + [in] astring *domain, + [out] rap_status status, + [out] uint16 convert, + [out] uint16 count, + [out] uint16 available, + [out,switch_is(level)] rap_server_info info[count] + ); + + [public] void rap_WserverGetInfo( + [in] uint16 level, + [in] uint16 bufsize, + [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, + PRQ_ERROR = 0x0002, + PRQ_PENDING = 0x0003 + } rap_PrintQStatusCode; + + typedef struct { + [charset(DOS)] uint8 PrintQName[13]; + } rap_PrintQueue0; + + typedef struct { + [charset(DOS)] uint8 PrintQName[13]; + uint8 Pad1; + uint16 Priority; + uint16 StartTime; + uint16 UntilTime; + [relative_short] astring *SeparatorPageFilename; + uint16 SeparatorPageFilenameHigh; + [relative_short] astring *PrintProcessorDllName; + uint16 PrintProcessorDllNameHigh; + [relative_short] astring *PrintDestinationsName; + uint16 PrintDestinationsNameHigh; + [relative_short] astring *PrintParameterString; + uint16 PrintParameterStringHigh; + [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 [public] struct { + [relative_short] astring *PrintQueueName; + uint16 PrintQueueNameHigh; + uint16 Priority; + uint16 StartTime; + uint16 UntilTime; + uint16 Pad; + [relative_short] astring *SeparatorPageFilename; + uint16 SeparatorPageFilenameHigh; + [relative_short] astring *PrintProcessorDllName; + uint16 PrintProcessorDllNameHigh; + [relative_short] astring *PrintParameterString; + uint16 PrintParameterStringHigh; + [relative_short] astring *CommentString; + uint16 CommentStringHigh; + rap_PrintQStatusCode PrintQStatus; + uint16 PrintJobCount; + [relative_short] astring *Printers; + uint16 PrintersHigh; + [relative_short] astring *DriverName; + uint16 DriverNameHigh; + [relative_short] astring *PrintDriverData; + uint16 PrintDriverDataHigh; + } rap_PrintQueue3; + + typedef struct { + rap_PrintQueue3 queue; + rap_PrintJobInfo2 job[queue.PrintJobCount]; + } rap_PrintQueue4; + + typedef struct { + [relative_short] astring *PrintQueueName; + uint16 PrintQueueNameHigh; + } rap_PrintQueue5; + + typedef [public,nodiscriminant] union { + [case(0)] rap_PrintQueue0 info0; + [case(1)] rap_PrintQueue1 info1; + [case(2)] rap_PrintQueue2 info2; + [case(3)] rap_PrintQueue3 info3; + [case(4)] rap_PrintQueue4 info4; + [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 { + USER_PRIV_GUEST = 0, + USER_PRIV_USER = 1, + USER_PRIV_ADMIN = 2 + } rap_UserPriv; + + typedef struct { + [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 { + [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_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 { + [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 { + [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 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; + + /* not documented in MS-RAP */ + [public] void rap_NetSessionEnum( + [in] uint16 level, + [in] uint16 bufsize, + [out] rap_status status, + [out] uint16 convert, + [out] uint16 count, + [out] uint16 available, + [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 */ + /* Names are defined name for RAP call with _REQ */ + /* appended to end. */ + + const string RAP_WFileEnum2_REQ = "zzWrLehb8g8"; + const string RAP_WFileGetInfo2_REQ = "DWrLh"; + const string RAP_WFileClose2_REQ = "D"; + + const string RAP_NetGroupEnum_REQ = "WrLeh"; + const string RAP_NetGroupAdd_REQ = "WsT"; + const string RAP_NetGroupDel_REQ = "z"; + const string RAP_NetGroupAddUser_REQ = "zz"; + const string RAP_NetGroupDelUser_REQ = "zz"; + const string RAP_NetGroupGetUsers_REQ = "zWrLeh"; + const string RAP_NetGroupSetUsers_REQ = "zWsTW"; + + const string RAP_NetUserAdd2_REQ = "WsTWW"; + const string RAP_NetUserEnum_REQ = "WrLeh"; + const string RAP_NetUserEnum2_REQ = "WrLDieh"; + const string RAP_NetUserGetGroups_REQ = "zWrLeh"; + const string RAP_NetUserSetGroups_REQ = "zWsTW"; + const string RAP_NetUserPasswordSet_REQ = "zb16b16w"; + const string RAP_NetUserPasswordSet2_REQ = "zb16b16WW"; + const string RAP_SAMOEMChgPasswordUser2_REQ = "B516B16"; + const string RAP_NetUserValidate2_REQ = "Wb62WWrLhWW"; + + const string RAP_NetServerEnum2_REQ = "WrLehDz"; + const string RAP_WserverGetInfo_REQ = "WrLh"; + const string RAP_NetWkstatGetInfo = "WrLh"; + + const string RAP_WShareAdd_REQ = "WsT"; + const string RAP_WShareEnum_REQ = "WrLeh"; + const string RAP_WShareDel_REQ = "zW"; + const string RAP_WWkstaGetInfo_REQ = "WrLh"; + + const string RAP_NetPrintQEnum_REQ = "WrLeh"; + const string RAP_NetPrintQGetInfo_REQ = "zWrLh"; + + const string RAP_NetServerAdminCommand_REQ = "zhrLeh"; + const string RAP_NetServiceEnum_REQ = "WrLeh"; + const string RAP_NetServiceControl_REQ = "zWWrL"; + const string RAP_NetServiceInstall_REQ = "zF88sg88T"; + const string RAP_NetServiceGetInfo_REQ = "zWrLh"; + const string RAP_NetSessionEnum_REQ = "WrLeh"; + const string RAP_NetSessionGetInfo_REQ = "zWrLh"; + const string RAP_NetSessionDel_REQ = "zW"; + + const string RAP_NetConnectionEnum_REQ = "zWrLeh"; + + const string RAP_NetWkstaUserLogoff_REQ = "zzWb38WrLh"; + + /* Description strings for returned data in RAP calls */ + /* I use all caps here in part to avoid accidental */ + /* name collisions */ + + const string RAP_FILE_INFO_L2 = "D"; + const string RAP_FILE_INFO_L3 = "DWWzz"; + const string RAP_GROUP_INFO_L0 = "B21"; + const string RAP_GROUP_INFO_L1 = "B21Bz"; + const string RAP_GROUP_USERS_INFO_0 = "B21"; + const string RAP_GROUP_USERS_INFO_1 = "B21BN"; + + const string RAP_USER_INFO_L0 = "B21"; + const string RAP_USER_INFO_L1 = "B21BB16DWzzWz"; + + const string RAP_SERVER_INFO_L0 = "B16"; + const string RAP_SERVER_INFO_L1 = "B16BBDz"; + const string RAP_SERVER_INFO_L2 = "B16BBDzDDDWWzWWWWWWWB21BzWWWWWWWWWWWWWWWWWWWWWWz"; + const string RAP_SERVER_INFO_L3 = "B16BBDzDDDWWzWWWWWWWB21BzWWWWWWWWWWWWWWWWWWWWWWzDWz"; + const string RAP_SERVICE_INFO_L0 = "B16"; + const string RAP_SERVICE_INFO_L2 = "B16WDWB64"; + const string RAP_SHARE_INFO_L0 = "B13"; + const string RAP_SHARE_INFO_L1 = "B13BWz"; + const string RAP_SHARE_INFO_L2 = "B13BWzWWWzB9B"; + + const string RAP_PRINTQ_INFO_L2 = "B13BWWWzzzzzWN"; + const string RAP_SMB_PRINT_JOB_L1 = "WB21BB16B10zWWzDDz"; + + const string RAP_SESSION_INFO_L2 = "zzWWWDDDz"; + const string RAP_CONNECTION_INFO_L1 = "WWWWDzz"; + + const string RAP_USER_LOGOFF_INFO_L1 = "WDW"; + + const string RAP_WKSTA_INFO_L1 = "WDzzzzBBDWDWWWWWWWWWWWWWWWWWWWzzWzzW"; + const string RAP_WKSTA_INFO_L10 = "zzzBBzz"; +}; |