diff options
Diffstat (limited to 'source4/include/rap.h')
-rwxr-xr-x | source4/include/rap.h | 507 |
1 files changed, 0 insertions, 507 deletions
diff --git a/source4/include/rap.h b/source4/include/rap.h deleted file mode 100755 index 993dfa7e33..0000000000 --- a/source4/include/rap.h +++ /dev/null @@ -1,507 +0,0 @@ -/* - Samba Unix/Linux SMB client library - RAP (SMB Remote Procedure Calls) defines and structures - Copyright (C) Steve French 2001 (sfrench@us.ibm.com) - Copyright (C) Jim McDonough 2001 (jmcd@us.ibm.com) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#ifndef _RAP_H_ -#define _RAP_H_ - -/*****************************************************/ -/* */ -/* Additional RAP functionality */ -/* */ -/* RAP is the original SMB RPC, documented */ -/* by Microsoft and X/Open in the 1990s and */ -/* supported by most SMB/CIFS servers although */ -/* it is unlikely that any one implementation */ -/* supports all RAP command codes since some */ -/* are quite obsolete and a few are specific */ -/* to a particular network operating system */ -/* */ -/* Although it has largely been replaced */ -/* for complex remote admistration and management */ -/* (of servers) by the relatively newer */ -/* DCE/RPC based remote API (which better handles */ -/* large >64K data structures), there are many */ -/* important administrative and resource location */ -/* tasks and user tasks (e.g. password change) */ -/* that are performed via RAP. */ -/* */ -/* Although a few of the RAP calls are implemented */ -/* in the Samba client library already (clirap.c) */ -/* the new ones are in clirap2.c for easy patching */ -/* and integration and a corresponding header */ -/* file, rap.h, has been created. */ -/* */ -/* This is based on data from the CIFS spec */ -/* and the LAN Server and LAN Manager */ -/* Programming Reference books and published */ -/* RAP document and CIFS forum postings and */ -/* lots of trial and error. Additional */ -/* background information is available from the */ -/* X/Open reference book in their PC Interworking */ -/* series "IPC for SMB" and also from the */ -/* interoperability documentation in */ -/* ftp://ftp.microsoft.com/developr/drg/cifs */ -/* */ -/* Function names changed from API_ (as they are */ -/* in the CIFS specification to RAP_ in order */ -/* to avoid confusion with other API calls */ -/* sent via DCE RPC */ -/* */ -/*****************************************************/ - -/*****************************************************/ -/* */ -/* Although without pound defines (of this header) */ -/* cifsrap.c already includes support for: */ -/* */ -/* WshareEnum (API number 0, level 1) */ -/* NetServerEnum2 (API num 104, level 1) */ -/* WWkstaUserLogon (132) */ -/* SamOEMchgPasswordUser2_P (214) */ -/* */ -/* and cifsprint.c already includes support for: */ -/* */ -/* WPrintJobEnum (API num 76, level 2) */ -/* WPrintJobDel (API num 81) */ -/* */ -/*****************************************************/ - -#define RAP_WshareEnum 0 -#define RAP_WshareGetInfo 1 -#define RAP_WshareSetInfo 2 -#define RAP_WshareAdd 3 -#define RAP_WshareDel 4 -#define RAP_NetShareCheck 5 -#define RAP_WsessionEnum 6 -#define RAP_WsessionGetInfo 7 -#define RAP_WsessionDel 8 -#define RAP_WconnectionEnum 9 -#define RAP_WfileEnum 10 -#define RAP_WfileGetInfo 11 -#define RAP_WfileClose 12 -#define RAP_WserverGetInfo 13 -#define RAP_WserverSetInfo 14 -#define RAP_WserverDiskEnum 15 -#define RAP_WserverAdminCommand 16 -#define RAP_NetAuditOpen 17 -#define RAP_WauditClear 18 -#define RAP_NetErrorLogOpen 19 -#define RAP_WerrorLogClear 20 -#define RAP_NetCharDevEnum 21 -#define RAP_NetCharDevGetInfo 22 -#define RAP_WCharDevControl 23 -#define RAP_NetCharDevQEnum 24 -#define RAP_NetCharDevQGetInfo 25 -#define RAP_WCharDevQSetInfo 26 -#define RAP_WCharDevQPurge 27 -#define RAP_WCharDevQPurgeSelf 28 -#define RAP_WMessageNameEnum 29 -#define RAP_WMessageNameGetInfo 30 -#define RAP_WMessageNameAdd 31 -#define RAP_WMessageNameDel 32 -#define RAP_WMessageNameFwd 33 -#define RAP_WMessageNameUnFwd 34 -#define RAP_WMessageBufferSend 35 -#define RAP_WMessageFileSend 36 -#define RAP_WMessageLogFileSet 37 -#define RAP_WMessageLogFileGet 38 -#define RAP_WServiceEnum 39 -#define RAP_WServiceInstall 40 -#define RAP_WServiceControl 41 -#define RAP_WAccessEnum 42 -#define RAP_WAccessGetInfo 43 -#define RAP_WAccessSetInfo 44 -#define RAP_WAccessAdd 45 -#define RAP_WAccessDel 46 -#define RAP_WGroupEnum 47 -#define RAP_WGroupAdd 48 -#define RAP_WGroupDel 49 -#define RAP_WGroupAddUser 50 -#define RAP_WGroupDelUser 51 -#define RAP_WGroupGetUsers 52 -#define RAP_WUserEnum 53 -#define RAP_WUserAdd 54 -#define RAP_WUserDel 55 -#define RAP_WUserGetInfo 56 -#define RAP_WUserSetInfo 57 -#define RAP_WUserPasswordSet 58 -#define RAP_WUserGetGroups 59 -#define RAP_WWkstaSetUID 62 -#define RAP_WWkstaGetInfo 63 -#define RAP_WWkstaSetInfo 64 -#define RAP_WUseEnum 65 -#define RAP_WUseAdd 66 -#define RAP_WUseDel 67 -#define RAP_WUseGetInfo 68 -#define RAP_WPrintQEnum 69 -#define RAP_WPrintQGetInfo 70 -#define RAP_WPrintQSetInfo 71 -#define RAP_WPrintQAdd 72 -#define RAP_WPrintQDel 73 -#define RAP_WPrintQPause 74 -#define RAP_WPrintQContinue 75 -#define RAP_WPrintJobEnum 76 -#define RAP_WPrintJobGetInfo 77 -#define RAP_WPrintJobSetInfo_OLD 78 -#define RAP_WPrintJobDel 81 -#define RAP_WPrintJobPause 82 -#define RAP_WPrintJobContinue 83 -#define RAP_WPrintDestEnum 84 -#define RAP_WPrintDestGetInfo 85 -#define RAP_WPrintDestControl 86 -#define RAP_WProfileSave 87 -#define RAP_WProfileLoad 88 -#define RAP_WStatisticsGet 89 -#define RAP_WStatisticsClear 90 -#define RAP_NetRemoteTOD 91 -#define RAP_WNetBiosEnum 92 -#define RAP_WNetBiosGetInfo 93 -#define RAP_NetServerEnum 94 -#define RAP_I_NetServerEnum 95 -#define RAP_WServiceGetInfo 96 -#define RAP_WPrintQPurge 103 -#define RAP_NetServerEnum2 104 -#define RAP_WAccessGetUserPerms 105 -#define RAP_WGroupGetInfo 106 -#define RAP_WGroupSetInfo 107 -#define RAP_WGroupSetUsers 108 -#define RAP_WUserSetGroups 109 -#define RAP_WUserModalsGet 110 -#define RAP_WUserModalsSet 111 -#define RAP_WFileEnum2 112 -#define RAP_WUserAdd2 113 -#define RAP_WUserSetInfo2 114 -#define RAP_WUserPasswordSet2 115 -#define RAP_I_NetServerEnum2 116 -#define RAP_WConfigGet2 117 -#define RAP_WConfigGetAll2 118 -#define RAP_WGetDCName 119 -#define RAP_NetHandleGetInfo 120 -#define RAP_NetHandleSetInfo 121 -#define RAP_WStatisticsGet2 122 -#define RAP_WBuildGetInfo 123 -#define RAP_WFileGetInfo2 124 -#define RAP_WFileClose2 125 -#define RAP_WNetServerReqChallenge 126 -#define RAP_WNetServerAuthenticate 127 -#define RAP_WNetServerPasswordSet 128 -#define RAP_WNetAccountDeltas 129 -#define RAP_WNetAccountSync 130 -#define RAP_WUserEnum2 131 -#define RAP_WWkstaUserLogon 132 -#define RAP_WWkstaUserLogoff 133 -#define RAP_WLogonEnum 134 -#define RAP_WErrorLogRead 135 -#define RAP_NetPathType 136 -#define RAP_NetPathCanonicalize 137 -#define RAP_NetPathCompare 138 -#define RAP_NetNameValidate 139 -#define RAP_NetNameCanonicalize 140 -#define RAP_NetNameCompare 141 -#define RAP_WAuditRead 142 -#define RAP_WPrintDestAdd 143 -#define RAP_WPrintDestSetInfo 144 -#define RAP_WPrintDestDel 145 -#define RAP_WUserValidate2 146 -#define RAP_WPrintJobSetInfo 147 -#define RAP_TI_NetServerDiskEnum 148 -#define RAP_TI_NetServerDiskGetInfo 149 -#define RAP_TI_FTVerifyMirror 150 -#define RAP_TI_FTAbortVerify 151 -#define RAP_TI_FTGetInfo 152 -#define RAP_TI_FTSetInfo 153 -#define RAP_TI_FTLockDisk 154 -#define RAP_TI_FTFixError 155 -#define RAP_TI_FTAbortFix 156 -#define RAP_TI_FTDiagnoseError 157 -#define RAP_TI_FTGetDriveStats 158 -#define RAP_TI_FTErrorGetInfo 160 -#define RAP_NetAccessCheck 163 -#define RAP_NetAlertRaise 164 -#define RAP_NetAlertStart 165 -#define RAP_NetAlertStop 166 -#define RAP_NetAuditWrite 167 -#define RAP_NetIRemoteAPI 168 -#define RAP_NetServiceStatus 169 -#define RAP_NetServerRegister 170 -#define RAP_NetServerDeregister 171 -#define RAP_NetSessionEntryMake 172 -#define RAP_NetSessionEntryClear 173 -#define RAP_NetSessionEntryGetInfo 174 -#define RAP_NetSessionEntrySetInfo 175 -#define RAP_NetConnectionEntryMake 176 -#define RAP_NetConnectionEntryClear 177 -#define RAP_NetConnectionEntrySetInfo 178 -#define RAP_NetConnectionEntryGetInfo 179 -#define RAP_NetFileEntryMake 180 -#define RAP_NetFileEntryClear 181 -#define RAP_NetFileEntrySetInfo 182 -#define RAP_NetFileEntryGetInfo 183 -#define RAP_AltSrvMessageBufferSend 184 -#define RAP_AltSrvMessageFileSend 185 -#define RAP_wI_NetRplWkstaEnum 186 -#define RAP_wI_NetRplWkstaGetInfo 187 -#define RAP_wI_NetRplWkstaSetInfo 188 -#define RAP_wI_NetRplWkstaAdd 189 -#define RAP_wI_NetRplWkstaDel 190 -#define RAP_wI_NetRplProfileEnum 191 -#define RAP_wI_NetRplProfileGetInfo 192 -#define RAP_wI_NetRplProfileSetInfo 193 -#define RAP_wI_NetRplProfileAdd 194 -#define RAP_wI_NetRplProfileDel 195 -#define RAP_wI_NetRplProfileClone 196 -#define RAP_wI_NetRplBaseProfileEnum 197 -#define RAP_WIServerSetInfo 201 -#define RAP_WPrintDriverEnum 205 -#define RAP_WPrintQProcessorEnum 206 -#define RAP_WPrintPortEnum 207 -#define RAP_WNetWriteUpdateLog 208 -#define RAP_WNetAccountUpdate 209 -#define RAP_WNetAccountConfirmUpdate 210 -#define RAP_WConfigSet 211 -#define RAP_WAccountsReplicate 212 -#define RAP_SamOEMChgPasswordUser2_P 214 -#define RAP_NetServerEnum3 215 -#define RAP_WprintDriverGetInfo 250 -#define RAP_WprintDriverSetInfo 251 -#define RAP_WaliasAdd 252 -#define RAP_WaliasDel 253 -#define RAP_WaliasGetInfo 254 -#define RAP_WaliasSetInfo 255 -#define RAP_WaliasEnum 256 -#define RAP_WuserGetLogonAsn 257 -#define RAP_WuserSetLogonAsn 258 -#define RAP_WuserGetAppSel 259 -#define RAP_WuserSetAppSel 260 -#define RAP_WappAdd 261 -#define RAP_WappDel 262 -#define RAP_WappGetInfo 263 -#define RAP_WappSetInfo 264 -#define RAP_WappEnum 265 -#define RAP_WUserDCDBInit 266 -#define RAP_WDASDAdd 267 -#define RAP_WDASDDel 268 -#define RAP_WDASDGetInfo 269 -#define RAP_WDASDSetInfo 270 -#define RAP_WDASDEnum 271 -#define RAP_WDASDCheck 272 -#define RAP_WDASDCtl 273 -#define RAP_WuserRemoteLogonCheck 274 -#define RAP_WUserPasswordSet3 275 -#define RAP_WCreateRIPLMachine 276 -#define RAP_WDeleteRIPLMachine 277 -#define RAP_WGetRIPLMachineInfo 278 -#define RAP_WSetRIPLMachineInfo 279 -#define RAP_WEnumRIPLMachine 280 -#define RAP_I_ShareAdd 281 -#define RAP_AliasEnum 282 -#define RAP_WaccessApply 283 -#define RAP_WPrt16Query 284 -#define RAP_WPrt16Set 285 -#define RAP_WUserDel100 286 -#define RAP_WUserRemoteLogonCheck2 287 -#define RAP_WRemoteTODSet 294 -#define RAP_WprintJobMoveAll 295 -#define RAP_W16AppParmAdd 296 -#define RAP_W16AppParmDel 297 -#define RAP_W16AppParmGet 298 -#define RAP_W16AppParmSet 299 -#define RAP_W16RIPLMachineCreate 300 -#define RAP_W16RIPLMachineGetInfo 301 -#define RAP_W16RIPLMachineSetInfo 302 -#define RAP_W16RIPLMachineEnum 303 -#define RAP_W16RIPLMachineListParmEnum 304 -#define RAP_W16RIPLMachClassGetInfo 305 -#define RAP_W16RIPLMachClassEnum 306 -#define RAP_W16RIPLMachClassCreate 307 -#define RAP_W16RIPLMachClassSetInfo 308 -#define RAP_W16RIPLMachClassDelete 309 -#define RAP_W16RIPLMachClassLPEnum 310 -#define RAP_W16RIPLMachineDelete 311 -#define RAP_W16WSLevelGetInfo 312 -#define RAP_WserverNameAdd 313 -#define RAP_WserverNameDel 314 -#define RAP_WserverNameEnum 315 -#define RAP_I_WDASDEnum 316 -#define RAP_WDASDEnumTerminate 317 -#define RAP_WDASDSetInfo2 318 -#define MAX_API 318 - - -/* Parameter description strings for RAP calls */ -/* Names are defined name for RAP call with _REQ */ -/* appended to end. */ - -#define RAP_WFileEnum2_REQ "zzWrLehb8g8" -#define RAP_WFileGetInfo2_REQ "DWrLh" -#define RAP_WFileClose2_REQ "D" - -#define RAP_NetGroupEnum_REQ "WrLeh" -#define RAP_NetGroupAdd_REQ "WsT" -#define RAP_NetGroupDel_REQ "z" -#define RAP_NetGroupAddUser_REQ "zz" -#define RAP_NetGroupDelUser_REQ "zz" -#define RAP_NetGroupGetUsers_REQ "zWrLeh" -#define RAP_NetGroupSetUsers_REQ "zWsTW" - -#define RAP_NetUserAdd2_REQ "WsTWW" -#define RAP_NetUserEnum_REQ "WrLeh" -#define RAP_NetUserEnum2_REQ "WrLDieh" -#define RAP_NetUserGetGroups_REQ "zWrLeh" -#define RAP_NetUserSetGroups_REQ "zWsTW" -#define RAP_NetUserPasswordSet_REQ "zb16b16w" -#define RAP_NetUserPasswordSet2_REQ "zb16b16WW" -#define RAP_SAMOEMChgPasswordUser2_REQ "B516B16" -#define RAP_NetUserValidate2_REQ "Wb62WWrLhWW" - -#define RAP_NetServerEnum2_REQ "WrLehDz" -#define RAP_WserverGetInfo_REQ "WrLh" -#define RAP_NetWkstatGetInfo "WrLh" - -#define RAP_WShareAdd_REQ "WsT" -#define RAP_WShareEnum_REQ "WrLeh" -#define RAP_WShareDel_REQ "zW" -#define RAP_WWkstaGetInfo_REQ "WrLh" - -#define RAP_NetPrintQEnum_REQ "WrLeh" -#define RAP_NetPrintQGetInfo_REQ "zWrLh" - -#define RAP_NetServerAdminCommand_REQ "zhrLeh" -#define RAP_NetServiceEnum_REQ "WrLeh" -#define RAP_NetServiceControl_REQ "zWWrL" -#define RAP_NetServiceInstall_REQ "zF88sg88T" -#define RAP_NetServiceGetInfo_REQ "zWrLh" -#define RAP_NetSessionEnum_REQ "WrLeh" -#define RAP_NetSessionGetInfo_REQ "zWrLh" -#define RAP_NetSessionDel_REQ "zW" - -#define RAP_NetConnectionEnum_REQ "zWrLeh" - -#define RAP_NetWkstaUserLogoff_REQ "zzWb38WrLh" - -/* Description strings for returned data in RAP calls */ -/* I use all caps here in part to avoid accidental */ -/* name collisions */ - -#define RAP_FILE_INFO_L2 "D" -#define RAP_FILE_INFO_L3 "DWWzz" - -#define RAP_GROUP_INFO_L0 "B21" -#define RAP_GROUP_INFO_L1 "B21Bz" -#define RAP_GROUP_USERS_INFO_0 "B21" -#define RAP_GROUP_USERS_INFO_1 "B21BN" - -#define RAP_USER_INFO_L0 "B21" -#define RAP_USER_INFO_L1 "B21BB16DWzzWz" - -#define RAP_SERVER_INFO_L0 "B16" -#define RAP_SERVER_INFO_L1 "B16BBDz" -#define RAP_SERVER_INFO_L2 "B16BBDzDDDWWzWWWWWWWB21BzWWWWWWWWWWWWWWWWWWWWWWz" -#define RAP_SERVER_INFO_L3 "B16BBDzDDDWWzWWWWWWWB21BzWWWWWWWWWWWWWWWWWWWWWWzDWz" -#define RAP_SERVICE_INFO_L0 "B16" -#define RAP_SERVICE_INFO_L2 "B16WDWB64" -#define RAP_SHARE_INFO_L0 "B13" -#define RAP_SHARE_INFO_L1 "B13BWz" -#define RAP_SHARE_INFO_L2 "B13BWzWWWzB9B" - -#define RAP_PRINTQ_INFO_L2 "B13BWWWzzzzzWN" -#define RAP_SMB_PRINT_JOB_L1 "WB21BB16B10zWWzDDz" - -#define RAP_SESSION_INFO_L2 "zzWWWDDDz" -#define RAP_CONNECTION_INFO_L1 "WWWWDzz" - -#define RAP_USER_LOGOFF_INFO_L1 "WDW" - -#define RAP_WKSTA_INFO_L1 "WDzzzzBBDWDWWWWWWWWWWWWWWWWWWWzzWzzW" -#define RAP_WKSTA_INFO_L10 "zzzBBzz" - -/* BB explicit packing would help in structs below */ - -/* sizes of fixed-length fields, including null terminator */ -#define RAP_GROUPNAME_LEN 21 -#define RAP_USERNAME_LEN 21 -#define RAP_SHARENAME_LEN 13 -#define RAP_UPASSWD_LEN 16 /* user password */ -#define RAP_SPASSWD_LEN 9 /* share password */ -#define RAP_MACHNAME_LEN 16 -#define RAP_SRVCNAME_LEN 16 -#define RAP_SRVCCMNT_LEN 64 -#define RAP_DATATYPE_LEN 10 - - -typedef struct rap_group_info_1 -{ - char group_name[RAP_GROUPNAME_LEN]; - char reserved1; - char * comment; -} RAP_GROUP_INFO_1; - -typedef struct rap_user_info_1 -{ - char user_name[RAP_USERNAME_LEN]; - char reserved1; - char passwrd[RAP_UPASSWD_LEN]; - uint32 pwage; - uint16 priv; - char * home_dir; - char * comment; - uint16 userflags; - char * logon_script; -} RAP_USER_INFO_1; - -typedef struct rap_service_info_2 -{ - char service_name[RAP_SRVCNAME_LEN]; - uint16 status; - uint32 installcode; - uint16 process_num; - char * comment; -} RAP_SERVICE_INFO_2; - - -typedef struct rap_share_info_0 -{ - char share_name[RAP_SHARENAME_LEN]; -} RAP_SHARE_INFO_0; - -typedef struct rap_share_info_1 -{ - char share_name[RAP_SHARENAME_LEN]; - char reserved1; - uint16 share_type; - char * comment; -} RAP_SHARE_INFO_1; - -typedef struct rap_share_info_2 -{ - char share_name[RAP_SHARENAME_LEN]; - char reserved1; - uint16 share_type; - char * comment; - uint16 perms; - uint16 maximum_users; - uint16 active_users; - char * path; - char password[RAP_SPASSWD_LEN]; - char reserved2; -} RAP_SHARE_INFO_2; - -#endif /* _RAP_H_ */ |