aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2005-12-02 11:33:34 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2005-12-02 11:33:34 +0000
commita809b11b2bee93510dd001a96a7d01f78e2a7030 (patch)
tree30783b1fa3b7c9eb5c85c3e118eaf88a37f72802
parent063d4843345ebb45e1f194576f28449e2e5f9948 (diff)
check in a version of wkssvc that contains all the constructs of the etehreal dissector.
the generated dissector is still "ugly" compared to the handwritten one so there needs a bit of conformance file magic and maybe pidl enhancements before it can go in. svn path=/trunk/; revision=16651
-rwxr-xr-xepan/dissectors/pidl/wkssvc.idl408
1 files changed, 408 insertions, 0 deletions
diff --git a/epan/dissectors/pidl/wkssvc.idl b/epan/dissectors/pidl/wkssvc.idl
new file mode 100755
index 0000000000..cdd2fc2805
--- /dev/null
+++ b/epan/dissectors/pidl/wkssvc.idl
@@ -0,0 +1,408 @@
+#include "idl_types.h"
+
+/*
+ wkssvc interface definitions
+*/
+
+[ uuid("6bffd098-a112-3610-9833-46c3f87e345a"),
+ version(1.0),
+ pointer_default(unique),
+ pointer_default_top(unique),
+ helpstring("Workstation Service")
+] interface wkssvc
+{
+
+ /* Temporarily declare platform id here instead since we havent
+ * converted srvsvc yet.
+ * We have a few more vals here than in
+ * srvsvc.idl anyway.
+ */
+ typedef [public] enum {
+ PLATFORM_ID_DOS = 300,
+ PLATFORM_ID_OS2 = 400,
+ PLATFORM_ID_NT = 500,
+ PLATFORM_ID_OSF = 600,
+ PLATFORM_ID_VMS = 700
+ } wkssvc_PlatformId;
+
+#define BOOL uint32
+
+ /******************/
+ /* Function: 0x00 */
+
+ typedef struct {
+ wkssvc_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 {
+ wkssvc_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 {
+ wkssvc_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] 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] uint16 *user_name;
+ [string] uint16 *logon_domain;
+ [string] uint16 *other_domains;
+ [string] 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 NetWkstaEnumUsers(
+ [in] [string] 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 *entriesread,
+ [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 {
+ char blob[524];
+ } TYPE_30;
+
+ 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] TYPE_30 *type_30,
+ [in] wkssvc_joinflags join_flags
+ );
+
+ /*****************************/
+ /* Function 0x17 */
+ WERROR wkssvc_NetrUnjoinDomain2 (
+ [in] [unique] [string] uint16 *server_name,
+ [in] [unique] [string] uint16 *account,
+ [in] [unique] TYPE_30 *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] uint16 *server_name,
+ [in] [unique] [string] uint16 *NewMachineName,
+ [in] [unique] [string] uint16 *Account,
+ [in] [unique] TYPE_30 *EncryptedPassword,
+ [in] wkssvc_renameflags RenameOptions
+ );
+
+ /*****************************/
+ /* Function 0x19 */
+ WERROR WKSSVC_NETRVALIDATENAME2 ();
+
+ /*****************************/
+ /* Function 0x1a */
+ WERROR WKSSVC_NETRGETJOINABLEOUS2 ();
+
+ /*****************************/
+ /* Function 0x1b */
+ WERROR WKSSVC_NetrAddAlternateComputerName(
+ [in] [unique] [string] uint16 *server_name,
+ [in] [unique] [string] uint16 *NewAlternateMachineName,
+ [in] [unique] [string] uint16 *Account,
+ [in] [unique] TYPE_30 *EncryptedPassword,
+ [in] uint32 Reserved
+ );
+
+ /*****************************/
+ /* Function 0x1c */
+ WERROR WKSSVC_NetrRemoveAlternateComputerName(
+ [in] [unique] [string] uint16 *server_name,
+ [in] [unique] [string] uint16 *AlternateMachineNameToRemove,
+ [in] [unique] [string] uint16 *Account,
+ [in] [unique] TYPE_30 *EncryptedPassword,
+ [in] uint32 Reserved
+ );
+
+ /*****************************/
+ /* Function 0x1d */
+ WERROR WKSSVC_NETRSETPRIMARYCOMPUTERNAME ();
+
+ /*****************************/
+ /* Function 0x1e */
+ WERROR WKSSVC_NETRENUMERATECOMPUTERNAMES ();
+}
+