From 5390dc0d242e77a14a7873972431776a1e18dc45 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 15 Oct 2008 16:48:53 +0200 Subject: Share wkssvc.idl. --- librpc/idl/wkssvc.idl | 795 ++++++++++++++++++++++++++++++++++++++++++ source3/Makefile.in | 2 +- source3/librpc/idl/wkssvc.idl | 795 ------------------------------------------ source4/librpc/idl/wkssvc.idl | 795 ------------------------------------------ source4/torture/rpc/wkssvc.c | 8 +- 5 files changed, 800 insertions(+), 1595 deletions(-) create mode 100644 librpc/idl/wkssvc.idl delete mode 100644 source3/librpc/idl/wkssvc.idl delete mode 100644 source4/librpc/idl/wkssvc.idl diff --git a/librpc/idl/wkssvc.idl b/librpc/idl/wkssvc.idl new file mode 100644 index 0000000000..9340990e99 --- /dev/null +++ b/librpc/idl/wkssvc.idl @@ -0,0 +1,795 @@ +#include "idl_types.h" + +/* + wkssvc interface definitions +*/ + +import "srvsvc.idl", "lsa.idl"; + +[ uuid("6bffd098-a112-3610-9833-46c3f87e345a"), + version(1.0), + pointer_default(unique), + helpstring("Workstation Service"), + endpoint("ncacn_np:[\\pipe\\wkssvc]","ncacn_ip_tcp:","ncalrpc:") +] interface wkssvc +{ + typedef [v1_enum] enum srvsvc_PlatformId srvsvc_PlatformId; + +#define BOOL uint32 + + /******************/ + /* Function: 0x00 */ + + typedef struct { + srvsvc_PlatformId platform_id; + [string,charset(UTF16)] uint16 *server_name; + [string,charset(UTF16)] uint16 *domain_name; + uint32 version_major; + uint32 version_minor; + } wkssvc_NetWkstaInfo100; + + typedef struct { + srvsvc_PlatformId platform_id; + [string,charset(UTF16)] uint16 *server_name; + [string,charset(UTF16)] uint16 *domain_name; + uint32 version_major; + uint32 version_minor; + [string,charset(UTF16)] uint16 *lan_root; + } wkssvc_NetWkstaInfo101; + + typedef struct { + srvsvc_PlatformId platform_id; + [string,charset(UTF16)] uint16 *server_name; + [string,charset(UTF16)] uint16 *domain_name; + uint32 version_major; + uint32 version_minor; + [string,charset(UTF16)] uint16 *lan_root; + uint32 logged_on_users; + } wkssvc_NetWkstaInfo102; + + /* FIXME: 302, 402 */ + + typedef struct { + uint32 char_wait; + uint32 collection_time; + uint32 maximum_collection_count; + uint32 keep_connection; + uint32 max_commands; + uint32 session_timeout; + uint32 size_char_buf; + uint32 max_threads; + uint32 lock_quota; + uint32 lock_increment; + uint32 lock_maximum; + uint32 pipe_increment; + uint32 pipe_maximum; + uint32 cache_file_timeout; + uint32 dormant_file_limit; + uint32 read_ahead_throughput; + uint32 num_mailslot_buffers; + uint32 num_srv_announce_buffers; + uint32 max_illegal_dgram_events; + uint32 dgram_event_reset_freq; + BOOL log_election_packets; + BOOL use_opportunistic_locking; + BOOL use_unlock_behind; + BOOL use_close_behind; + BOOL buf_named_pipes; + BOOL use_lock_read_unlock; + BOOL utilize_nt_caching; + BOOL use_raw_read; + BOOL use_raw_write; + BOOL use_write_raw_data; + BOOL use_encryption; + BOOL buf_files_deny_write; + BOOL buf_read_only_files; + BOOL force_core_create_mode; + BOOL use_512_byte_max_transfer; + } wkssvc_NetWkstaInfo502; + + typedef struct { + uint32 char_wait; + } wkssvc_NetWkstaInfo1010; + + typedef struct { + uint32 collection_time; + } wkssvc_NetWkstaInfo1011; + + typedef struct { + uint32 maximum_collection_count; + } wkssvc_NetWkstaInfo1012; + + typedef struct { + uint32 keep_connection; + } wkssvc_NetWkstaInfo1013; + + typedef struct { + uint32 session_timeout; + } wkssvc_NetWkstaInfo1018; + + typedef struct { + uint32 size_char_buf; + } wkssvc_NetWkstaInfo1023; + + typedef struct { + uint32 errorlog_sz; + } wkssvc_NetWkstaInfo1027; + + /* downlevel */ + typedef struct { + uint32 print_buf_time; + } wkssvc_NetWkstaInfo1028; + + /* downlevel */ + typedef struct { + uint32 wrk_heuristics; + } wkssvc_NetWkstaInfo1032; + + typedef struct { + uint32 max_threads; + } wkssvc_NetWkstaInfo1033; + + typedef struct { + uint32 lock_quota; + } wkssvc_NetWkstaInfo1041; + + typedef struct { + uint32 lock_increment; + } wkssvc_NetWkstaInfo1042; + + typedef struct { + uint32 lock_maximum; + } wkssvc_NetWkstaInfo1043; + + typedef struct { + uint32 pipe_increment; + } wkssvc_NetWkstaInfo1044; + + typedef struct { + uint32 pipe_maximum; + } wkssvc_NetWkstaInfo1045; + + typedef struct { + uint32 dormant_file_limit; + } wkssvc_NetWkstaInfo1046; + + typedef struct { + uint32 cache_file_timeout; + } wkssvc_NetWkstaInfo1047; + + typedef struct { + uint32 use_opportunistic_locking; + } wkssvc_NetWkstaInfo1048; + + typedef struct { + uint32 use_unlock_behind; + } wkssvc_NetWkstaInfo1049; + + typedef struct { + uint32 use_close_behind; + } wkssvc_NetWkstaInfo1050; + + typedef struct { + uint32 buf_named_pipes; + } wkssvc_NetWkstaInfo1051; + + typedef struct { + uint32 use_lock_read_unlock; + } wkssvc_NetWkstaInfo1052; + + typedef struct { + uint32 utilize_nt_caching; + } wkssvc_NetWkstaInfo1053; + + typedef struct { + uint32 use_raw_read; + } wkssvc_NetWkstaInfo1054; + + typedef struct { + uint32 use_raw_write; + } wkssvc_NetWkstaInfo1055; + + typedef struct { + uint32 use_write_raw_data; + } wkssvc_NetWkstaInfo1056; + + typedef struct { + uint32 use_encryption; + } wkssvc_NetWkstaInfo1057; + + typedef struct { + uint32 buf_files_deny_write; + } wkssvc_NetWkstaInfo1058; + + typedef struct { + uint32 buf_read_only_files; + } wkssvc_NetWkstaInfo1059; + + typedef struct { + uint32 force_core_create_mode; + } wkssvc_NetWkstaInfo1060; + + typedef struct { + uint32 use_512_byte_max_transfer; + } wkssvc_NetWkstaInfo1061; + + typedef struct { + uint32 read_ahead_throughput; + } wkssvc_NetWkstaInfo1062; + + typedef union { + [case(100)] wkssvc_NetWkstaInfo100 *info100; + [case(101)] wkssvc_NetWkstaInfo101 *info101; + [case(102)] wkssvc_NetWkstaInfo102 *info102; + [case(502)] wkssvc_NetWkstaInfo502 *info502; + [case(1010)] wkssvc_NetWkstaInfo1010 *info1010; + [case(1011)] wkssvc_NetWkstaInfo1011 *info1011; + [case(1012)] wkssvc_NetWkstaInfo1012 *info1012; + [case(1013)] wkssvc_NetWkstaInfo1013 *info1013; + [case(1018)] wkssvc_NetWkstaInfo1018 *info1018; + [case(1023)] wkssvc_NetWkstaInfo1023 *info1023; + [case(1027)] wkssvc_NetWkstaInfo1027 *info1027; + [case(1028)] wkssvc_NetWkstaInfo1028 *info1028; + [case(1032)] wkssvc_NetWkstaInfo1032 *info1032; + [case(1033)] wkssvc_NetWkstaInfo1033 *info1033; + [case(1041)] wkssvc_NetWkstaInfo1041 *info1041; + [case(1042)] wkssvc_NetWkstaInfo1042 *info1042; + [case(1043)] wkssvc_NetWkstaInfo1043 *info1043; + [case(1044)] wkssvc_NetWkstaInfo1044 *info1044; + [case(1045)] wkssvc_NetWkstaInfo1045 *info1045; + [case(1046)] wkssvc_NetWkstaInfo1046 *info1046; + [case(1047)] wkssvc_NetWkstaInfo1047 *info1047; + [case(1048)] wkssvc_NetWkstaInfo1048 *info1048; + [case(1049)] wkssvc_NetWkstaInfo1049 *info1049; + [case(1050)] wkssvc_NetWkstaInfo1050 *info1050; + [case(1051)] wkssvc_NetWkstaInfo1051 *info1051; + [case(1052)] wkssvc_NetWkstaInfo1052 *info1052; + [case(1053)] wkssvc_NetWkstaInfo1053 *info1053; + [case(1054)] wkssvc_NetWkstaInfo1054 *info1054; + [case(1055)] wkssvc_NetWkstaInfo1055 *info1055; + [case(1056)] wkssvc_NetWkstaInfo1056 *info1056; + [case(1057)] wkssvc_NetWkstaInfo1057 *info1057; + [case(1058)] wkssvc_NetWkstaInfo1058 *info1058; + [case(1059)] wkssvc_NetWkstaInfo1059 *info1059; + [case(1060)] wkssvc_NetWkstaInfo1060 *info1060; + [case(1061)] wkssvc_NetWkstaInfo1061 *info1061; + [case(1062)] wkssvc_NetWkstaInfo1062 *info1062; + [default] ; + } wkssvc_NetWkstaInfo; + + WERROR wkssvc_NetWkstaGetInfo( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in] uint32 level, + [out,switch_is(level),ref] wkssvc_NetWkstaInfo *info + ); + + + /******************/ + /* Function: 0x01 */ + WERROR wkssvc_NetWkstaSetInfo( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in] uint32 level, + [in,switch_is(level),ref] wkssvc_NetWkstaInfo *info, + [in,out,ref] uint32 *parm_error + ); + + + /*****************************/ + /* Function 0x02 */ + typedef struct { + [string,charset(UTF16)] uint16 *user_name; + } wkssvc_NetrWkstaUserInfo0; + + typedef struct { + uint32 entries_read; + [size_is(entries_read)] wkssvc_NetrWkstaUserInfo0 *user0; + } wkssvc_NetWkstaEnumUsersCtr0; + + typedef struct { + [string,charset(UTF16)] uint16 *user_name; + [string,charset(UTF16)] uint16 *logon_domain; + [string,charset(UTF16)] uint16 *other_domains; + [string,charset(UTF16)] uint16 *logon_server; + } wkssvc_NetrWkstaUserInfo1; + + typedef struct { + uint32 entries_read; + [size_is(entries_read)] wkssvc_NetrWkstaUserInfo1 *user1; + } wkssvc_NetWkstaEnumUsersCtr1; + + typedef [switch_type(uint32)] union { + [case(0)] wkssvc_NetWkstaEnumUsersCtr0 *user0; + [case(1)] wkssvc_NetWkstaEnumUsersCtr1 *user1; + } wkssvc_NetWkstaEnumUsersCtr; + + typedef struct { + uint32 level; + [switch_is(level)] wkssvc_NetWkstaEnumUsersCtr ctr; + } wkssvc_NetWkstaEnumUsersInfo; + + WERROR wkssvc_NetWkstaEnumUsers( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,out,ref] wkssvc_NetWkstaEnumUsersInfo *info, + [in] uint32 prefmaxlen, + [out,ref] uint32 *entries_read, + [in,out,unique] uint32 *resume_handle + ); + + /*****************************/ + /* Function 0x03 */ + typedef struct { + [string,charset(UTF16)] uint16 *other_domains; + } wkssvc_NetrWkstaUserInfo1101; + + typedef [switch_type(uint32)] union { + [case(0)] wkssvc_NetrWkstaUserInfo0 *info0; + [case(1)] wkssvc_NetrWkstaUserInfo1 *info1; + [case(1101)] wkssvc_NetrWkstaUserInfo1101 *info1101; + } wkssvc_NetrWkstaUserInfo; + + WERROR wkssvc_NetrWkstaUserGetInfo( + [in,unique] [string,charset(UTF16)] uint16 *unknown, + [in] uint32 level, + [out,ref] [switch_is(level)] wkssvc_NetrWkstaUserInfo *info + ); + + /*****************************/ + /* Function 0x04 */ + WERROR wkssvc_NetrWkstaUserSetInfo( + [in,unique] [string,charset(UTF16)] uint16 *unknown, + [in] uint32 level, + [in,ref] [switch_is(level)] wkssvc_NetrWkstaUserInfo *info, + [in,out,unique] uint32 *parm_err + ); + + /*****************************/ + /* Function 0x05 */ + + typedef struct { + uint32 quality_of_service; + uint32 vc_count; + [string,charset(UTF16)] uint16 *name; + [string,charset(UTF16)] uint16 *address; + uint32 wan_link; + } wkssvc_NetWkstaTransportInfo0; + + typedef struct { + uint32 count; + [size_is(count)] wkssvc_NetWkstaTransportInfo0 *array; + } wkssvc_NetWkstaTransportCtr0; + + typedef union { + [case(0)] wkssvc_NetWkstaTransportCtr0 *ctr0; + } wkssvc_NetWkstaTransportCtr; + + typedef struct { + uint32 level; + [switch_is(level)] wkssvc_NetWkstaTransportCtr ctr; + } wkssvc_NetWkstaTransportInfo; + + WERROR wkssvc_NetWkstaTransportEnum ( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,out,ref] wkssvc_NetWkstaTransportInfo *info, + [in] uint32 max_buffer, + [out,ref] uint32 *total_entries, + [in,out,unique] uint32 *resume_handle + ); + + /*****************************/ + /* Function 0x06 */ + /* only supported on NT */ + WERROR wkssvc_NetrWkstaTransportAdd( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in] uint32 level, /* must be 0 */ + [in,ref] wkssvc_NetWkstaTransportInfo0 *info0, + [in,out,unique] uint32 *parm_err + ); + + /*****************************/ + /* Function 0x07 */ + /* only supported on NT */ + WERROR wkssvc_NetrWkstaTransportDel( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,unique] [string,charset(UTF16)] uint16 *transport_name, + [in] uint32 unknown3 + ); + + /*****************************/ + /* Function 0x08 */ + typedef struct { + [string,charset(UTF16)] uint16 *unknown1; + [string,charset(UTF16)] uint16 *unknown2; + } wkssvc_NetrUseInfo3; + + typedef struct { + [string,charset(UTF16)] uint16 *local; + [string,charset(UTF16)] uint16 *remote; + [string,charset(UTF16)] uint16 *password; + uint32 status; + uint32 asg_type; + uint32 ref_count; + uint32 use_count; + [string,charset(UTF16)] uint16 *user_name; + [string,charset(UTF16)] uint16 *domain_name; + } wkssvc_NetrUseInfo2; + + typedef struct { + [string,charset(UTF16)] uint16 *local; + [string,charset(UTF16)] uint16 *remote; + [string,charset(UTF16)] uint16 *password; + uint32 status; + uint32 asg_type; + uint32 ref_count; + uint32 use_count; + } wkssvc_NetrUseInfo1; + + typedef struct { + [string,charset(UTF16)] uint16 *local; + [string,charset(UTF16)] uint16 *remote; + } wkssvc_NetrUseInfo0; + + typedef [switch_type(uint32)] union { + [case(0)] wkssvc_NetrUseInfo0 *info0; + [case(1)] wkssvc_NetrUseInfo1 *info1; + [case(2)] wkssvc_NetrUseInfo2 *info2; + [case(3)] wkssvc_NetrUseInfo3 *info3; + } wkssvc_NetrUseGetInfoCtr; + + WERROR wkssvc_NetrUseAdd( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in] uint32 level, + [in,ref] [switch_is(level)] wkssvc_NetrUseGetInfoCtr *ctr, + [in,out,unique] uint32 *parm_err + ); + + /*****************************/ + /* Function 0x09 */ + WERROR wkssvc_NetrUseGetInfo( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *use_name, + [in] uint32 level, + [out,ref] [switch_is(level)] wkssvc_NetrUseGetInfoCtr *ctr + ); + + /*****************************/ + /* Function 0x0a */ + WERROR wkssvc_NetrUseDel( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *use_name, + [in] uint32 force_cond + ); + + /*****************************/ + /* Function 0x0b */ + typedef struct { + uint32 count; + [size_is(count)] wkssvc_NetrUseInfo2 *array; + } wkssvc_NetrUseEnumCtr2; + + typedef struct { + uint32 count; + [size_is(count)] wkssvc_NetrUseInfo1 *array; + } wkssvc_NetrUseEnumCtr1; + + typedef struct { + uint32 count; + [size_is(count)] wkssvc_NetrUseInfo0 *array; + } wkssvc_NetrUseEnumCtr0; + + typedef [switch_type(uint32)] union { + [case(0)] wkssvc_NetrUseEnumCtr0 *ctr0; + [case(1)] wkssvc_NetrUseEnumCtr1 *ctr1; + [case(2)] wkssvc_NetrUseEnumCtr2 *ctr2; + } wkssvc_NetrUseEnumCtr; + + typedef struct { + uint32 level; + [switch_is(level)] wkssvc_NetrUseEnumCtr ctr; + } wkssvc_NetrUseEnumInfo; + + WERROR wkssvc_NetrUseEnum( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,out,ref] wkssvc_NetrUseEnumInfo *info, + [in] uint32 prefmaxlen, + [out,ref] uint32 *entries_read, + [in,out,unique] uint32 *resume_handle + ); + + /*****************************/ + /* Function 0x0c */ + WERROR wkssvc_NetrMessageBufferSend( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *message_name, + [in,unique] [string,charset(UTF16)] uint16 *message_sender_name, + [in,ref] [size_is(message_size)] uint8 *message_buffer, + [in] uint32 message_size + ); + + /*****************************/ + /* Function 0x0d */ + typedef struct { + hyper unknown1; + hyper unknown2; + hyper unknown3; + hyper unknown4; + hyper unknown5; + hyper unknown6; + hyper unknown7; + hyper unknown8; + hyper unknown9; + hyper unknown10; + hyper unknown11; + hyper unknown12; + hyper unknown13; + uint32 unknown14; + uint32 unknown15; + uint32 unknown16; + uint32 unknown17; + uint32 unknown18; + uint32 unknown19; + uint32 unknown20; + uint32 unknown21; + uint32 unknown22; + uint32 unknown23; + uint32 unknown24; + uint32 unknown25; + uint32 unknown26; + uint32 unknown27; + uint32 unknown28; + uint32 unknown29; + uint32 unknown30; + uint32 unknown31; + uint32 unknown32; + uint32 unknown33; + uint32 unknown34; + uint32 unknown35; + uint32 unknown36; + uint32 unknown37; + uint32 unknown38; + uint32 unknown39; + uint32 unknown40; + } wkssvc_NetrWorkstationStatistics; + + WERROR wkssvc_NetrWorkstationStatisticsGet( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,unique] [string,charset(UTF16)] uint16 *unknown2, + [in] uint32 unknown3, + [in] uint32 unknown4, + [out,ref] wkssvc_NetrWorkstationStatistics **info + ); + + /*****************************/ + /* Function 0x0e */ + WERROR wkssvc_NetrLogonDomainNameAdd( + [in,ref] [string,charset(UTF16)] uint16 *domain_name + ); + + /*****************************/ + /* Function 0x0f */ + WERROR wkssvc_NetrLogonDomainNameDel( + [in,ref] [string,charset(UTF16)] uint16 *domain_name + ); + + /*****************************/ + /* Function 0x10 */ + WERROR wkssvc_NetrJoinDomain( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *domain_name, + [in,unique] [string,charset(UTF16)] uint16 *account_ou, + [in,unique] [string,charset(UTF16)] uint16 *Account, + [in,unique] [string,charset(UTF16)] uint16 *password, + [in] wkssvc_joinflags join_flags + ); + + /*****************************/ + /* Function 0x11 */ + WERROR wkssvc_NetrUnjoinDomain( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,unique] [string,charset(UTF16)] uint16 *Account, + [in,unique] [string,charset(UTF16)] uint16 *password, + [in] wkssvc_joinflags unjoin_flags + ); + + /*****************************/ + /* Function 0x12 */ + typedef [bitmap32bit] bitmap { + /* TRUE: create the account in the domain */ + WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = 0x00000002 + } wkssvc_renameflags; + + WERROR wkssvc_NetrRenameMachineInDomain( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,unique] [string,charset(UTF16)] uint16 *NewMachineName, + [in,unique] [string,charset(UTF16)] uint16 *Account, + [in,unique] [string,charset(UTF16)] uint16 *password, + [in] wkssvc_renameflags RenameOptions + ); + + /*****************************/ + /* Function 0x13 */ + typedef enum { + NetSetupUnknown = 0, + NetSetupMachine = 1, + NetSetupWorkgroup = 2, + NetSetupDomain = 3, + NetSetupNonExistentDomain = 4, + NetSetupDnsMachine = 5 + } wkssvc_NetValidateNameType; + + WERROR wkssvc_NetrValidateName( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *name, + [in,unique] [string,charset(UTF16)] uint16 *Account, + [in,unique] [string,charset(UTF16)] uint16 *Password, + [in] wkssvc_NetValidateNameType name_type + ); + + /*****************************/ + /* Function 0x14 */ + typedef enum { + NET_SETUP_UNKNOWN_STATUS = 0, + NET_SETUP_UNJOINED = 1, + NET_SETUP_WORKGROUP_NAME = 2, + NET_SETUP_DOMAIN_NAME = 3 + } wkssvc_NetJoinStatus; + + WERROR wkssvc_NetrGetJoinInformation( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,out,ref] [string,charset(UTF16)] uint16 **name_buffer, + [out,ref] wkssvc_NetJoinStatus *name_type + ); + + /*****************************/ + /* Function 0x15 */ + WERROR wkssvc_NetrGetJoinableOus( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *domain_name, + [in,unique] [string,charset(UTF16)] uint16 *Account, + [in,unique] [string,charset(UTF16)] uint16 *unknown, + [in,out,ref] uint32 *num_ous, + /* + * this is a [ref] pointer to a [unique] pointer to an + * array of [unique] pointers to a string array + */ + [out,ref] [size_is(,*num_ous)] [string,charset(UTF16)] uint16 ***ous + ); + + typedef [flag(NDR_PAHEX)] struct { + uint8 data[524]; + } wkssvc_PasswordBuffer; + + typedef [bitmap32bit] bitmap { + WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME = 0x00000400, + WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT = 0x00000200, + /* TRUE: defer setting the SPN and dNSHostName until a rename operation */ + WKSSVC_JOIN_FLAGS_DEFER_SPN = 0x00000100, + + /* TRUE: set the machine password to the provided one after the join completes */ + WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED = 0x00000080, + + /* TRUE: perform an unsecured join */ + WKSSVC_JOIN_FLAGS_JOIN_UNSECURE = 0x00000040, + + /* TRUE: allow the join to complete even if the account already exists */ + WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED = 0x00000020, + + /* TRUE: this join is part of a w9x upgrade */ + WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE = 0x00000010, + + /* TRUE: delete the account when the domain is left */ + WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE = 0x00000004, + + /* TRUE: create the account in the domain */ + WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = 0x00000002, + + /* TRUE: join domain FALSE: join workgroup */ + WKSSVC_JOIN_FLAGS_JOIN_TYPE = 0x00000001 + + } wkssvc_joinflags; + + /*****************************/ + /* Function 0x16 */ + WERROR wkssvc_NetrJoinDomain2 ( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *domain_name, + [in,unique] [string,charset(UTF16)] uint16 *account_ou, + [in,unique] [string,charset(UTF16)] uint16 *admin_account, + [in,unique] wkssvc_PasswordBuffer *encrypted_password, + [in] wkssvc_joinflags join_flags + ); + + /*****************************/ + /* Function 0x17 */ + WERROR wkssvc_NetrUnjoinDomain2 ( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,unique] [string,charset(UTF16)] uint16 *account, + [in,unique] wkssvc_PasswordBuffer *encrypted_password, + [in] wkssvc_joinflags unjoin_flags + ); + + /*****************************/ + /* Function 0x18 */ + WERROR wkssvc_NetrRenameMachineInDomain2( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,unique] [string,charset(UTF16)] uint16 *NewMachineName, + [in,unique] [string,charset(UTF16)] uint16 *Account, + [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, + [in] wkssvc_renameflags RenameOptions + ); + + /*****************************/ + /* Function 0x19 */ + WERROR wkssvc_NetrValidateName2( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *name, + [in,unique] [string,charset(UTF16)] uint16 *Account, + [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, + [in] wkssvc_NetValidateNameType name_type + ); + + /*****************************/ + /* Function 0x1a */ + WERROR wkssvc_NetrGetJoinableOus2( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *domain_name, + [in,unique] [string,charset(UTF16)] uint16 *Account, + [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, + [in,out,ref] uint32 *num_ous, + /* + * this is a [ref] pointer to a [unique] pointer to an + * array of [unique] pointers to a string array + */ + [out,ref] [size_is(,*num_ous)] [string,charset(UTF16)] uint16 ***ous + ); + + /*****************************/ + /* Function 0x1b */ + WERROR wkssvc_NetrAddAlternateComputerName( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,unique] [string,charset(UTF16)] uint16 *NewAlternateMachineName, + [in,unique] [string,charset(UTF16)] uint16 *Account, + [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, + [in] uint32 Reserved + ); + + /*****************************/ + /* Function 0x1c */ + WERROR wkssvc_NetrRemoveAlternateComputerName( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,unique] [string,charset(UTF16)] uint16 *AlternateMachineNameToRemove, + [in,unique] [string,charset(UTF16)] uint16 *Account, + [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, + [in] uint32 Reserved + ); + + /*****************************/ + /* Function 0x1d */ + WERROR wkssvc_NetrSetPrimaryComputername( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,unique] [string,charset(UTF16)] uint16 *primary_name, + [in,unique] [string,charset(UTF16)] uint16 *Account, + [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, + [in] uint32 Reserved + ); + + /*****************************/ + /* Function 0x1e */ + typedef enum { + NetPrimaryComputerName = 0, + NetAlternateComputerNames = 1, + NetAllComputerNames = 2, + NetComputerNameTypeMax = 3 + } wkssvc_ComputerNameType; + + typedef struct { + uint32 count; + [size_is(count)] lsa_String *computer_name; + } wkssvc_ComputerNamesCtr; + + WERROR wkssvc_NetrEnumerateComputerNames( + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in] wkssvc_ComputerNameType name_type, + [in] uint32 Reserved, + [out,ref] wkssvc_ComputerNamesCtr **ctr + ); +} diff --git a/source3/Makefile.in b/source3/Makefile.in index c5940b483b..93c9b5ea49 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -1202,7 +1202,7 @@ samba3-idl:: srcdir="$(srcdir)" $(srcdir)/script/build_idl.sh librpc/idl/lsa.idl \ ../librpc/idl/dfs.idl ../librpc/idl/echo.idl librpc/idl/winreg.idl \ ../librpc/idl/initshutdown.idl librpc/idl/srvsvc.idl ../librpc/idl/svcctl.idl \ - ../librpc/idl/eventlog.idl librpc/idl/wkssvc.idl librpc/idl/netlogon.idl \ + ../librpc/idl/eventlog.idl ../librpc/idl/wkssvc.idl librpc/idl/netlogon.idl \ ../librpc/idl/notify.idl ../librpc/idl/epmapper.idl librpc/idl/messaging.idl \ ../librpc/idl/xattr.idl ../librpc/idl/misc.idl librpc/idl/samr.idl \ ../librpc/idl/security.idl ../librpc/idl/dssetup.idl librpc/idl/krb5pac.idl \ diff --git a/source3/librpc/idl/wkssvc.idl b/source3/librpc/idl/wkssvc.idl deleted file mode 100644 index 9340990e99..0000000000 --- a/source3/librpc/idl/wkssvc.idl +++ /dev/null @@ -1,795 +0,0 @@ -#include "idl_types.h" - -/* - wkssvc interface definitions -*/ - -import "srvsvc.idl", "lsa.idl"; - -[ uuid("6bffd098-a112-3610-9833-46c3f87e345a"), - version(1.0), - pointer_default(unique), - helpstring("Workstation Service"), - endpoint("ncacn_np:[\\pipe\\wkssvc]","ncacn_ip_tcp:","ncalrpc:") -] interface wkssvc -{ - typedef [v1_enum] enum srvsvc_PlatformId srvsvc_PlatformId; - -#define BOOL uint32 - - /******************/ - /* Function: 0x00 */ - - typedef struct { - srvsvc_PlatformId platform_id; - [string,charset(UTF16)] uint16 *server_name; - [string,charset(UTF16)] uint16 *domain_name; - uint32 version_major; - uint32 version_minor; - } wkssvc_NetWkstaInfo100; - - typedef struct { - srvsvc_PlatformId platform_id; - [string,charset(UTF16)] uint16 *server_name; - [string,charset(UTF16)] uint16 *domain_name; - uint32 version_major; - uint32 version_minor; - [string,charset(UTF16)] uint16 *lan_root; - } wkssvc_NetWkstaInfo101; - - typedef struct { - srvsvc_PlatformId platform_id; - [string,charset(UTF16)] uint16 *server_name; - [string,charset(UTF16)] uint16 *domain_name; - uint32 version_major; - uint32 version_minor; - [string,charset(UTF16)] uint16 *lan_root; - uint32 logged_on_users; - } wkssvc_NetWkstaInfo102; - - /* FIXME: 302, 402 */ - - typedef struct { - uint32 char_wait; - uint32 collection_time; - uint32 maximum_collection_count; - uint32 keep_connection; - uint32 max_commands; - uint32 session_timeout; - uint32 size_char_buf; - uint32 max_threads; - uint32 lock_quota; - uint32 lock_increment; - uint32 lock_maximum; - uint32 pipe_increment; - uint32 pipe_maximum; - uint32 cache_file_timeout; - uint32 dormant_file_limit; - uint32 read_ahead_throughput; - uint32 num_mailslot_buffers; - uint32 num_srv_announce_buffers; - uint32 max_illegal_dgram_events; - uint32 dgram_event_reset_freq; - BOOL log_election_packets; - BOOL use_opportunistic_locking; - BOOL use_unlock_behind; - BOOL use_close_behind; - BOOL buf_named_pipes; - BOOL use_lock_read_unlock; - BOOL utilize_nt_caching; - BOOL use_raw_read; - BOOL use_raw_write; - BOOL use_write_raw_data; - BOOL use_encryption; - BOOL buf_files_deny_write; - BOOL buf_read_only_files; - BOOL force_core_create_mode; - BOOL use_512_byte_max_transfer; - } wkssvc_NetWkstaInfo502; - - typedef struct { - uint32 char_wait; - } wkssvc_NetWkstaInfo1010; - - typedef struct { - uint32 collection_time; - } wkssvc_NetWkstaInfo1011; - - typedef struct { - uint32 maximum_collection_count; - } wkssvc_NetWkstaInfo1012; - - typedef struct { - uint32 keep_connection; - } wkssvc_NetWkstaInfo1013; - - typedef struct { - uint32 session_timeout; - } wkssvc_NetWkstaInfo1018; - - typedef struct { - uint32 size_char_buf; - } wkssvc_NetWkstaInfo1023; - - typedef struct { - uint32 errorlog_sz; - } wkssvc_NetWkstaInfo1027; - - /* downlevel */ - typedef struct { - uint32 print_buf_time; - } wkssvc_NetWkstaInfo1028; - - /* downlevel */ - typedef struct { - uint32 wrk_heuristics; - } wkssvc_NetWkstaInfo1032; - - typedef struct { - uint32 max_threads; - } wkssvc_NetWkstaInfo1033; - - typedef struct { - uint32 lock_quota; - } wkssvc_NetWkstaInfo1041; - - typedef struct { - uint32 lock_increment; - } wkssvc_NetWkstaInfo1042; - - typedef struct { - uint32 lock_maximum; - } wkssvc_NetWkstaInfo1043; - - typedef struct { - uint32 pipe_increment; - } wkssvc_NetWkstaInfo1044; - - typedef struct { - uint32 pipe_maximum; - } wkssvc_NetWkstaInfo1045; - - typedef struct { - uint32 dormant_file_limit; - } wkssvc_NetWkstaInfo1046; - - typedef struct { - uint32 cache_file_timeout; - } wkssvc_NetWkstaInfo1047; - - typedef struct { - uint32 use_opportunistic_locking; - } wkssvc_NetWkstaInfo1048; - - typedef struct { - uint32 use_unlock_behind; - } wkssvc_NetWkstaInfo1049; - - typedef struct { - uint32 use_close_behind; - } wkssvc_NetWkstaInfo1050; - - typedef struct { - uint32 buf_named_pipes; - } wkssvc_NetWkstaInfo1051; - - typedef struct { - uint32 use_lock_read_unlock; - } wkssvc_NetWkstaInfo1052; - - typedef struct { - uint32 utilize_nt_caching; - } wkssvc_NetWkstaInfo1053; - - typedef struct { - uint32 use_raw_read; - } wkssvc_NetWkstaInfo1054; - - typedef struct { - uint32 use_raw_write; - } wkssvc_NetWkstaInfo1055; - - typedef struct { - uint32 use_write_raw_data; - } wkssvc_NetWkstaInfo1056; - - typedef struct { - uint32 use_encryption; - } wkssvc_NetWkstaInfo1057; - - typedef struct { - uint32 buf_files_deny_write; - } wkssvc_NetWkstaInfo1058; - - typedef struct { - uint32 buf_read_only_files; - } wkssvc_NetWkstaInfo1059; - - typedef struct { - uint32 force_core_create_mode; - } wkssvc_NetWkstaInfo1060; - - typedef struct { - uint32 use_512_byte_max_transfer; - } wkssvc_NetWkstaInfo1061; - - typedef struct { - uint32 read_ahead_throughput; - } wkssvc_NetWkstaInfo1062; - - typedef union { - [case(100)] wkssvc_NetWkstaInfo100 *info100; - [case(101)] wkssvc_NetWkstaInfo101 *info101; - [case(102)] wkssvc_NetWkstaInfo102 *info102; - [case(502)] wkssvc_NetWkstaInfo502 *info502; - [case(1010)] wkssvc_NetWkstaInfo1010 *info1010; - [case(1011)] wkssvc_NetWkstaInfo1011 *info1011; - [case(1012)] wkssvc_NetWkstaInfo1012 *info1012; - [case(1013)] wkssvc_NetWkstaInfo1013 *info1013; - [case(1018)] wkssvc_NetWkstaInfo1018 *info1018; - [case(1023)] wkssvc_NetWkstaInfo1023 *info1023; - [case(1027)] wkssvc_NetWkstaInfo1027 *info1027; - [case(1028)] wkssvc_NetWkstaInfo1028 *info1028; - [case(1032)] wkssvc_NetWkstaInfo1032 *info1032; - [case(1033)] wkssvc_NetWkstaInfo1033 *info1033; - [case(1041)] wkssvc_NetWkstaInfo1041 *info1041; - [case(1042)] wkssvc_NetWkstaInfo1042 *info1042; - [case(1043)] wkssvc_NetWkstaInfo1043 *info1043; - [case(1044)] wkssvc_NetWkstaInfo1044 *info1044; - [case(1045)] wkssvc_NetWkstaInfo1045 *info1045; - [case(1046)] wkssvc_NetWkstaInfo1046 *info1046; - [case(1047)] wkssvc_NetWkstaInfo1047 *info1047; - [case(1048)] wkssvc_NetWkstaInfo1048 *info1048; - [case(1049)] wkssvc_NetWkstaInfo1049 *info1049; - [case(1050)] wkssvc_NetWkstaInfo1050 *info1050; - [case(1051)] wkssvc_NetWkstaInfo1051 *info1051; - [case(1052)] wkssvc_NetWkstaInfo1052 *info1052; - [case(1053)] wkssvc_NetWkstaInfo1053 *info1053; - [case(1054)] wkssvc_NetWkstaInfo1054 *info1054; - [case(1055)] wkssvc_NetWkstaInfo1055 *info1055; - [case(1056)] wkssvc_NetWkstaInfo1056 *info1056; - [case(1057)] wkssvc_NetWkstaInfo1057 *info1057; - [case(1058)] wkssvc_NetWkstaInfo1058 *info1058; - [case(1059)] wkssvc_NetWkstaInfo1059 *info1059; - [case(1060)] wkssvc_NetWkstaInfo1060 *info1060; - [case(1061)] wkssvc_NetWkstaInfo1061 *info1061; - [case(1062)] wkssvc_NetWkstaInfo1062 *info1062; - [default] ; - } wkssvc_NetWkstaInfo; - - WERROR wkssvc_NetWkstaGetInfo( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in] uint32 level, - [out,switch_is(level),ref] wkssvc_NetWkstaInfo *info - ); - - - /******************/ - /* Function: 0x01 */ - WERROR wkssvc_NetWkstaSetInfo( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in] uint32 level, - [in,switch_is(level),ref] wkssvc_NetWkstaInfo *info, - [in,out,ref] uint32 *parm_error - ); - - - /*****************************/ - /* Function 0x02 */ - typedef struct { - [string,charset(UTF16)] uint16 *user_name; - } wkssvc_NetrWkstaUserInfo0; - - typedef struct { - uint32 entries_read; - [size_is(entries_read)] wkssvc_NetrWkstaUserInfo0 *user0; - } wkssvc_NetWkstaEnumUsersCtr0; - - typedef struct { - [string,charset(UTF16)] uint16 *user_name; - [string,charset(UTF16)] uint16 *logon_domain; - [string,charset(UTF16)] uint16 *other_domains; - [string,charset(UTF16)] uint16 *logon_server; - } wkssvc_NetrWkstaUserInfo1; - - typedef struct { - uint32 entries_read; - [size_is(entries_read)] wkssvc_NetrWkstaUserInfo1 *user1; - } wkssvc_NetWkstaEnumUsersCtr1; - - typedef [switch_type(uint32)] union { - [case(0)] wkssvc_NetWkstaEnumUsersCtr0 *user0; - [case(1)] wkssvc_NetWkstaEnumUsersCtr1 *user1; - } wkssvc_NetWkstaEnumUsersCtr; - - typedef struct { - uint32 level; - [switch_is(level)] wkssvc_NetWkstaEnumUsersCtr ctr; - } wkssvc_NetWkstaEnumUsersInfo; - - WERROR wkssvc_NetWkstaEnumUsers( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,out,ref] wkssvc_NetWkstaEnumUsersInfo *info, - [in] uint32 prefmaxlen, - [out,ref] uint32 *entries_read, - [in,out,unique] uint32 *resume_handle - ); - - /*****************************/ - /* Function 0x03 */ - typedef struct { - [string,charset(UTF16)] uint16 *other_domains; - } wkssvc_NetrWkstaUserInfo1101; - - typedef [switch_type(uint32)] union { - [case(0)] wkssvc_NetrWkstaUserInfo0 *info0; - [case(1)] wkssvc_NetrWkstaUserInfo1 *info1; - [case(1101)] wkssvc_NetrWkstaUserInfo1101 *info1101; - } wkssvc_NetrWkstaUserInfo; - - WERROR wkssvc_NetrWkstaUserGetInfo( - [in,unique] [string,charset(UTF16)] uint16 *unknown, - [in] uint32 level, - [out,ref] [switch_is(level)] wkssvc_NetrWkstaUserInfo *info - ); - - /*****************************/ - /* Function 0x04 */ - WERROR wkssvc_NetrWkstaUserSetInfo( - [in,unique] [string,charset(UTF16)] uint16 *unknown, - [in] uint32 level, - [in,ref] [switch_is(level)] wkssvc_NetrWkstaUserInfo *info, - [in,out,unique] uint32 *parm_err - ); - - /*****************************/ - /* Function 0x05 */ - - typedef struct { - uint32 quality_of_service; - uint32 vc_count; - [string,charset(UTF16)] uint16 *name; - [string,charset(UTF16)] uint16 *address; - uint32 wan_link; - } wkssvc_NetWkstaTransportInfo0; - - typedef struct { - uint32 count; - [size_is(count)] wkssvc_NetWkstaTransportInfo0 *array; - } wkssvc_NetWkstaTransportCtr0; - - typedef union { - [case(0)] wkssvc_NetWkstaTransportCtr0 *ctr0; - } wkssvc_NetWkstaTransportCtr; - - typedef struct { - uint32 level; - [switch_is(level)] wkssvc_NetWkstaTransportCtr ctr; - } wkssvc_NetWkstaTransportInfo; - - WERROR wkssvc_NetWkstaTransportEnum ( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,out,ref] wkssvc_NetWkstaTransportInfo *info, - [in] uint32 max_buffer, - [out,ref] uint32 *total_entries, - [in,out,unique] uint32 *resume_handle - ); - - /*****************************/ - /* Function 0x06 */ - /* only supported on NT */ - WERROR wkssvc_NetrWkstaTransportAdd( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in] uint32 level, /* must be 0 */ - [in,ref] wkssvc_NetWkstaTransportInfo0 *info0, - [in,out,unique] uint32 *parm_err - ); - - /*****************************/ - /* Function 0x07 */ - /* only supported on NT */ - WERROR wkssvc_NetrWkstaTransportDel( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *transport_name, - [in] uint32 unknown3 - ); - - /*****************************/ - /* Function 0x08 */ - typedef struct { - [string,charset(UTF16)] uint16 *unknown1; - [string,charset(UTF16)] uint16 *unknown2; - } wkssvc_NetrUseInfo3; - - typedef struct { - [string,charset(UTF16)] uint16 *local; - [string,charset(UTF16)] uint16 *remote; - [string,charset(UTF16)] uint16 *password; - uint32 status; - uint32 asg_type; - uint32 ref_count; - uint32 use_count; - [string,charset(UTF16)] uint16 *user_name; - [string,charset(UTF16)] uint16 *domain_name; - } wkssvc_NetrUseInfo2; - - typedef struct { - [string,charset(UTF16)] uint16 *local; - [string,charset(UTF16)] uint16 *remote; - [string,charset(UTF16)] uint16 *password; - uint32 status; - uint32 asg_type; - uint32 ref_count; - uint32 use_count; - } wkssvc_NetrUseInfo1; - - typedef struct { - [string,charset(UTF16)] uint16 *local; - [string,charset(UTF16)] uint16 *remote; - } wkssvc_NetrUseInfo0; - - typedef [switch_type(uint32)] union { - [case(0)] wkssvc_NetrUseInfo0 *info0; - [case(1)] wkssvc_NetrUseInfo1 *info1; - [case(2)] wkssvc_NetrUseInfo2 *info2; - [case(3)] wkssvc_NetrUseInfo3 *info3; - } wkssvc_NetrUseGetInfoCtr; - - WERROR wkssvc_NetrUseAdd( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in] uint32 level, - [in,ref] [switch_is(level)] wkssvc_NetrUseGetInfoCtr *ctr, - [in,out,unique] uint32 *parm_err - ); - - /*****************************/ - /* Function 0x09 */ - WERROR wkssvc_NetrUseGetInfo( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *use_name, - [in] uint32 level, - [out,ref] [switch_is(level)] wkssvc_NetrUseGetInfoCtr *ctr - ); - - /*****************************/ - /* Function 0x0a */ - WERROR wkssvc_NetrUseDel( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *use_name, - [in] uint32 force_cond - ); - - /*****************************/ - /* Function 0x0b */ - typedef struct { - uint32 count; - [size_is(count)] wkssvc_NetrUseInfo2 *array; - } wkssvc_NetrUseEnumCtr2; - - typedef struct { - uint32 count; - [size_is(count)] wkssvc_NetrUseInfo1 *array; - } wkssvc_NetrUseEnumCtr1; - - typedef struct { - uint32 count; - [size_is(count)] wkssvc_NetrUseInfo0 *array; - } wkssvc_NetrUseEnumCtr0; - - typedef [switch_type(uint32)] union { - [case(0)] wkssvc_NetrUseEnumCtr0 *ctr0; - [case(1)] wkssvc_NetrUseEnumCtr1 *ctr1; - [case(2)] wkssvc_NetrUseEnumCtr2 *ctr2; - } wkssvc_NetrUseEnumCtr; - - typedef struct { - uint32 level; - [switch_is(level)] wkssvc_NetrUseEnumCtr ctr; - } wkssvc_NetrUseEnumInfo; - - WERROR wkssvc_NetrUseEnum( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,out,ref] wkssvc_NetrUseEnumInfo *info, - [in] uint32 prefmaxlen, - [out,ref] uint32 *entries_read, - [in,out,unique] uint32 *resume_handle - ); - - /*****************************/ - /* Function 0x0c */ - WERROR wkssvc_NetrMessageBufferSend( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *message_name, - [in,unique] [string,charset(UTF16)] uint16 *message_sender_name, - [in,ref] [size_is(message_size)] uint8 *message_buffer, - [in] uint32 message_size - ); - - /*****************************/ - /* Function 0x0d */ - typedef struct { - hyper unknown1; - hyper unknown2; - hyper unknown3; - hyper unknown4; - hyper unknown5; - hyper unknown6; - hyper unknown7; - hyper unknown8; - hyper unknown9; - hyper unknown10; - hyper unknown11; - hyper unknown12; - hyper unknown13; - uint32 unknown14; - uint32 unknown15; - uint32 unknown16; - uint32 unknown17; - uint32 unknown18; - uint32 unknown19; - uint32 unknown20; - uint32 unknown21; - uint32 unknown22; - uint32 unknown23; - uint32 unknown24; - uint32 unknown25; - uint32 unknown26; - uint32 unknown27; - uint32 unknown28; - uint32 unknown29; - uint32 unknown30; - uint32 unknown31; - uint32 unknown32; - uint32 unknown33; - uint32 unknown34; - uint32 unknown35; - uint32 unknown36; - uint32 unknown37; - uint32 unknown38; - uint32 unknown39; - uint32 unknown40; - } wkssvc_NetrWorkstationStatistics; - - WERROR wkssvc_NetrWorkstationStatisticsGet( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *unknown2, - [in] uint32 unknown3, - [in] uint32 unknown4, - [out,ref] wkssvc_NetrWorkstationStatistics **info - ); - - /*****************************/ - /* Function 0x0e */ - WERROR wkssvc_NetrLogonDomainNameAdd( - [in,ref] [string,charset(UTF16)] uint16 *domain_name - ); - - /*****************************/ - /* Function 0x0f */ - WERROR wkssvc_NetrLogonDomainNameDel( - [in,ref] [string,charset(UTF16)] uint16 *domain_name - ); - - /*****************************/ - /* Function 0x10 */ - WERROR wkssvc_NetrJoinDomain( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *domain_name, - [in,unique] [string,charset(UTF16)] uint16 *account_ou, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] [string,charset(UTF16)] uint16 *password, - [in] wkssvc_joinflags join_flags - ); - - /*****************************/ - /* Function 0x11 */ - WERROR wkssvc_NetrUnjoinDomain( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] [string,charset(UTF16)] uint16 *password, - [in] wkssvc_joinflags unjoin_flags - ); - - /*****************************/ - /* Function 0x12 */ - typedef [bitmap32bit] bitmap { - /* TRUE: create the account in the domain */ - WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = 0x00000002 - } wkssvc_renameflags; - - WERROR wkssvc_NetrRenameMachineInDomain( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *NewMachineName, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] [string,charset(UTF16)] uint16 *password, - [in] wkssvc_renameflags RenameOptions - ); - - /*****************************/ - /* Function 0x13 */ - typedef enum { - NetSetupUnknown = 0, - NetSetupMachine = 1, - NetSetupWorkgroup = 2, - NetSetupDomain = 3, - NetSetupNonExistentDomain = 4, - NetSetupDnsMachine = 5 - } wkssvc_NetValidateNameType; - - WERROR wkssvc_NetrValidateName( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *name, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] [string,charset(UTF16)] uint16 *Password, - [in] wkssvc_NetValidateNameType name_type - ); - - /*****************************/ - /* Function 0x14 */ - typedef enum { - NET_SETUP_UNKNOWN_STATUS = 0, - NET_SETUP_UNJOINED = 1, - NET_SETUP_WORKGROUP_NAME = 2, - NET_SETUP_DOMAIN_NAME = 3 - } wkssvc_NetJoinStatus; - - WERROR wkssvc_NetrGetJoinInformation( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,out,ref] [string,charset(UTF16)] uint16 **name_buffer, - [out,ref] wkssvc_NetJoinStatus *name_type - ); - - /*****************************/ - /* Function 0x15 */ - WERROR wkssvc_NetrGetJoinableOus( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *domain_name, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] [string,charset(UTF16)] uint16 *unknown, - [in,out,ref] uint32 *num_ous, - /* - * this is a [ref] pointer to a [unique] pointer to an - * array of [unique] pointers to a string array - */ - [out,ref] [size_is(,*num_ous)] [string,charset(UTF16)] uint16 ***ous - ); - - typedef [flag(NDR_PAHEX)] struct { - uint8 data[524]; - } wkssvc_PasswordBuffer; - - typedef [bitmap32bit] bitmap { - WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME = 0x00000400, - WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT = 0x00000200, - /* TRUE: defer setting the SPN and dNSHostName until a rename operation */ - WKSSVC_JOIN_FLAGS_DEFER_SPN = 0x00000100, - - /* TRUE: set the machine password to the provided one after the join completes */ - WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED = 0x00000080, - - /* TRUE: perform an unsecured join */ - WKSSVC_JOIN_FLAGS_JOIN_UNSECURE = 0x00000040, - - /* TRUE: allow the join to complete even if the account already exists */ - WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED = 0x00000020, - - /* TRUE: this join is part of a w9x upgrade */ - WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE = 0x00000010, - - /* TRUE: delete the account when the domain is left */ - WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE = 0x00000004, - - /* TRUE: create the account in the domain */ - WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = 0x00000002, - - /* TRUE: join domain FALSE: join workgroup */ - WKSSVC_JOIN_FLAGS_JOIN_TYPE = 0x00000001 - - } wkssvc_joinflags; - - /*****************************/ - /* Function 0x16 */ - WERROR wkssvc_NetrJoinDomain2 ( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *domain_name, - [in,unique] [string,charset(UTF16)] uint16 *account_ou, - [in,unique] [string,charset(UTF16)] uint16 *admin_account, - [in,unique] wkssvc_PasswordBuffer *encrypted_password, - [in] wkssvc_joinflags join_flags - ); - - /*****************************/ - /* Function 0x17 */ - WERROR wkssvc_NetrUnjoinDomain2 ( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *account, - [in,unique] wkssvc_PasswordBuffer *encrypted_password, - [in] wkssvc_joinflags unjoin_flags - ); - - /*****************************/ - /* Function 0x18 */ - WERROR wkssvc_NetrRenameMachineInDomain2( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *NewMachineName, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, - [in] wkssvc_renameflags RenameOptions - ); - - /*****************************/ - /* Function 0x19 */ - WERROR wkssvc_NetrValidateName2( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *name, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, - [in] wkssvc_NetValidateNameType name_type - ); - - /*****************************/ - /* Function 0x1a */ - WERROR wkssvc_NetrGetJoinableOus2( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *domain_name, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, - [in,out,ref] uint32 *num_ous, - /* - * this is a [ref] pointer to a [unique] pointer to an - * array of [unique] pointers to a string array - */ - [out,ref] [size_is(,*num_ous)] [string,charset(UTF16)] uint16 ***ous - ); - - /*****************************/ - /* Function 0x1b */ - WERROR wkssvc_NetrAddAlternateComputerName( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *NewAlternateMachineName, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, - [in] uint32 Reserved - ); - - /*****************************/ - /* Function 0x1c */ - WERROR wkssvc_NetrRemoveAlternateComputerName( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *AlternateMachineNameToRemove, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, - [in] uint32 Reserved - ); - - /*****************************/ - /* Function 0x1d */ - WERROR wkssvc_NetrSetPrimaryComputername( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *primary_name, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, - [in] uint32 Reserved - ); - - /*****************************/ - /* Function 0x1e */ - typedef enum { - NetPrimaryComputerName = 0, - NetAlternateComputerNames = 1, - NetAllComputerNames = 2, - NetComputerNameTypeMax = 3 - } wkssvc_ComputerNameType; - - typedef struct { - uint32 count; - [size_is(count)] lsa_String *computer_name; - } wkssvc_ComputerNamesCtr; - - WERROR wkssvc_NetrEnumerateComputerNames( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in] wkssvc_ComputerNameType name_type, - [in] uint32 Reserved, - [out,ref] wkssvc_ComputerNamesCtr **ctr - ); -} diff --git a/source4/librpc/idl/wkssvc.idl b/source4/librpc/idl/wkssvc.idl deleted file mode 100644 index 023ce59ad9..0000000000 --- a/source4/librpc/idl/wkssvc.idl +++ /dev/null @@ -1,795 +0,0 @@ -#include "idl_types.h" - -/* - wkssvc interface definitions -*/ - -import "srvsvc.idl", "lsa.idl"; - -[ uuid("6bffd098-a112-3610-9833-46c3f87e345a"), - version(1.0), - pointer_default(unique), - helpstring("Workstation Service"), - endpoint("ncacn_np:[\\pipe\\wkssvc]","ncacn_ip_tcp:","ncalrpc:") -] interface wkssvc -{ - typedef [v1_enum] enum srvsvc_PlatformId srvsvc_PlatformId; - -#define BOOL uint32 - - /******************/ - /* Function: 0x00 */ - - typedef struct { - srvsvc_PlatformId platform_id; - [string,charset(UTF16)] uint16 *server_name; - [string,charset(UTF16)] uint16 *domain_name; - uint32 version_major; - uint32 version_minor; - } wkssvc_NetWkstaInfo100; - - typedef struct { - srvsvc_PlatformId platform_id; - [string,charset(UTF16)] uint16 *server_name; - [string,charset(UTF16)] uint16 *domain_name; - uint32 version_major; - uint32 version_minor; - [string,charset(UTF16)] uint16 *lan_root; - } wkssvc_NetWkstaInfo101; - - typedef struct { - srvsvc_PlatformId platform_id; - [string,charset(UTF16)] uint16 *server_name; - [string,charset(UTF16)] uint16 *domain_name; - uint32 version_major; - uint32 version_minor; - [string,charset(UTF16)] uint16 *lan_root; - uint32 logged_on_users; - } wkssvc_NetWkstaInfo102; - - /* FIXME: 302, 402 */ - - typedef struct { - uint32 char_wait; - uint32 collection_time; - uint32 maximum_collection_count; - uint32 keep_connection; - uint32 max_commands; - uint32 session_timeout; - uint32 size_char_buf; - uint32 max_threads; - uint32 lock_quota; - uint32 lock_increment; - uint32 lock_maximum; - uint32 pipe_increment; - uint32 pipe_maximum; - uint32 cache_file_timeout; - uint32 dormant_file_limit; - uint32 read_ahead_throughput; - uint32 num_mailslot_buffers; - uint32 num_srv_announce_buffers; - uint32 max_illegal_dgram_events; - uint32 dgram_event_reset_freq; - BOOL log_election_packets; - BOOL use_opportunistic_locking; - BOOL use_unlock_behind; - BOOL use_close_behind; - BOOL buf_named_pipes; - BOOL use_lock_read_unlock; - BOOL utilize_nt_caching; - BOOL use_raw_read; - BOOL use_raw_write; - BOOL use_write_raw_data; - BOOL use_encryption; - BOOL buf_files_deny_write; - BOOL buf_read_only_files; - BOOL force_core_create_mode; - BOOL use_512_byte_max_transfer; - } wkssvc_NetWkstaInfo502; - - typedef struct { - uint32 char_wait; - } wkssvc_NetWkstaInfo1010; - - typedef struct { - uint32 collection_time; - } wkssvc_NetWkstaInfo1011; - - typedef struct { - uint32 maximum_collection_count; - } wkssvc_NetWkstaInfo1012; - - typedef struct { - uint32 keep_connection; - } wkssvc_NetWkstaInfo1013; - - typedef struct { - uint32 session_timeout; - } wkssvc_NetWkstaInfo1018; - - typedef struct { - uint32 size_char_buf; - } wkssvc_NetWkstaInfo1023; - - typedef struct { - uint32 errorlog_sz; - } wkssvc_NetWkstaInfo1027; - - /* downlevel */ - typedef struct { - uint32 print_buf_time; - } wkssvc_NetWkstaInfo1028; - - /* downlevel */ - typedef struct { - uint32 wrk_heuristics; - } wkssvc_NetWkstaInfo1032; - - typedef struct { - uint32 max_threads; - } wkssvc_NetWkstaInfo1033; - - typedef struct { - uint32 lock_quota; - } wkssvc_NetWkstaInfo1041; - - typedef struct { - uint32 lock_increment; - } wkssvc_NetWkstaInfo1042; - - typedef struct { - uint32 lock_maximum; - } wkssvc_NetWkstaInfo1043; - - typedef struct { - uint32 pipe_increment; - } wkssvc_NetWkstaInfo1044; - - typedef struct { - uint32 pipe_maximum; - } wkssvc_NetWkstaInfo1045; - - typedef struct { - uint32 dormant_file_limit; - } wkssvc_NetWkstaInfo1046; - - typedef struct { - uint32 cache_file_timeout; - } wkssvc_NetWkstaInfo1047; - - typedef struct { - uint32 use_opportunistic_locking; - } wkssvc_NetWkstaInfo1048; - - typedef struct { - uint32 use_unlock_behind; - } wkssvc_NetWkstaInfo1049; - - typedef struct { - uint32 use_close_behind; - } wkssvc_NetWkstaInfo1050; - - typedef struct { - uint32 buf_named_pipes; - } wkssvc_NetWkstaInfo1051; - - typedef struct { - uint32 use_lock_read_unlock; - } wkssvc_NetWkstaInfo1052; - - typedef struct { - uint32 utilize_nt_caching; - } wkssvc_NetWkstaInfo1053; - - typedef struct { - uint32 use_raw_read; - } wkssvc_NetWkstaInfo1054; - - typedef struct { - uint32 use_raw_write; - } wkssvc_NetWkstaInfo1055; - - typedef struct { - uint32 use_write_raw_data; - } wkssvc_NetWkstaInfo1056; - - typedef struct { - uint32 use_encryption; - } wkssvc_NetWkstaInfo1057; - - typedef struct { - uint32 buf_files_deny_write; - } wkssvc_NetWkstaInfo1058; - - typedef struct { - uint32 buf_read_only_files; - } wkssvc_NetWkstaInfo1059; - - typedef struct { - uint32 force_core_create_mode; - } wkssvc_NetWkstaInfo1060; - - typedef struct { - uint32 use_512_byte_max_transfer; - } wkssvc_NetWkstaInfo1061; - - typedef struct { - uint32 read_ahead_throughput; - } wkssvc_NetWkstaInfo1062; - - typedef union { - [case(100)] wkssvc_NetWkstaInfo100 *info100; - [case(101)] wkssvc_NetWkstaInfo101 *info101; - [case(102)] wkssvc_NetWkstaInfo102 *info102; - [case(502)] wkssvc_NetWkstaInfo502 *info502; - [case(1010)] wkssvc_NetWkstaInfo1010 *info1010; - [case(1011)] wkssvc_NetWkstaInfo1011 *info1011; - [case(1012)] wkssvc_NetWkstaInfo1012 *info1012; - [case(1013)] wkssvc_NetWkstaInfo1013 *info1013; - [case(1018)] wkssvc_NetWkstaInfo1018 *info1018; - [case(1023)] wkssvc_NetWkstaInfo1023 *info1023; - [case(1027)] wkssvc_NetWkstaInfo1027 *info1027; - [case(1028)] wkssvc_NetWkstaInfo1028 *info1028; - [case(1032)] wkssvc_NetWkstaInfo1032 *info1032; - [case(1033)] wkssvc_NetWkstaInfo1033 *info1033; - [case(1041)] wkssvc_NetWkstaInfo1041 *info1041; - [case(1042)] wkssvc_NetWkstaInfo1042 *info1042; - [case(1043)] wkssvc_NetWkstaInfo1043 *info1043; - [case(1044)] wkssvc_NetWkstaInfo1044 *info1044; - [case(1045)] wkssvc_NetWkstaInfo1045 *info1045; - [case(1046)] wkssvc_NetWkstaInfo1046 *info1046; - [case(1047)] wkssvc_NetWkstaInfo1047 *info1047; - [case(1048)] wkssvc_NetWkstaInfo1048 *info1048; - [case(1049)] wkssvc_NetWkstaInfo1049 *info1049; - [case(1050)] wkssvc_NetWkstaInfo1050 *info1050; - [case(1051)] wkssvc_NetWkstaInfo1051 *info1051; - [case(1052)] wkssvc_NetWkstaInfo1052 *info1052; - [case(1053)] wkssvc_NetWkstaInfo1053 *info1053; - [case(1054)] wkssvc_NetWkstaInfo1054 *info1054; - [case(1055)] wkssvc_NetWkstaInfo1055 *info1055; - [case(1056)] wkssvc_NetWkstaInfo1056 *info1056; - [case(1057)] wkssvc_NetWkstaInfo1057 *info1057; - [case(1058)] wkssvc_NetWkstaInfo1058 *info1058; - [case(1059)] wkssvc_NetWkstaInfo1059 *info1059; - [case(1060)] wkssvc_NetWkstaInfo1060 *info1060; - [case(1061)] wkssvc_NetWkstaInfo1061 *info1061; - [case(1062)] wkssvc_NetWkstaInfo1062 *info1062; - [default] ; - } wkssvc_NetWkstaInfo; - - WERROR wkssvc_NetWkstaGetInfo( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in] uint32 level, - [out,switch_is(level),ref] wkssvc_NetWkstaInfo *info - ); - - - /******************/ - /* Function: 0x01 */ - WERROR wkssvc_NetWkstaSetInfo( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in] uint32 level, - [in,switch_is(level),ref] wkssvc_NetWkstaInfo *info, - [in,out,ref] uint32 *parm_error - ); - - - /*****************************/ - /* Function 0x02 */ - typedef struct { - [string,charset(UTF16)] uint16 *user_name; - } wkssvc_NetrWkstaUserInfo0; - - typedef struct { - uint32 entries_read; - [size_is(entries_read)] wkssvc_NetrWkstaUserInfo0 *user0; - } wkssvc_NetWkstaEnumUsersCtr0; - - typedef struct { - [string,charset(UTF16)] uint16 *user_name; - [string,charset(UTF16)] uint16 *logon_domain; - [string,charset(UTF16)] uint16 *other_domains; - [string,charset(UTF16)] uint16 *logon_server; - } wkssvc_NetrWkstaUserInfo1; - - typedef struct { - uint32 entries_read; - [size_is(entries_read)] wkssvc_NetrWkstaUserInfo1 *user1; - } wkssvc_NetWkstaEnumUsersCtr1; - - typedef [switch_type(uint32)] union { - [case(0)] wkssvc_NetWkstaEnumUsersCtr0 *user0; - [case(1)] wkssvc_NetWkstaEnumUsersCtr1 *user1; - } wkssvc_NetWkstaEnumUsersCtr; - - typedef struct { - uint32 level; - [switch_is(level)] wkssvc_NetWkstaEnumUsersCtr ctr; - } wkssvc_NetWkstaEnumUsersInfo; - - WERROR wkssvc_NetWkstaEnumUsers( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,out,ref] wkssvc_NetWkstaEnumUsersInfo *info, - [in] uint32 prefmaxlen, - [out,ref] uint32 *entries_read, - [in,out,unique] uint32 *resume_handle - ); - - /*****************************/ - /* Function 0x03 */ - typedef struct { - [string,charset(UTF16)] uint16 *other_domains; - } wkssvc_NetrWkstaUserInfo1101; - - typedef [switch_type(uint32)] union { - [case(0)] wkssvc_NetrWkstaUserInfo0 *info0; - [case(1)] wkssvc_NetrWkstaUserInfo1 *info1; - [case(1101)] wkssvc_NetrWkstaUserInfo1101 *info1101; - } wkssvc_NetrWkstaUserInfo; - - WERROR wkssvc_NetrWkstaUserGetInfo( - [in,unique] [string,charset(UTF16)] uint16 *unknown, - [in] uint32 level, - [out,ref] [switch_is(level)] wkssvc_NetrWkstaUserInfo *info - ); - - /*****************************/ - /* Function 0x04 */ - WERROR wkssvc_NetrWkstaUserSetInfo( - [in,unique] [string,charset(UTF16)] uint16 *unknown, - [in] uint32 level, - [in,ref] [switch_is(level)] wkssvc_NetrWkstaUserInfo *info, - [in,out,unique] uint32 *parm_err - ); - - /*****************************/ - /* Function 0x05 */ - - typedef struct { - uint32 quality_of_service; - uint32 vc_count; - [string,charset(UTF16)] uint16 *name; - [string,charset(UTF16)] uint16 *address; - uint32 wan_link; - } wkssvc_NetWkstaTransportInfo0; - - typedef struct { - uint32 count; - [size_is(count)] wkssvc_NetWkstaTransportInfo0 *array; - } wkssvc_NetWkstaTransportCtr0; - - typedef union { - [case(0)] wkssvc_NetWkstaTransportCtr0 *ctr0; - } wkssvc_NetWkstaTransportCtr; - - typedef struct { - uint32 level; - [switch_is(level)] wkssvc_NetWkstaTransportCtr ctr; - } wkssvc_NetWkstaTransportInfo; - - WERROR wkssvc_NetWkstaTransportEnum ( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,out,ref] wkssvc_NetWkstaTransportInfo *info, - [in] uint32 max_buffer, - [out,ref] uint32 *total_entries, - [in,out,unique] uint32 *resume_handle - ); - - /*****************************/ - /* Function 0x06 */ - /* only supported on NT */ - WERROR wkssvc_NetrWkstaTransportAdd( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in] uint32 level, /* must be 0 */ - [in,ref] wkssvc_NetWkstaTransportInfo0 *info0, - [in,out,unique] uint32 *parm_err - ); - - /*****************************/ - /* Function 0x07 */ - /* only supported on NT */ - WERROR wkssvc_NetrWkstaTransportDel( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *transport_name, - [in] uint32 unknown3 - ); - - /*****************************/ - /* Function 0x08 */ - typedef struct { - [string,charset(UTF16)] uint16 *unknown1; - [string,charset(UTF16)] uint16 *unknown2; - } wkssvc_NetrUseInfo3; - - typedef struct { - [string,charset(UTF16)] uint16 *local; - [string,charset(UTF16)] uint16 *remote; - [string,charset(UTF16)] uint16 *password; - uint32 status; - uint32 asg_type; - uint32 ref_count; - uint32 use_count; - [string,charset(UTF16)] uint16 *user_name; - [string,charset(UTF16)] uint16 *domain_name; - } wkssvc_NetrUseInfo2; - - typedef struct { - [string,charset(UTF16)] uint16 *local; - [string,charset(UTF16)] uint16 *remote; - [string,charset(UTF16)] uint16 *password; - uint32 status; - uint32 asg_type; - uint32 ref_count; - uint32 use_count; - } wkssvc_NetrUseInfo1; - - typedef struct { - [string,charset(UTF16)] uint16 *local; - [string,charset(UTF16)] uint16 *remote; - } wkssvc_NetrUseInfo0; - - typedef [switch_type(uint32)] union { - [case(0)] wkssvc_NetrUseInfo0 *info0; - [case(1)] wkssvc_NetrUseInfo1 *info1; - [case(2)] wkssvc_NetrUseInfo2 *info2; - [case(3)] wkssvc_NetrUseInfo3 *info3; - } wkssvc_NetrUseGetInfoCtr; - - WERROR wkssvc_NetrUseAdd( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in] uint32 level, - [in,ref] [switch_is(level)] wkssvc_NetrUseGetInfoCtr *ctr, - [in,out,unique] uint32 *parm_err - ); - - /*****************************/ - /* Function 0x09 */ - WERROR wkssvc_NetrUseGetInfo( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *use_name, - [in] uint32 level, - [out,ref] [switch_is(level)] wkssvc_NetrUseGetInfoCtr *ctr - ); - - /*****************************/ - /* Function 0x0a */ - WERROR wkssvc_NetrUseDel( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *use_name, - [in] uint32 force_cond - ); - - /*****************************/ - /* Function 0x0b */ - typedef struct { - uint32 count; - [size_is(count)] wkssvc_NetrUseInfo2 *array; - } wkssvc_NetrUseEnumCtr2; - - typedef struct { - uint32 count; - [size_is(count)] wkssvc_NetrUseInfo1 *array; - } wkssvc_NetrUseEnumCtr1; - - typedef struct { - uint32 count; - [size_is(count)] wkssvc_NetrUseInfo0 *array; - } wkssvc_NetrUseEnumCtr0; - - typedef [switch_type(uint32)] union { - [case(0)] wkssvc_NetrUseEnumCtr0 *ctr0; - [case(1)] wkssvc_NetrUseEnumCtr1 *ctr1; - [case(2)] wkssvc_NetrUseEnumCtr2 *ctr2; - } wkssvc_NetrUseEnumCtr; - - typedef struct { - uint32 level; - [switch_is(level)] wkssvc_NetrUseEnumCtr ctr; - } wkssvc_NetrUseEnumInfo; - - WERROR wkssvc_NetrUseEnum( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,out,ref] wkssvc_NetrUseEnumInfo *info, - [in] uint32 prefmaxlen, - [out,ref] uint32 *entries_read, - [in,out,unique] uint32 *resume_handle - ); - - /*****************************/ - /* Function 0x0c */ - WERROR wkssvc_NetrMessageBufferSend( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *message_name, - [in,unique] [string,charset(UTF16)] uint16 *message_sender_name, - [in,ref] [size_is(message_size)] uint8 *message_buffer, - [in] uint32 message_size - ); - - /*****************************/ - /* Function 0x0d */ - typedef struct { - hyper unknown1; - hyper unknown2; - hyper unknown3; - hyper unknown4; - hyper unknown5; - hyper unknown6; - hyper unknown7; - hyper unknown8; - hyper unknown9; - hyper unknown10; - hyper unknown11; - hyper unknown12; - hyper unknown13; - uint32 unknown14; - uint32 unknown15; - uint32 unknown16; - uint32 unknown17; - uint32 unknown18; - uint32 unknown19; - uint32 unknown20; - uint32 unknown21; - uint32 unknown22; - uint32 unknown23; - uint32 unknown24; - uint32 unknown25; - uint32 unknown26; - uint32 unknown27; - uint32 unknown28; - uint32 unknown29; - uint32 unknown30; - uint32 unknown31; - uint32 unknown32; - uint32 unknown33; - uint32 unknown34; - uint32 unknown35; - uint32 unknown36; - uint32 unknown37; - uint32 unknown38; - uint32 unknown39; - uint32 unknown40; - } wkssvc_NetrWorkstationStatistics; - - WERROR wkssvc_NetrWorkstationStatisticsGet( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *unknown2, - [in] uint32 unknown3, - [in] uint32 unknown4, - [out,ref] wkssvc_NetrWorkstationStatistics **info - ); - - /*****************************/ - /* Function 0x0e */ - WERROR wkssvc_NetrLogonDomainNameAdd( - [in,ref] [string,charset(UTF16)] uint16 *domain_name - ); - - /*****************************/ - /* Function 0x0f */ - WERROR wkssvc_NetrLogonDomainNameDel( - [in,ref] [string,charset(UTF16)] uint16 *domain_name - ); - - /*****************************/ - /* Function 0x10 */ - WERROR wkssvc_NetrJoinDomain( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *domain_name, - [in,unique] [string,charset(UTF16)] uint16 *account_ou, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] [string,charset(UTF16)] uint16 *password, - [in] wkssvc_joinflags join_flags - ); - - /*****************************/ - /* Function 0x11 */ - WERROR wkssvc_NetrUnjoinDomain( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] [string,charset(UTF16)] uint16 *password, - [in] wkssvc_joinflags unjoin_flags - ); - - /*****************************/ - /* Function 0x12 */ - typedef [bitmap32bit] bitmap { - /* TRUE: create the account in the domain */ - WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = 0x00000002 - } wkssvc_renameflags; - - WERROR wkssvc_NetrRenameMachineInDomain( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *NewMachineName, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] [string,charset(UTF16)] uint16 *password, - [in] wkssvc_renameflags RenameOptions - ); - - /*****************************/ - /* Function 0x13 */ - typedef enum { - NetSetupUnknown = 0, - NetSetupMachine = 1, - NetSetupWorkgroup = 2, - NetSetupDomain = 3, - NetSetupNonExistentDomain = 4, - NetSetupDnsMachine = 5 - } wkssvc_NetValidateNameType; - - WERROR wkssvc_NetrValidateName( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *name, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] [string,charset(UTF16)] uint16 *Password, - [in] wkssvc_NetValidateNameType name_type - ); - - /*****************************/ - /* Function 0x14 */ - typedef enum { - NetSetupUnknownStatus = 0, - NetSetupUnjoined = 1, - NetSetupWorkgroupName = 2, - NetSetupDomainName = 3 - } wkssvc_NetJoinStatus; - - WERROR wkssvc_NetrGetJoinInformation( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,out,ref] [string,charset(UTF16)] uint16 **name_buffer, - [out,ref] wkssvc_NetJoinStatus *name_type - ); - - /*****************************/ - /* Function 0x15 */ - WERROR wkssvc_NetrGetJoinableOus( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *domain_name, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] [string,charset(UTF16)] uint16 *unknown, - [in,out,ref] uint32 *num_ous, - /* - * this is a [ref] pointer to a [unique] pointer to an - * array of [unique] pointers to a string array - */ - [out,ref] [size_is(,*num_ous)] [string,charset(UTF16)] uint16 ***ous - ); - - typedef [flag(NDR_PAHEX)] struct { - uint8 data[524]; - } wkssvc_PasswordBuffer; - - typedef [bitmap32bit] bitmap { - WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME = 0x00000400, - WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT = 0x00000200, - /* TRUE: defer setting the SPN and dNSHostName until a rename operation */ - WKSSVC_JOIN_FLAGS_DEFER_SPN = 0x00000100, - - /* TRUE: set the machine password to the provided one after the join completes */ - WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED = 0x00000080, - - /* TRUE: perform an unsecured join */ - WKSSVC_JOIN_FLAGS_JOIN_UNSECURE = 0x00000040, - - /* TRUE: allow the join to complete even if the account already exists */ - WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED = 0x00000020, - - /* TRUE: this join is part of a w9x upgrade */ - WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE = 0x00000010, - - /* TRUE: delete the account when the domain is left */ - WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE = 0x00000004, - - /* TRUE: create the account in the domain */ - WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = 0x00000002, - - /* TRUE: join domain FALSE: join workgroup */ - WKSSVC_JOIN_FLAGS_JOIN_TYPE = 0x00000001 - - } wkssvc_joinflags; - - /*****************************/ - /* Function 0x16 */ - WERROR wkssvc_NetrJoinDomain2 ( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *domain_name, - [in,unique] [string,charset(UTF16)] uint16 *account_ou, - [in,unique] [string,charset(UTF16)] uint16 *admin_account, - [in,unique] wkssvc_PasswordBuffer *encrypted_password, - [in] wkssvc_joinflags join_flags - ); - - /*****************************/ - /* Function 0x17 */ - WERROR wkssvc_NetrUnjoinDomain2 ( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *account, - [in,unique] wkssvc_PasswordBuffer *encrypted_password, - [in] wkssvc_joinflags unjoin_flags - ); - - /*****************************/ - /* Function 0x18 */ - WERROR wkssvc_NetrRenameMachineInDomain2( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *NewMachineName, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, - [in] wkssvc_renameflags RenameOptions - ); - - /*****************************/ - /* Function 0x19 */ - WERROR wkssvc_NetrValidateName2( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *name, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, - [in] wkssvc_NetValidateNameType name_type - ); - - /*****************************/ - /* Function 0x1a */ - WERROR wkssvc_NetrGetJoinableOus2( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,ref] [string,charset(UTF16)] uint16 *domain_name, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, - [in,out,ref] uint32 *num_ous, - /* - * this is a [ref] pointer to a [unique] pointer to an - * array of [unique] pointers to a string array - */ - [out,ref] [size_is(,*num_ous)] [string,charset(UTF16)] uint16 ***ous - ); - - /*****************************/ - /* Function 0x1b */ - WERROR wkssvc_NetrAddAlternateComputerName( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *NewAlternateMachineName, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, - [in] uint32 Reserved - ); - - /*****************************/ - /* Function 0x1c */ - WERROR wkssvc_NetrRemoveAlternateComputerName( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *AlternateMachineNameToRemove, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, - [in] uint32 Reserved - ); - - /*****************************/ - /* Function 0x1d */ - WERROR wkssvc_NetrSetPrimaryComputername( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *primary_name, - [in,unique] [string,charset(UTF16)] uint16 *Account, - [in,unique] wkssvc_PasswordBuffer *EncryptedPassword, - [in] uint32 Reserved - ); - - /*****************************/ - /* Function 0x1e */ - typedef enum { - NetPrimaryComputerName = 0, - NetAlternateComputerNames = 1, - NetAllComputerNames = 2, - NetComputerNameTypeMax = 3 - } wkssvc_ComputerNameType; - - typedef struct { - uint32 count; - [size_is(count)] lsa_String *computer_name; - } wkssvc_ComputerNamesCtr; - - WERROR wkssvc_NetrEnumerateComputerNames( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in] wkssvc_ComputerNameType name_type, - [in] uint32 Reserved, - [out,ref] wkssvc_ComputerNamesCtr **ctr - ); -} diff --git a/source4/torture/rpc/wkssvc.c b/source4/torture/rpc/wkssvc.c index 6e9937086e..faab8b825c 100644 --- a/source4/torture/rpc/wkssvc.c +++ b/source4/torture/rpc/wkssvc.c @@ -1218,12 +1218,12 @@ static bool test_NetrJoinDomain2(struct torture_context *tctx, } switch (join_status) { - case NetSetupDomainName: + case NET_SETUP_DOMAIN_NAME:: expected_err = WERR_SETUP_ALREADY_JOINED; break; - case NetSetupUnknownStatus: - case NetSetupUnjoined: - case NetSetupWorkgroupName: + case NET_SETUP_UNKNOWN_STATUS: + case NET_SETUP_UNJOINED: + case NET_SETUP_WORKGROUP_NAME: default: expected_err = WERR_OK; break; -- cgit