r11100: Replace unistr with [string,charset(UTF16)]
authorJelmer Vernooij <jelmer@samba.org>
Sun, 16 Oct 2005 18:54:31 +0000 (18:54 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:44:49 +0000 (13:44 -0500)
source/librpc/idl/lsa.idl
source/librpc/idl/netlogon.idl
source/librpc/idl/remact.idl
source/librpc/idl/srvsvc.idl
source/librpc/idl/svcctl.idl
source/librpc/idl/wkssvc.idl

index 3dbb12fc71d428ad969c21d0d95f11e55a4a1001..824ebac689a2e9e3f33cf9834815692c103c2baa 100644 (file)
        typedef struct {
                uint32 len; /* ignored */
                uint8 *root_dir;
-               unistr *object_name;
+               [string,charset(UTF16)] uint16 *object_name;
                uint32 attributes;
                security_descriptor *sec_desc;
                lsa_QosInfo *sec_qos;
 
        /* Function:      0x24 */
        typedef struct {
-               unistr *name;
+               [string,charset(UTF16)] uint16 *name;
        } lsa_RightAttribute;
        
        typedef struct {
        /**********************/
        /* Function:     0x2c */
        NTSTATUS lsa_OpenPolicy2 (
-               [in,unique]      unistr *system_name,
+               [in,unique]      [string,charset(UTF16)] uint16 *system_name,
                [in]  lsa_ObjectAttribute *attr,
                [in]      uint32 access_mask,
                [out] policy_handle *handle
        } lsa_StringPointer;
 
        NTSTATUS lsa_GetUserName(
-               [in,unique] unistr *system_name,
+               [in,unique] [string,charset(UTF16)] uint16 *system_name,
                [in,out,unique] lsa_String *account_name,
                [in,out,unique] lsa_StringPointer *authority_name
                );
index 4730fba56a927214c3e34ba9778bfa9fb8fe549c..bec28e3b25f61d7d610f02e3b036ab0f72769e83 100644 (file)
@@ -23,7 +23,7 @@ interface netlogon
        /* Function 0x00 */
 
        typedef struct {
-               unistr *account_name;
+               [string,charset(UTF16)] uint16 *account_name;
                uint32 priv;
                uint32 auth_flags;
                uint32 logon_count;
@@ -35,16 +35,16 @@ interface netlogon
                uint32 password_age;
                time_t pw_can_change;
                time_t pw_must_change;
-               unistr *computer;
-               unistr *domain;
-               unistr *script_path;
+               [string,charset(UTF16)] uint16 *computer;
+               [string,charset(UTF16)] uint16 *domain;
+               [string,charset(UTF16)] uint16 *script_path;
                uint32 unknown;
        } netr_UasInfo;
 
        WERROR netr_LogonUasLogon(
-               [in]   unistr *server_name,
-               [in]   unistr account_name,
-               [in]   unistr workstation,
+               [in]   [string,charset(UTF16)] uint16 *server_name,
+               [in]   [string,charset(UTF16)] uint16 account_name[],
+               [in]   [string,charset(UTF16)] uint16 workstation[],
                [out]  netr_UasInfo *info
                );
 
@@ -58,9 +58,9 @@ interface netlogon
        } netr_UasLogoffInfo;
 
        WERROR netr_LogonUasLogoff(
-               [in] unistr *server_name,
-               [in] unistr account_name,
-               [in] unistr workstation,
+               [in] [string,charset(UTF16)] uint16 *server_name,
+               [in] [string,charset(UTF16)] uint16 account_name[],
+               [in] [string,charset(UTF16)] uint16 workstation[],
                [out] netr_UasLogoffInfo info
                );
 
@@ -224,8 +224,8 @@ interface netlogon
        } netr_Authenticator;
 
        NTSTATUS netr_LogonSamLogon(
-               [in] unistr *server_name,
-               [in] unistr *workstation,
+               [in] [string,charset(UTF16)] uint16 *server_name,
+               [in] [string,charset(UTF16)] uint16 *workstation,
                [in] netr_Authenticator *credential,
                [in][out] netr_Authenticator *return_authenticator,
                [in]  uint16 logon_level,
@@ -240,8 +240,8 @@ interface netlogon
        /* Function 0x03 */
 
        NTSTATUS netr_LogonSamLogoff(
-               [in] unistr *server_name,
-               [in] unistr *computer_name,
+               [in] [string,charset(UTF16)] uint16 *server_name,
+               [in] [string,charset(UTF16)] uint16 *computer_name,
                [in]      netr_Authenticator *credential,
                [in][out] netr_Authenticator *return_authenticator,
                [in] uint16 logon_level,
@@ -254,8 +254,8 @@ interface netlogon
        /* Function 0x04 */
 
        NTSTATUS netr_ServerReqChallenge(
-               [in]         unistr *server_name,
-               [in]         unistr computer_name,
+               [in,string,charset(UTF16)] uint16 *server_name,
+               [in,string,charset(UTF16)] uint16 computer_name[],
                [in,out,ref] netr_Credential *credentials
                );
 
@@ -266,10 +266,10 @@ interface netlogon
        declare enum netr_SchannelType;
 
        NTSTATUS netr_ServerAuthenticate(
-               [in]         unistr *server_name,
-               [in]         unistr account_name,
-               [in]         netr_SchannelType secure_channel_type,
-               [in]         unistr computer_name,
+               [in,string,charset(UTF16)] uint16 *server_name,
+               [in,string,charset(UTF16)] uint16 account_name[],
+               [in]                       netr_SchannelType secure_channel_type,
+               [in,string,charset(UTF16)] uint16 computer_name[],
                [in,out,ref] netr_Credential *credentials
                );
 
@@ -278,10 +278,10 @@ interface netlogon
        /* Function 0x06 */
 
        NTSTATUS netr_ServerPasswordSet(
-               [in]  unistr *server_name,
-               [in]  unistr account_name,
+               [in]  [string,charset(UTF16)] uint16 *server_name,
+               [in]  [string,charset(UTF16)] uint16 account_name[],
                [in]  netr_SchannelType secure_channel_type,
-               [in]  unistr computer_name,
+               [in]  [string,charset(UTF16)] uint16 computer_name[],
                [in]  netr_Authenticator credential,
                [in]  samr_Password new_password,
                [out] netr_Authenticator return_authenticator
@@ -294,7 +294,7 @@ interface netlogon
        declare enum netr_SamDatabaseID;
 
        typedef struct {
-               unistr *account_name;
+               [string,charset(UTF16)] uint16 *account_name;
                lsa_String unknown1;
                lsa_String unknown2;
                lsa_String unknown3;
@@ -642,8 +642,8 @@ interface netlogon
                [case(NETR_DELTA_DELETE_TRUST)]    dom_sid2 *sid;
                [case(NETR_DELTA_ACCOUNT)]         dom_sid2 *sid;
                [case(NETR_DELTA_DELETE_ACCOUNT)]  dom_sid2 *sid;
-               [case(NETR_DELTA_SECRET)]          unistr *name;
-               [case(NETR_DELTA_DELETE_SECRET)]   unistr *name;
+               [case(NETR_DELTA_SECRET)]          [string,charset(UTF16)] uint16 *name;
+               [case(NETR_DELTA_DELETE_SECRET)]   [string,charset(UTF16)] uint16 *name;
                [case(NETR_DELTA_DELETE_GROUP2)]   uint32 rid;
                [case(NETR_DELTA_DELETE_USER2)]    uint32 rid;
                [case(NETR_DELTA_MODIFY_COUNT)]    ;
@@ -662,8 +662,8 @@ interface netlogon
 
 
        NTSTATUS netr_DatabaseDeltas(
-               [in]      unistr logon_server,
-               [in]      unistr computername,
+               [in]      [string,charset(UTF16)] uint16 logon_server[],
+               [in]      [string,charset(UTF16)] uint16 computername[],
                [in]      netr_Authenticator credential,
                [in,out]  netr_Authenticator return_authenticator,
                [in]      netr_SamDatabaseID database_id,
@@ -677,8 +677,8 @@ interface netlogon
        /* Function 0x08 */
 
        NTSTATUS netr_DatabaseSync(
-               [in]     unistr logon_server,
-               [in]     unistr computername,
+               [in]     [string,charset(UTF16)] uint16 logon_server[],
+               [in]     [string,charset(UTF16)] uint16 computername[],
                [in]     netr_Authenticator credential,
                [in,out] netr_Authenticator return_authenticator,
                [in]     netr_SamDatabaseID database_id,
@@ -704,8 +704,8 @@ interface netlogon
        } netr_AccountBuffer;
 
        NTSTATUS netr_AccountDeltas(
-               [in]     unistr *logon_server,
-               [in]     unistr computername,
+               [in]     [string,charset(UTF16)] uint16 *logon_server,
+               [in]     [string,charset(UTF16)] uint16 computername[],
                [in]     netr_Authenticator credential,
                [in,out] netr_Authenticator return_authenticator,
                [in]     netr_UAS_INFO_0 uas,
@@ -723,8 +723,8 @@ interface netlogon
        /* Function 0x0A */
 
        NTSTATUS netr_AccountSync(
-               [in]      unistr *logon_server,
-               [in]      unistr computername,
+               [in]      [string,charset(UTF16)] uint16 *logon_server,
+               [in]      [string,charset(UTF16)] uint16 computername[],
                [in]      netr_Authenticator credential,
                [in,out]  netr_Authenticator return_authenticator,
                [in]      uint32 reference,
@@ -742,9 +742,9 @@ interface netlogon
        /* Function 0x0B */
 
        NTSTATUS netr_GetDcName(
-               [in]  unistr logon_server,
-               [in]  unistr *domainname,
-               [out] unistr *dcname
+               [in]  [string,charset(UTF16)] uint16 logon_server[],
+               [in]  [string,charset(UTF16)] uint16 *domainname,
+               [out] [string,charset(UTF16)] uint16 *dcname
                );
 
        /*****************/
@@ -758,7 +758,7 @@ interface netlogon
        typedef struct {
                uint32 flags;
                uint32 pdc_connection_status;
-               unistr trusted_dc_name;
+               [string,charset(UTF16)] uint16 trusted_dc_name[];
                uint32 tc_connection_status;
        } netr_NETLOGON_INFO_2;
 
@@ -787,7 +787,7 @@ interface netlogon
        } netr_LogonControlCode;
 
        WERROR netr_LogonControl(
-               [in]   unistr *logon_server,
+               [in]   [string,charset(UTF16)] uint16 *logon_server,
                [in]   netr_LogonControlCode function_code,
                [in]   uint32 level,
                [out,switch_is(level)]  netr_CONTROL_QUERY_INFORMATION info
@@ -798,9 +798,9 @@ interface netlogon
        /* Function 0x0D */
 
        WERROR netr_GetAnyDCName(
-               [in]  unistr *logon_server,
-               [in]  unistr *domainname,
-               [out] unistr *dcname
+               [in]  [string,charset(UTF16)] uint16 *logon_server,
+               [in]  [string,charset(UTF16)] uint16 *domainname,
+               [out] [string,charset(UTF16)] uint16 *dcname
                );
 
 
@@ -808,14 +808,14 @@ interface netlogon
        /* Function 0x0E */
 
        typedef union {
-               [case(NETLOGON_CONTROL_REDISCOVER)]        unistr *domain;
-               [case(NETLOGON_CONTROL_TC_QUERY)]          unistr *domain;
-               [case(NETLOGON_CONTROL_TRANSPORT_NOTIFY)]  unistr *domain;
+               [case(NETLOGON_CONTROL_REDISCOVER)]        [string,charset(UTF16)] uint16 *domain;
+               [case(NETLOGON_CONTROL_TC_QUERY)]          [string,charset(UTF16)] uint16 *domain;
+               [case(NETLOGON_CONTROL_TRANSPORT_NOTIFY)]  [string,charset(UTF16)] uint16 *domain;
                [case(NETLOGON_CONTROL_SET_DBFLAG)]        uint32 debug_level;
        } netr_CONTROL_DATA_INFORMATION;
 
        WERROR netr_LogonControl2(
-               [in]    unistr *logon_server,
+               [in]    [string,charset(UTF16)] uint16 *logon_server,
                [in]    uint32 function_code,
                [in]    uint32 level,
                [in][switch_is(function_code)] netr_CONTROL_DATA_INFORMATION  data,
@@ -834,10 +834,10 @@ interface netlogon
        /* Function 0x0F */
 
        NTSTATUS netr_ServerAuthenticate2(
-               [in]         unistr *server_name,
-               [in]         unistr account_name,
+               [in]         [string,charset(UTF16)] uint16 *server_name,
+               [in]         [string,charset(UTF16)] uint16 account_name[],
                [in]         netr_SchannelType secure_channel_type,
-               [in]         unistr computer_name,
+               [in]         [string,charset(UTF16)] uint16 computer_name[],
                [in,out,ref] netr_Credential *credentials,
                [in,out,ref] uint32 *negotiate_flags
                );
@@ -847,8 +847,8 @@ interface netlogon
        /* Function 0x10 */
 
        NTSTATUS netr_DatabaseSync2(
-               [in]     unistr logon_server,
-               [in]     unistr computername,
+               [in]     [string,charset(UTF16)] uint16 logon_server[],
+               [in]     [string,charset(UTF16)] uint16 computername[],
                [in]     netr_Authenticator credential,
                [in,out] netr_Authenticator return_authenticator,
                [in]     netr_SamDatabaseID database_id,
@@ -865,8 +865,8 @@ interface netlogon
        /* i'm not at all sure how this call works */
 
        NTSTATUS netr_DatabaseRedo(
-               [in]     unistr logon_server,
-               [in]     unistr computername,
+               [in]     [string,charset(UTF16)] uint16 logon_server[],
+               [in]     [string,charset(UTF16)] uint16 computername[],
                [in]     netr_Authenticator credential,
                [in,out] netr_Authenticator return_authenticator,
                [in][size_is(change_log_entry_size)] uint8 *change_log_entry,
@@ -879,7 +879,7 @@ interface netlogon
        /* Function 0x12 */
 
        WERROR netr_LogonControl2Ex(
-               [in]   unistr *logon_server,
+               [in]   [string,charset(UTF16)] uint16 *logon_server,
                [in]   uint32 function_code,
                [in]   uint32 level,
                [in][switch_is(function_code)] netr_CONTROL_DATA_INFORMATION  data,
@@ -917,10 +917,10 @@ interface netlogon
        /****************/
        /* Function 0x1a */
        NTSTATUS netr_ServerAuthenticate3(
-               [in]         unistr *server_name,
-               [in]         unistr account_name,
+               [in]         [string,charset(UTF16)] uint16 *server_name,
+               [in]         [string,charset(UTF16)] uint16 account_name[],
                [in]         netr_SchannelType secure_channel_type,
-               [in]         unistr computer_name,
+               [in]         [string,charset(UTF16)] uint16 computer_name[],
                [in,out,ref] netr_Credential *credentials,
                [in,out,ref] uint32 *negotiate_flags,
                [out,ref]    uint32 *rid
@@ -950,12 +950,12 @@ interface netlogon
 
        typedef struct {
                netr_Blob blob;
-               unistr *workstation_domain;
-               unistr *workstation_site;
-               unistr *unknown1;
-               unistr *unknown2;
-               unistr *unknown3;
-               unistr *unknown4;
+               [string,charset(UTF16)] uint16 *workstation_domain;
+               [string,charset(UTF16)] uint16 *workstation_site;
+               [string,charset(UTF16)] uint16 *unknown1;
+               [string,charset(UTF16)] uint16 *unknown2;
+               [string,charset(UTF16)] uint16 *unknown3;
+               [string,charset(UTF16)] uint16 *unknown4;
                netr_BinaryString blob2;
                lsa_String product;
                lsa_String unknown5;
@@ -991,8 +991,8 @@ interface netlogon
        } netr_DomainInfo;
        
        NTSTATUS netr_LogonGetDomainInfo(
-               [in]         unistr server_name,
-               [in]         unistr *computer_name,
+               [in]         [string,charset(UTF16)] uint16 server_name[],
+               [in]         [string,charset(UTF16)] uint16 *computer_name,
                [in,ref]     netr_Authenticator *credential,
                [in,out,ref] netr_Authenticator *return_authenticator,
                [in]         uint32 level,
@@ -1008,10 +1008,10 @@ interface netlogon
        /*****************/
        /* Function 0x1e */
        NTSTATUS netr_ServerPasswordSet2(
-               [in]  unistr *server_name,
-               [in]  unistr account_name,
+               [in]  [string,charset(UTF16)] uint16 *server_name,
+               [in]  [string,charset(UTF16)] uint16 account_name[],
                [in]  netr_SchannelType secure_channel_type,
-               [in]  unistr computer_name,
+               [in]  [string,charset(UTF16)] uint16 computer_name[],
                [in]  netr_Authenticator credential,
                [in]  netr_CryptPassword new_password,
                [out] netr_Authenticator return_authenticator
@@ -1032,24 +1032,24 @@ interface netlogon
        /****************/
        /* Function 0x22 */
        typedef struct {
-               unistr *dc_unc;
-               unistr *dc_address;
+               [string,charset(UTF16)] uint16 *dc_unc;
+               [string,charset(UTF16)] uint16 *dc_address;
                int32 dc_address_type;
                GUID domain_guid;
-               unistr *domain_name;
-               unistr *forest_name;
+               [string,charset(UTF16)] uint16 *domain_name;
+               [string,charset(UTF16)] uint16 *forest_name;
                uint32 dc_flags;
-               unistr *dc_site_name;
-               unistr *client_site_name;
+               [string,charset(UTF16)] uint16 *dc_site_name;
+               [string,charset(UTF16)] uint16 *client_site_name;
        } netr_DrsGetDCNameEx2Info;
 
        WERROR netr_DrsGetDCNameEx2(
-               [in] unistr *server_unc,
-               [in] unistr *client_account,
+               [in] [string,charset(UTF16)] uint16 *server_unc,
+               [in] [string,charset(UTF16)] uint16 *client_account,
                [in] uint32 mask,
-               [in] unistr *domain_name,
+               [in] [string,charset(UTF16)] uint16 *domain_name,
                [in] GUID *domain_guid,
-               [in] unistr *site_name,
+               [in] [string,charset(UTF16)] uint16 *site_name,
                [in] uint32 flags,
                [out] netr_DrsGetDCNameEx2Info *info
                );
@@ -1073,8 +1073,8 @@ interface netlogon
        /****************/
        /* Function 0x27 */
        NTSTATUS netr_LogonSamLogonEx(
-               [in] unistr *server_name,
-               [in] unistr *workstation,
+               [in] [string,charset(UTF16)] uint16 *server_name,
+               [in] [string,charset(UTF16)] uint16 *workstation,
                [in]  uint16 logon_level,
                [in]  [switch_is(logon_level)] netr_LogonLevel logon,
                [in]  uint16 validation_level,
@@ -1113,8 +1113,8 @@ interface netlogon
        } netr_TrustAttributes;
 
        typedef struct {
-               unistr                  *netbios_name;
-               unistr                  *dns_name;
+               [string,charset(UTF16)] uint16                  *netbios_name;
+               [string,charset(UTF16)] uint16                  *dns_name;
                netr_TrustFlags         trust_flags;
                uint32                  parent_index;
                netr_TrustType          trust_type;
@@ -1124,7 +1124,7 @@ interface netlogon
        } netr_DomainTrust;
 
        WERROR netr_DsrEnumerateDomainTrusts(
-               [in]                 unistr           *server_name,
+               [in]                 [string,charset(UTF16)] uint16           *server_name,
                [in]                 netr_TrustFlags  trust_flags,
                [out]                uint32           count,
                [out,size_is(count)] netr_DomainTrust *trusts
@@ -1152,8 +1152,8 @@ interface netlogon
 
        /* this is the ADS varient. I don't yet know what the "flags" are for */
        NTSTATUS netr_LogonSamLogonWithFlags(
-               [in] unistr *server_name,
-               [in] unistr *workstation,
+               [in] [string,charset(UTF16)] uint16 *server_name,
+               [in] [string,charset(UTF16)] uint16 *workstation,
                [in] netr_Authenticator *credential,
                [in][out] netr_Authenticator *return_authenticator,
                [in]  uint16 logon_level,
index 05192e31a554fa74537fc36e11507c808679340b..f57b1b43350d1822f7d52334c28ab3c13d7dcc81 100644 (file)
@@ -28,7 +28,7 @@ interface IRemoteActivation
                        [in] ORPCTHIS this,
                        [out] ORPCTHAT that,
                        [in] GUID Clsid,
-                       [in] unistr *pwszObjectName,
+                       [in] [string,charset(UTF16)] uint16 *pwszObjectName,
                        [in] MInterfacePointer *pObjectStorage,
                        [in] uint32 ClientImpLevel,
                        [in] uint32 Mode,
index 0a9d910c1f128f4c8c76273738dafa2774813c35..05406c3f7696a9b1260293607f581beb67b2f4ff 100644 (file)
@@ -19,7 +19,7 @@
 /* srvsvc_NetCharDev      */
 /**************************/
        typedef struct {
-               unistr *device;
+               [string,charset(UTF16)] uint16 *device;
        } srvsvc_NetCharDevInfo0;
 
        typedef struct {
@@ -28,9 +28,9 @@
        } srvsvc_NetCharDevCtr0;
 
        typedef struct {
-               unistr *device;
+               [string,charset(UTF16)] uint16 *device;
                uint32 status;
-               unistr *user;
+               [string,charset(UTF16)] uint16 *user;
                uint32 time;
        } srvsvc_NetCharDevInfo1;
 
@@ -54,7 +54,7 @@
        /******************/
        /* Function: 0x00 */
        WERROR srvsvc_NetCharDevEnum(
-               [in]   unistr *server_unc, 
+               [in]   [string,charset(UTF16)] uint16 *server_unc, 
                [in,out]   uint32 level,
                [in,out,switch_is(level)]   srvsvc_NetCharDevCtr ctr,
                [in]   uint32 max_buffer,
@@ -65,8 +65,8 @@
        /******************/
        /* Function: 0x01 */
        WERROR srvsvc_NetCharDevGetInfo(
-               [in]   unistr *server_unc,
-               [in]   unistr device_name,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 device_name[],
                [in]   uint32 level,
                [out,switch_is(level)]   srvsvc_NetCharDevInfo info
                );
@@ -74,8 +74,8 @@
        /******************/
        /* Function: 0x02 */
        WERROR srvsvc_NetCharDevControl(
-               [in]   unistr *server_unc,
-               [in]   unistr device_name,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 device_name[],
                [in]   uint32 opcode
                );
 
@@ -83,7 +83,7 @@
 /* srvsvc_NetCharDevQ     */
 /**************************/
        typedef struct {
-               unistr *device;
+               [string,charset(UTF16)] uint16 *device;
        } srvsvc_NetCharDevQInfo0;
 
        typedef struct {
@@ -92,9 +92,9 @@
        } srvsvc_NetCharDevQCtr0;
 
        typedef struct {
-               unistr *device;
+               [string,charset(UTF16)] uint16 *device;
                uint32 priority;
-               unistr *devices;
+               [string,charset(UTF16)] uint16 *devices;
                uint32 users;
                uint32 num_ahead;
        } srvsvc_NetCharDevQInfo1;
        /******************/
        /* Function: 0x03 */
        WERROR srvsvc_NetCharDevQEnum(
-               [in]   unistr *server_unc,
-               [in]   unistr *user,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 *user,
                [in,out]   uint32 level,
                [in,out,switch_is(level)]   srvsvc_NetCharDevQCtr ctr,
                [in]   uint32 max_buffer,
        /******************/
        /* Function: 0x04 */
        WERROR srvsvc_NetCharDevQGetInfo(
-               [in]   unistr *server_unc,
-               [in]   unistr queue_name,
-               [in]   unistr user,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 queue_name[],
+               [in]   [string,charset(UTF16)] uint16 user[],
                [in]   uint32 level,
                [out,switch_is(level)]   srvsvc_NetCharDevQInfo info
                );
        /******************/
        /* Function: 0x05 */
        WERROR srvsvc_NetCharDevQSetInfo(
-               [in]   unistr *server_unc,
-               [in]   unistr queue_name,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 queue_name[],
                [in]   uint32 level,
                [in,switch_is(level)]   srvsvc_NetCharDevQInfo info,
                [in,out]   uint32 *parm_error
        /******************/
        /* Function: 0x06 */
        WERROR srvsvc_NetCharDevQPurge(
-               [in]   unistr *server_unc,
-               [in]   unistr queue_name
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 queue_name[]
                );
 
        /******************/
        /* Function: 0x07 */
        WERROR srvsvc_NetCharDevQPurgeSelf(
-               [in]   unistr *server_unc,
-               [in]   unistr queue_name,
-               [in]   unistr computer_name
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 queue_name[],
+               [in]   [string,charset(UTF16)] uint16 computer_name[]
                );
 
 /**************************/
                uint32 num_open;
                uint32 num_users;
                uint32 conn_time;
-               unistr *user;
-               unistr *client;
+               [string,charset(UTF16)] uint16 *user;
+               [string,charset(UTF16)] uint16 *client;
        } srvsvc_NetConnInfo1;
 
        typedef struct {
        /******************/
        /* Function: 0x08 */
        WERROR srvsvc_NetConnEnum(
-               [in]   unistr *server_unc,
-               [in]   unistr *path,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 *path,
                [in,out]   uint32 level,
                [in,out,switch_is(level)]   srvsvc_NetConnCtr ctr,
                [in]   uint32 max_buffer,
                uint32 fid;
                uint32 permissions;
                uint32 num_locks;
-               unistr *path;
-               unistr *user;
+               [string,charset(UTF16)] uint16 *path;
+               [string,charset(UTF16)] uint16 *user;
        } srvsvc_NetFileInfo3;
 
        typedef struct {
        /******************/
        /* Function: 0x09 */
        WERROR srvsvc_NetFileEnum(
-               [in]   unistr *server_unc,
-               [in]   unistr *path,
-               [in]   unistr *user,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 *path,
+               [in]   [string,charset(UTF16)] uint16 *user,
                [in,out]   uint32 level,
                [in,out,switch_is(level)]   srvsvc_NetFileCtr ctr,
                [in]   uint32 max_buffer,
        /******************/
        /* Function: 0x0a */
        WERROR srvsvc_NetFileGetInfo(
-               [in]   unistr *server_unc,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
                [in]   uint32 fid,
                [in]   uint32 level,
                [out,switch_is(level)]   srvsvc_NetFileInfo info
        /******************/
        /* Function: 0x0b */
        WERROR srvsvc_NetFileClose(
-               [in]   unistr *server_unc,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
                [in]   uint32 fid       
                );
 
 /* srvsvc_NetSess         */
 /**************************/
        typedef struct {
-               unistr *client;
+               [string,charset(UTF16)] uint16 *client;
        } srvsvc_NetSessInfo0;
 
        typedef struct {
        } srvsvc_NetSessCtr0;
 
        typedef struct {
-               unistr *client;
-               unistr *user;
+               [string,charset(UTF16)] uint16 *client;
+               [string,charset(UTF16)] uint16 *user;
                uint32 num_open;
                uint32 time;
                uint32 idle_time;
        } srvsvc_NetSessCtr1;
 
        typedef struct {
-               unistr *client;
-               unistr *user;
+               [string,charset(UTF16)] uint16 *client;
+               [string,charset(UTF16)] uint16 *user;
                uint32 num_open;
                uint32 time;
                uint32 idle_time;
                uint32 user_flags;
-               unistr *client_type;
+               [string,charset(UTF16)] uint16 *client_type;
        } srvsvc_NetSessInfo2;
 
        typedef struct {
        } srvsvc_NetSessCtr2;
 
        typedef struct {
-               unistr *client;
-               unistr *user;
+               [string,charset(UTF16)] uint16 *client;
+               [string,charset(UTF16)] uint16 *user;
                uint32 time;
                uint32 idle_time;
        } srvsvc_NetSessInfo10;
        } srvsvc_NetSessCtr10;
 
        typedef struct {
-               unistr *client;
-               unistr *user;
+               [string,charset(UTF16)] uint16 *client;
+               [string,charset(UTF16)] uint16 *user;
                uint32 num_open;
                uint32 time;
                uint32 idle_time;
                uint32 user_flags;
-               unistr *client_type;
-               unistr *transport;
+               [string,charset(UTF16)] uint16 *client_type;
+               [string,charset(UTF16)] uint16 *transport;
        } srvsvc_NetSessInfo502;
 
        typedef struct {
        /******************/
        /* Function: 0x0c */
        WERROR srvsvc_NetSessEnum(
-               [in]   unistr *server_unc,
-               [in]   unistr *client,
-               [in]   unistr *user,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 *client,
+               [in]   [string,charset(UTF16)] uint16 *user,
                [in,out]   uint32 level,
                [in,out,switch_is(level)]   srvsvc_NetSessCtr ctr,
                [in]   uint32 max_buffer,
        /******************/
        /* Function: 0x0d */
        WERROR srvsvc_NetSessDel(
-               [in]   unistr *server_unc,
-               [in]   unistr *client,
-               [in]   unistr *user
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 *client,
+               [in]   [string,charset(UTF16)] uint16 *user
                );
 
 /**************************/
        } srvsvc_ShareType;
 
        typedef struct {
-               unistr *name;
+               [string,charset(UTF16)] uint16 *name;
        } srvsvc_NetShareInfo0;
 
        typedef struct {
        } srvsvc_NetShareCtr0;
 
        typedef struct {
-               unistr *name;
+               [string,charset(UTF16)] uint16 *name;
                srvsvc_ShareType type;
-               unistr *comment;
+               [string,charset(UTF16)] uint16 *comment;
        } srvsvc_NetShareInfo1;
 
        typedef struct {
        } srvsvc_NetShareCtr1;
 
        typedef struct {
-               unistr *name;
+               [string,charset(UTF16)] uint16 *name;
                srvsvc_ShareType type;
-               unistr *comment;
+               [string,charset(UTF16)] uint16 *comment;
                uint32 permissions;
                uint32 max_users;
                uint32 current_users;
-               unistr *path;
-               unistr *password;
+               [string,charset(UTF16)] uint16 *path;
+               [string,charset(UTF16)] uint16 *password;
        } srvsvc_NetShareInfo2;
 
        typedef struct {
        } srvsvc_NetShareCtr2;
 
        typedef struct {
-               unistr *name;
+               [string,charset(UTF16)] uint16 *name;
                srvsvc_ShareType type;
-               unistr *comment;
+               [string,charset(UTF16)] uint16 *comment;
                uint32 csc_policy;
        } srvsvc_NetShareInfo501;
 
        } srvsvc_NetShareCtr501;
 
        typedef struct {
-               unistr *name;
+               [string,charset(UTF16)] uint16 *name;
                srvsvc_ShareType type;
-               unistr *comment;
+               [string,charset(UTF16)] uint16 *comment;
                uint32 permissions;
                int32 max_users;
                uint32 current_users;
-               unistr *path;
-               unistr *password;
+               [string,charset(UTF16)] uint16 *path;
+               [string,charset(UTF16)] uint16 *password;
                uint32 unknown;
                [subcontext(4)] security_descriptor *sd;
        } srvsvc_NetShareInfo502;
        } srvsvc_NetShareCtr502;
 
        typedef struct {
-               unistr *comment;
+               [string,charset(UTF16)] uint16 *comment;
        } srvsvc_NetShareInfo1004;
 
        typedef struct {
        /******************/
        /* Function: 0x0e */
        WERROR srvsvc_NetShareAdd(
-               [in]   unistr *server_unc,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
                [in]   uint32 level,
                [in,switch_is(level)] srvsvc_NetShareInfo info,
                [in,out]   uint32 *parm_error
        /******************/
        /* Function: 0x0f */
        WERROR srvsvc_NetShareEnumAll (
-               [in]   unistr *server_unc,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
                [in,out]   uint32 level,
                [in,out,switch_is(level)] srvsvc_NetShareCtr ctr,
                [in]   uint32 max_buffer,
        /******************/
        /* Function: 0x10 */
        WERROR srvsvc_NetShareGetInfo(
-               [in]   unistr *server_unc,
-               [in]   unistr share_name,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 share_name[],
                [in]   uint32 level,
                [out,switch_is(level)] srvsvc_NetShareInfo info
                );
        /******************/
        /* Function: 0x11 */
        WERROR srvsvc_NetShareSetInfo(
-               [in]   unistr *server_unc,
-               [in]   unistr share_name,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 share_name[],
                [in]   uint32 level,
                [in,switch_is(level)] srvsvc_NetShareInfo info,
                [in,out]   uint32 *parm_error
        /******************/
        /* Function: 0x12 */
        WERROR srvsvc_NetShareDel(
-               [in]   unistr *server_unc,
-               [in]   unistr share_name,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 share_name[],
                [in]   uint32 reserved
                );
 
        /******************/
        /* Function: 0x13 */
        WERROR srvsvc_NetShareDelSticky(
-               [in]   unistr *server_unc,
-               [in]   unistr share_name,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 share_name[],
                [in]   uint32 reserved
                );
        
        /******************/
        /* Function: 0x14 */
        WERROR srvsvc_NetShareCheck(
-               [in]   unistr *server_unc,
-               [in]   unistr device_name,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
+               [in]   [string,charset(UTF16)] uint16 device_name[],
                [out]  srvsvc_ShareType type
                );
 
 
        typedef struct {
                srvsvc_PlatformId platform_id;
-               unistr *server_name;
+               [string,charset(UTF16)] uint16 *server_name;
        } srvsvc_NetSrvInfo100;
 
        typedef struct {
                srvsvc_PlatformId platform_id;
-               unistr *server_name;
+               [string,charset(UTF16)] uint16 *server_name;
                uint32 version_major;
                uint32 version_minor;
                svcctl_ServerType server_type;
-               unistr *comment;
+               [string,charset(UTF16)] uint16 *comment;
        } srvsvc_NetSrvInfo101;
 
        typedef struct {
                srvsvc_PlatformId platform_id;
-               unistr *server_name;
+               [string,charset(UTF16)] uint16 *server_name;
                uint32 ver_major;
                uint32 ver_minor;
                svcctl_ServerType server_type;
-               unistr *comment;
+               [string,charset(UTF16)] uint16 *comment;
                uint32 users;
                uint32 disc;
                uint32 hidden;
                uint32 announce;
                uint32 anndelta;
                uint32 licences;
-               unistr *userpath;
+               [string,charset(UTF16)] uint16 *userpath;
        } srvsvc_NetSrvInfo102;
 
        typedef struct {
                uint32 ulist_mtime;
                uint32 glist_mtime;
                uint32 alist_mtime;
-               unistr *alerts;
+               [string,charset(UTF16)] uint16 *alerts;
                uint32 security;
                uint32 numadmin;
                uint32 lanmask;
-               unistr *guestaccount;
+               [string,charset(UTF16)] uint16 *guestaccount;
                uint32 chdevs;
                uint32 chdevqs;
                uint32 chdevjobs;
                uint32 diskalert;
                uint32 netioalert;
                uint32 maxaudits;
-               unistr *srvheuristics;
+               [string,charset(UTF16)] uint16 *srvheuristics;
        } srvsvc_NetSrvInfo402;
 
        typedef struct {
                uint32 ulist_mtime;
                uint32 glist_mtime;
                uint32 alist_mtime;
-               unistr *alerts;
+               [string,charset(UTF16)] uint16 *alerts;
                uint32 security;
                uint32 numadmin;
                uint32 lanmask;
-               unistr *guestaccount;
+               [string,charset(UTF16)] uint16 *guestaccount;
                uint32 chdevs;
                uint32 chdevqs;
                uint32 chdevjobs;
                uint32 diskalert;
                uint32 netioalert;
                uint32 maxaudits;
-               unistr *srvheuristics;
+               [string,charset(UTF16)] uint16 *srvheuristics;
                uint32 auditedevents;
                uint32 auditprofile;
-               unistr *autopath;
+               [string,charset(UTF16)] uint16 *autopath;
        } srvsvc_NetSrvInfo403;
 
        typedef struct {
                uint32 timesource;
                uint32 acceptdownlevelapis;
                uint32 lmannounce;
-               unistr *domain;
+               [string,charset(UTF16)] uint16 *domain;
                uint32 maxcopyreadlen;
                uint32 maxcopywritelen;
                uint32 minkeepsearch;
        /******************/
        /* Function: 0x15 */
        WERROR srvsvc_NetSrvGetInfo(
-               [in]   unistr *server_unc,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
                [in]   uint32 level,
                [out,switch_is(level)] srvsvc_NetSrvInfo info
                );
        /******************/
        /* Function: 0x16 */
        WERROR srvsvc_NetSrvSetInfo(
-               [in]   unistr *server_unc,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
                [in]   uint32 level,
                [in,switch_is(level)] srvsvc_NetSrvInfo info,
                [in,out]   uint32 *parm_error
        /******************/
        /* Function: 0x17 */
        WERROR srvsvc_NetDiskEnum(
-               [in]      unistr *server_unc,
+               [in]      [string,charset(UTF16)] uint16 *server_unc,
                [in]      uint32 level,
                [out]     uint32 count,
                [in,switch_is(level)] srvsvc_NetDiskCtr ctr,
 
        typedef struct {
                uint32 vcs;
-               unistr *name;
+               [string,charset(UTF16)] uint16 *name;
                srvsvc_NetTransportAddress *addr;
                uint32 addr_len;
-               unistr *net_addr;
+               [string,charset(UTF16)] uint16 *net_addr;
        } srvsvc_NetTransportInfo0;
 
        typedef struct {
 
        typedef struct {
                uint32 vcs;
-               unistr *name;
+               [string,charset(UTF16)] uint16 *name;
                srvsvc_NetTransportAddress *addr;
                uint32 addr_len;
-               unistr *net_addr;
-               unistr *domain;
+               [string,charset(UTF16)] uint16 *net_addr;
+               [string,charset(UTF16)] uint16 *domain;
        } srvsvc_NetTransportInfo1;
 
        typedef struct {
        /******************/
        /* Function: 0x1a */
        WERROR srvsvc_NetTransportEnum(
-               [in]   unistr *server_unc,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
                [in,out] uint32 level,
                [in,out,switch_is(level)]   srvsvc_NetTransportCtr ctr,
                [in]   uint32 max_buffer,
        /******************/
        /* Function: 0x1c */
        WERROR srvsvc_NetRemoteTOD(
-               [in]   unistr *server_unc,
+               [in]   [string,charset(UTF16)] uint16 *server_unc,
                [out]   srvsvc_NetRemoteTODInfo *info
                );
 
        /* Note, there must be some way to return entries read vs 
           total entries ... */
        WERROR srvsvc_NetShareEnum(
-               [in]       unistr *server_unc,
+               [in]       [string,charset(UTF16)] uint16 *server_unc,
                [in,out]   uint32 level,
                [in,out,switch_is(level)]   srvsvc_NetShareCtr ctr,
                [in]       uint32 max_buffer,
index 3ffe41c109be752eeca4ab43cc8dcdf1745b3459..27172f85df01ce813ade23dcb04b8f5b4c388174 100644 (file)
@@ -14,7 +14,7 @@
 {
        typedef struct {
                uint32 is_locked;
-               unistr *lock_owner;
+               [string,charset(UTF16)] uint16 *lock_owner;
                uint32 lock_duration;
        } SERVICE_LOCK_STATUS;
 
                                                                          [in] uint32 type,
                                                                          [in] uint32 start,
                                                                          [in] uint32 error,
-                                                                         [in] unistr *binary_path,
-                                                                         [in] unistr *load_order_group,
+                                                                         [in] [string,charset(UTF16)] uint16 *binary_path,
+                                                                         [in] [string,charset(UTF16)] uint16 *load_order_group,
                                                                          [out] uint32 tag_id,
-                                                                         [in] unistr *dependencies,
-                                                                         [in] unistr *service_start_name,
-                                                                         [in] unistr *password,
-                                                                         [in] unistr *display_name);
+                                                                         [in] [string,charset(UTF16)] uint16 *dependencies,
+                                                                         [in] [string,charset(UTF16)] uint16 *service_start_name,
+                                                                         [in] [string,charset(UTF16)] uint16 *password,
+                                                                         [in] [string,charset(UTF16)] uint16 *display_name);
 
        /*****************/
        /* Function 0x0c */
        WERROR svcctl_CreateServiceW([in,ref] policy_handle *handle,
-                                                               [in] unistr *ServiceName,
-                                                               [in] unistr *DisplayName,
+                                                               [in] [string,charset(UTF16)] uint16 *ServiceName,
+                                                               [in] [string,charset(UTF16)] uint16 *DisplayName,
                                                                [in] uint32 desired_access,
                                                                [in] uint32 type,
                                                                [in] uint32 start_type,
                                                                [in] uint32 error_control,
-                                                               [in] unistr *binary_path,
-                                                               [in] unistr *LoadOrderGroupKey,
+                                                               [in] [string,charset(UTF16)] uint16 *binary_path,
+                                                               [in] [string,charset(UTF16)] uint16 *LoadOrderGroupKey,
                                                                [out] uint32 *TagId,
-                                                               [in] unistr *dependencies,
-                                                               [in] unistr *service_start_name,
-                                                               [in] unistr *password);
+                                                               [in] [string,charset(UTF16)] uint16 *dependencies,
+                                                               [in] [string,charset(UTF16)] uint16 *service_start_name,
+                                                               [in] [string,charset(UTF16)] uint16 *password);
 
        /*****************/
        /* Function 0x0d */
        /*****************/
        /* Function 0x0f */
        WERROR svcctl_OpenSCManagerW(
-                                          [in] unistr *MachineName,
-                                          [in] unistr *DatabaseName,
+                                          [in] [string,charset(UTF16)] uint16 *MachineName,
+                                          [in] [string,charset(UTF16)] uint16 *DatabaseName,
                                           [in] uint32 access_mask,
                                           [out,ref] policy_handle *handle);
 
        /*****************/
        /* Function 0x10 */
        WERROR svcctl_OpenServiceW([in,ref] policy_handle *scmanager_handle,
-                                                         [in] unistr *ServiceName,
+                                                         [in] [string,charset(UTF16)] uint16 *ServiceName,
                                                          [in] uint32 access_mask);
 
        /*****************/
        WERROR svcctl_StartServiceW(
                                                           [in,ref] policy_handle *handle,
                                                           [in] uint32 NumArgs,
-                                                          [in,length_is(NumArgs)] unistr *Arguments);
+                                                          [in,length_is(NumArgs)] [string,charset(UTF16)] uint16 *Arguments);
 
        /*****************/
        /* Function 0x14 */
        WERROR svcctl_GetServiceDisplayNameW([in,ref] policy_handle *handle,
-                                                                               [in] unistr *service_name,
-                                                                               [out] unistr *display_name,
+                                                                               [in] [string,charset(UTF16)] uint16 *service_name,
+                                                                               [out] [string,charset(UTF16)] uint16 *display_name,
                                                                                [in,out] uint32 *display_name_length); 
        /*****************/
        /* Function 0x15 */
        WERROR svcctl_GetServiceKeyNameW([in,ref] policy_handle *handle,
-                                                                               [in] unistr *service_name,
-                                                                               [out] unistr *key_name,
+                                                                               [in] [string,charset(UTF16)] uint16 *service_name,
+                                                                               [out] [string,charset(UTF16)] uint16 *key_name,
                                                                                [in,out] uint32 *display_name_length);                                                                  
        /*****************/
        /* Function 0x16 */
                                                                          [in] uint32 type,
                                                                          [in] uint32 start,
                                                                          [in] uint32 error,
-                                                                         [in] unistr *binary_path,
-                                                                         [in] unistr *load_order_group,
+                                                                         [in] [string,charset(UTF16)] uint16 *binary_path,
+                                                                         [in] [string,charset(UTF16)] uint16 *load_order_group,
                                                                          [out] uint32 tag_id,
-                                                                         [in] unistr *dependencies,
-                                                                         [in] unistr *service_start_name,
-                                                                         [in] unistr *password,
-                                                                         [in] unistr *display_name);
+                                                                         [in] [string,charset(UTF16)] uint16 *dependencies,
+                                                                         [in] [string,charset(UTF16)] uint16 *service_start_name,
+                                                                         [in] [string,charset(UTF16)] uint16 *password,
+                                                                         [in] [string,charset(UTF16)] uint16 *display_name);
 
        /*****************/
        /* Function 0x18 */
        WERROR svcctl_CreateServiceA([in,ref] policy_handle *handle,
-                                                               [in] unistr *ServiceName,
-                                                               [in] unistr *DisplayName,
+                                                               [in] [string,charset(UTF16)] uint16 *ServiceName,
+                                                               [in] [string,charset(UTF16)] uint16 *DisplayName,
                                                                [in] uint32 desired_access,
                                                                [in] uint32 type,
                                                                [in] uint32 start_type,
                                                                [in] uint32 error_control,
-                                                               [in] unistr *binary_path,
-                                                               [in] unistr *LoadOrderGroupKey,
+                                                               [in] [string,charset(UTF16)] uint16 *binary_path,
+                                                               [in] [string,charset(UTF16)] uint16 *LoadOrderGroupKey,
                                                                [out] uint32 *TagId,
-                                                               [in] unistr *dependencies,
-                                                               [in] unistr *service_start_name,
-                                                               [in] unistr *password);
+                                                               [in] [string,charset(UTF16)] uint16 *dependencies,
+                                                               [in] [string,charset(UTF16)] uint16 *service_start_name,
+                                                               [in] [string,charset(UTF16)] uint16 *password);
 
        /*****************/
        /* Function 0x19 */
        /*****************/
        /* Function 0x1b */
        WERROR svcctl_OpenSCManagerA(
-                                          [in] unistr *MachineName,
-                                          [in] unistr *DatabaseName,
+                                          [in] [string,charset(UTF16)] uint16 *MachineName,
+                                          [in] [string,charset(UTF16)] uint16 *DatabaseName,
                                           [in] uint32 access_mask,
                                           [out,ref] policy_handle *handle);
 
        /*****************/
        /* Function 0x1c */
        WERROR svcctl_OpenServiceA([in,ref] policy_handle *scmanager_handle,
-                                                         [in] unistr *ServiceName,
+                                                         [in] [string,charset(UTF16)] uint16 *ServiceName,
                                                          [in] uint32 access_mask);
 
        /*****************/
        WERROR svcctl_StartServiceA(
                                                           [in,ref] policy_handle *handle,
                                                           [in] uint32 NumArgs,
-                                                          [in,length_is(NumArgs)] unistr *Arguments);
+                                                          [in,length_is(NumArgs)] [string,charset(UTF16)] uint16 *Arguments);
 
        /*****************/
        /* Function 0x20 */
        WERROR svcctl_GetServiceDisplayNameA([in,ref] policy_handle *handle,
-                                                                               [in] unistr *service_name,
-                                                                               [out] unistr *display_name,
+                                                                               [in] [string,charset(UTF16)] uint16 *service_name,
+                                                                               [out] [string,charset(UTF16)] uint16 *display_name,
                                                                                [in,out] uint32 *display_name_length); 
        /*****************/
        /* Function 0x21 */
        WERROR svcctl_GetServiceKeyNameA([in,ref] policy_handle *handle,
-                                                                               [in] unistr *service_name,
-                                                                               [out] unistr *key_name,
+                                                                               [in] [string,charset(UTF16)] uint16 *service_name,
+                                                                               [out] [string,charset(UTF16)] uint16 *key_name,
                                                                                [in,out] uint32 *display_name_length);                                                                  
 
        /*****************/
                                                                 [out] uint32 bytes_needed,
                                                                 [out] uint32 service_returned,
                                                                 [in,out] uint32 *resume_handle, 
-                                                                [out] unistr *group_name);
+                                                                [out] [string,charset(UTF16)] uint16 *group_name);
 
        /*****************/
        /* Function 0x2a */
                                                                 [out] uint32 bytes_needed,
                                                                 [out] uint32 service_returned,
                                                                 [in,out] uint32 *resume_handle, 
-                                                                [out] unistr *group_name);
+                                                                [out] [string,charset(UTF16)] uint16 *group_name);
 
        /*****************/
        /* Function 0x2b */
index 76ccd0fe48c49406808f71e8f93144a2c239aaab..71fd74297edc5979dafda89691c14d89cf664afa 100644 (file)
 
        typedef struct {
                srvsvc_PlatformId platform_id;
-               unistr *server_name;
-               unistr *domain_name;
+               [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;
-               unistr *server_name;
-               unistr *domain_name;
+               [string,charset(UTF16)] uint16 *server_name;
+               [string,charset(UTF16)] uint16 *domain_name;
                uint32 version_major;
                uint32 version_minor;
-               unistr *lan_root;
+               [string,charset(UTF16)] uint16 *lan_root;
        } wkssvc_NetWkstaInfo101;
 
        typedef struct {
                srvsvc_PlatformId platform_id;
-               unistr *server_name;
-               unistr *domain_name;
+               [string,charset(UTF16)] uint16 *server_name;
+               [string,charset(UTF16)] uint16 *domain_name;
                uint32 version_major;
                uint32 version_minor;
-               unistr *lan_root;
+               [string,charset(UTF16)] uint16 *lan_root;
                uint32 logged_on_users;
        } wkssvc_NetWkstaInfo102;
 
@@ -93,7 +93,7 @@
        } wkssvc_NetWkstaInfo;
 
        WERROR wkssvc_NetWkstaGetInfo(
-               [in]   unistr *server_name,
+               [in]   [string,charset(UTF16)] uint16 *server_name,
                [in]   uint32 level,
                [out,switch_is(level)]  wkssvc_NetWkstaInfo info
                );
        /******************/
        /* Function: 0x01 */
        WERROR wkssvc_NetWkstaSetInfo(
-               [in]   unistr *server_name,
+               [in]   [string,charset(UTF16)] uint16 *server_name,
                [in]   uint32 level,
                [in,switch_is(level)]  wkssvc_NetWkstaInfo info,
                [in,out]   uint32 *parm_error
        typedef struct {
                uint32 quality_of_service;
                uint32 vc_count;
-               unistr *name;
-               unistr *address;
+               [string,charset(UTF16)] uint16 *name;
+               [string,charset(UTF16)] uint16 *address;
                uint32 wan_link;
        } wkssvc_NetWkstaTransportInfo0;
 
        } wkssvc_NetWkstaTransportCtr;
 
        WERROR wkssvc_NetWkstaTransportEnum (
-               [in]         unistr *server_name,
+               [in]         [string,charset(UTF16)] uint16 *server_name,
                [in,out]     uint32 level,
                [in,out,switch_is(level)] wkssvc_NetWkstaTransportCtr ctr,
                [in]         uint32 max_buffer,