diff options
Diffstat (limited to 'source3/librpc/idl/wkssvc.idl')
-rw-r--r-- | source3/librpc/idl/wkssvc.idl | 394 |
1 files changed, 394 insertions, 0 deletions
diff --git a/source3/librpc/idl/wkssvc.idl b/source3/librpc/idl/wkssvc.idl new file mode 100644 index 0000000000..a085265a41 --- /dev/null +++ b/source3/librpc/idl/wkssvc.idl @@ -0,0 +1,394 @@ +/* + wkssvc interface definitions +*/ + +[ uuid("6bffd098-a112-3610-9833-46c3f87e345a"), + version(1.0), + pointer_default(unique), + pointer_default_top(unique), + helpstring("Workstation Service"), + depends(srvsvc), + keepref +] interface wkssvc +{ + declare [v1_enum] enum 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; + + 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; + + typedef struct { + uint32 max_threads; + } wkssvc_NetWkstaInfo1033; + + 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(1033)] wkssvc_NetWkstaInfo1033 *info1033; + [default] ; + } wkssvc_NetWkstaInfo; + + WERROR wkssvc_NetWkstaGetInfo( + [in] [string,charset(UTF16)] uint16 *server_name, + [in] uint32 level, + [out,switch_is(level),ref] wkssvc_NetWkstaInfo *info + ); + + + /******************/ + /* Function: 0x01 */ + WERROR wkssvc_NetWkstaSetInfo( + [in] [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; + } USER_INFO_0; + + typedef struct { + uint32 entries_read; + [size_is(entries_read)] USER_INFO_0 *user0; + } USER_INFO_0_CONTAINER; + + 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; + } USER_INFO_1; + + typedef struct { + uint32 entries_read; + [size_is(entries_read)] USER_INFO_1 *user1; + } USER_INFO_1_CONTAINER; + + typedef [switch_type(uint32)] union { + [case(0)] USER_INFO_0_CONTAINER *user0; + [case(1)] USER_INFO_1_CONTAINER *user1; + } WKS_USER_ENUM_UNION; + + WERROR wkssvc_NetWkstaEnumUsers( + [in] [string,charset(UTF16)] uint16 *server_name, + [in] uint32 level, + [in] [out] [ref] WKS_USER_ENUM_UNION *users, + [in] uint32 prefmaxlen, + [out] uint32 *entriesread, + [out] uint32 *totalentries, + [in] [out] [ref] uint32 *resumehandle + ); + + /*****************************/ + /* Function 0x03 */ + WERROR WKSSVC_NETRWKSTAUSERGETINFO (); + + /*****************************/ + /* Function 0x04 */ + WERROR WKSSVC_NETRWKSTAUSERSETINFO (); + + + /*****************************/ + /* 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; + [default] ; + } wkssvc_NetWkstaTransportCtr; + + WERROR wkssvc_NetWkstaTransportEnum ( + [in] [string,charset(UTF16)] uint16 *server_name, + [in,out] uint32 level, + [in,out,switch_is(level),ref] wkssvc_NetWkstaTransportCtr *ctr, + [in] uint32 max_buffer, + [out] uint32 totalentries, + [in,out] uint32 *resume_handle + ); + + + /*****************************/ + /* Function 0x06 */ + WERROR WKSSVC_NETRWKSTATRANSPORTADD (); + + /*****************************/ + /* Function 0x07 */ + WERROR WKSSVC_NETRWKSTATRANSPORTDEL (); + + /*****************************/ + /* Function 0x08 */ + WERROR WKSSVC_NETRUSEADD (); + + /*****************************/ + /* Function 0x09 */ + WERROR WKSSVC_NETRUSEGETINFO (); + + /*****************************/ + /* Function 0x0a */ + WERROR WKSSVC_NETRUSEDEL (); + + /*****************************/ + /* Function 0x0b */ + WERROR WKSSVC_NETRUSEENUM (); + + /*****************************/ + /* Function 0x0c */ + WERROR WKSSVC_NETRMESSAGEBUFFERSEND (); + + /*****************************/ + /* Function 0x0d */ + WERROR WKSSVC_NETRWORKSTATIONSTATISTICSGET (); + + /*****************************/ + /* Function 0x0e */ + WERROR WKSSVC_NETRLOGONDOMAINNAMEADD (); + + /*****************************/ + /* Function 0x0f */ + WERROR WKSSVC_NETRLOGONDOMAINNAMEDEL (); + + /*****************************/ + /* Function 0x10 */ + WERROR WKSSVC_NETRJOINDOMAIN (); + + /*****************************/ + /* Function 0x11 */ + WERROR WKSSVC_NETRUNJOINDOMAIN (); + + /*****************************/ + /* Function 0x12 */ + WERROR WKSSVC_NETRRENAMEMACHINEINDOMAIN (); + + /*****************************/ + /* Function 0x13 */ + WERROR WKSSVC_NETRVALIDATENAME (); + + /*****************************/ + /* Function 0x14 */ + WERROR WKSSVC_NETRGETJOININFORMATION (); + + /*****************************/ + /* Function 0x15 */ + WERROR WKSSVC_NETRGETJOINABLEOUS (); + + typedef struct { + uint8 data[524]; + } wkssvc_PasswordBuffer; + + typedef [bitmap32bit] bitmap { + /* 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] [string,charset(UTF16)] uint16 *server_name, + [in] [string,charset(UTF16),ref] uint16 *domain_name, + [in] [string,charset(UTF16)] uint16 *account_name, + [in] [string,charset(UTF16)] uint16 *admin_account, + [in] 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 + ); + + typedef [bitmap32bit] bitmap { + /* TRUE: create the account in the domain */ + WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = 0x00000002 + } wkssvc_renameflags; + + /*****************************/ + /* 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 (); + + /*****************************/ + /* Function 0x1a */ + WERROR WKSSVC_NETRGETJOINABLEOUS2 (); + + /*****************************/ + /* 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 (); + + /*****************************/ + /* Function 0x1e */ + WERROR WKSSVC_NETRENUMERATECOMPUTERNAMES (); +} |