/*++ Copyright (c) 1990 Microsoft Corporation Module Name: wkssvc.idl Abstract: Contains the Netr (Net Remote) RPC interface specification for the APIs associated with the Workstation service. This includes APIs from the following catagories: NetWksta NetUse Also contains the RPC specific data structures for these API. Author: Rita Wong (ritaw) 06-May-1991 Environment: User Mode - Win32 - MIDL Revision History: 21-Jan-1992 rfirth * Removed NET_API_FUNCTION from all interfaces --*/ // // Interface Attributes // [ uuid(6BFFD098-A112-3610-9833-46C3F87E345A), version(1.0), #ifdef __midl ms_union, #endif // __midl pointer_default(unique) ] // // Interface Keyword // interface wkssvc // // Interface Body // { import "imports.idl"; #include // // BUGBUG - take this definition out when midl understands LPWSTR etc // #ifdef UNICODE #define LPTSTR wchar_t* #endif // // ---------------------------------------------------------------// // typedef [handle] LPTSTR WKSSVC_IMPERSONATE_HANDLE; typedef [handle] LPTSTR WKSSVC_IDENTIFY_HANDLE; // // Workstation APIs // // // NetrWkstaGetInfo and NetrWkstaSetInfo // typedef [switch_type(unsigned long)] union _WKSTA_INFO { [case(100)] LPWKSTA_INFO_100 WkstaInfo100; [case(101)] LPWKSTA_INFO_101 WkstaInfo101; [case(102)] LPWKSTA_INFO_102 WkstaInfo102; [case(1010)] LPWKSTA_INFO_1010 WkstaInfo1010; [case(1011)] LPWKSTA_INFO_1011 WkstaInfo1011; [case(1012)] LPWKSTA_INFO_1012 WkstaInfo1012; [case(1013)] LPWKSTA_INFO_1013 WkstaInfo1013; [case(1018)] LPWKSTA_INFO_1018 WkstaInfo1018; [case(1023)] LPWKSTA_INFO_1023 WkstaInfo1023; [case(1033)] LPWKSTA_INFO_1033 WkstaInfo1033; [case(1041)] LPWKSTA_INFO_1041 WkstaInfo1041; [case(1042)] LPWKSTA_INFO_1042 WkstaInfo1042; [case(1043)] LPWKSTA_INFO_1043 WkstaInfo1043; [case(1044)] LPWKSTA_INFO_1044 WkstaInfo1044; [case(1045)] LPWKSTA_INFO_1045 WkstaInfo1045; [case(1046)] LPWKSTA_INFO_1046 WkstaInfo1046; [case(1047)] LPWKSTA_INFO_1047 WkstaInfo1047; [case(1048)] LPWKSTA_INFO_1048 WkstaInfo1048; [case(1049)] LPWKSTA_INFO_1049 WkstaInfo1049; [case(1050)] LPWKSTA_INFO_1050 WkstaInfo1050; [case(1051)] LPWKSTA_INFO_1051 WkstaInfo1051; [case(1052)] LPWKSTA_INFO_1052 WkstaInfo1052; [case(1053)] LPWKSTA_INFO_1053 WkstaInfo1053; [case(1054)] LPWKSTA_INFO_1054 WkstaInfo1054; [case(1055)] LPWKSTA_INFO_1055 WkstaInfo1055; [case(1056)] LPWKSTA_INFO_1056 WkstaInfo1056; [case(1057)] LPWKSTA_INFO_1057 WkstaInfo1057; [case(1058)] LPWKSTA_INFO_1058 WkstaInfo1058; [case(1059)] LPWKSTA_INFO_1059 WkstaInfo1059; [case(1060)] LPWKSTA_INFO_1060 WkstaInfo1060; [case(1061)] LPWKSTA_INFO_1061 WkstaInfo1061; [case(1062)] LPWKSTA_INFO_1062 WkstaInfo1062; [case(502)] LPWKSTA_INFO_502 WkstaInfo502; [default] ; } WKSTA_INFO, *PWKSTA_INFO, *LPWKSTA_INFO; NET_API_STATUS NetrWkstaGetInfo ( [in,string,unique] WKSSVC_IDENTIFY_HANDLE ServerName, [in] DWORD Level, [out, switch_is(Level)] LPWKSTA_INFO WkstaInfo ); NET_API_STATUS NetrWkstaSetInfo ( [in,string,unique] WKSSVC_IDENTIFY_HANDLE ServerName, [in] DWORD Level, [in, switch_is(Level)] LPWKSTA_INFO WkstaInfo, [in,out,unique] LPDWORD ErrorParameter ); // // NetrWkstaUserEnum // typedef struct _WKSTA_USER_INFO_0_CONTAINER { DWORD EntriesRead; [size_is(EntriesRead)] LPWKSTA_USER_INFO_0 Buffer; } WKSTA_USER_INFO_0_CONTAINER, *PWKSTA_USER_INFO_0_CONTAINER, *LPWKSTA_USER_INFO_0_CONTAINER; typedef struct _WKSTA_USER_INFO_1_CONTAINER { DWORD EntriesRead; [size_is(EntriesRead)] LPWKSTA_USER_INFO_1 Buffer; } WKSTA_USER_INFO_1_CONTAINER, *PWKSTA_USER_INFO_1_CONTAINER, *LPWKSTA_USER_INFO_1_CONTAINER; typedef struct _WKSTA_USER_ENUM_STRUCT { DWORD Level; [switch_is(Level)] union _WKSTA_USER_ENUM_UNION { [case(0)] LPWKSTA_USER_INFO_0_CONTAINER Level0; [case(1)] LPWKSTA_USER_INFO_1_CONTAINER Level1; [default] ; } WkstaUserInfo; } WKSTA_USER_ENUM_STRUCT, *PWKSTA_USER_ENUM_STRUCT, *LPWKSTA_USER_ENUM_STRUCT; NET_API_STATUS NetrWkstaUserEnum ( [in,string,unique] WKSSVC_IDENTIFY_HANDLE ServerName, [in,out] LPWKSTA_USER_ENUM_STRUCT UserInfo, [in] DWORD PreferredMaximumLength, [out] LPDWORD TotalEntries, [in,out,unique] LPDWORD ResumeHandle ); // // NetrWkstaUserGetInfo and NetrWkstaUserSetInfo // typedef [switch_type(unsigned long)] union _WKSTA_USER_INFO { [case(0)] LPWKSTA_USER_INFO_0 UserInfo0; [case(1)] LPWKSTA_USER_INFO_1 UserInfo1; [case(1101)] LPWKSTA_USER_INFO_1101 UserInfo1101; [default] ; } WKSTA_USER_INFO, *PWKSTA_USER_INFO, *LPWKSTA_USER_INFO; NET_API_STATUS NetrWkstaUserGetInfo ( [in,string,unique] WKSSVC_IDENTIFY_HANDLE Reserved, [in] DWORD Level, [out, switch_is(Level)] LPWKSTA_USER_INFO UserInfo ); NET_API_STATUS NetrWkstaUserSetInfo ( [in,string,unique] WKSSVC_IDENTIFY_HANDLE Reserved, [in] DWORD Level, [in, switch_is(Level)] LPWKSTA_USER_INFO UserInfo, [in,out,unique] LPDWORD ErrorParameter ); // // NetrWkstaTransportEnum // typedef struct _WKSTA_TRANSPORT_INFO_0_CONTAINER { DWORD EntriesRead; [size_is(EntriesRead)] LPWKSTA_TRANSPORT_INFO_0 Buffer; } WKSTA_TRANSPORT_INFO_0_CONTAINER, *PWKSTA_TRANSPORT_INFO_0_CONTAINER, *LPWKSTA_TRANSPORT_INFO_0_CONTAINER; typedef struct _WKSTA_TRANSPORT_ENUM_STRUCT { DWORD Level; [switch_is(Level)] union _WKSTA_TRANSPORT_ENUM_UNION { [case(0)] LPWKSTA_TRANSPORT_INFO_0_CONTAINER Level0; [default] ; } WkstaTransportInfo; } WKSTA_TRANSPORT_ENUM_STRUCT, *PWKSTA_TRANSPORT_ENUM_STRUCT, *LPWKSTA_TRANSPORT_ENUM_STRUCT; NET_API_STATUS NetrWkstaTransportEnum ( [in,string,unique] WKSSVC_IDENTIFY_HANDLE ServerName, [in,out] LPWKSTA_TRANSPORT_ENUM_STRUCT TransportInfo, [in] DWORD PreferredMaximumLength, [out] LPDWORD TotalEntries, [in,out,unique] LPDWORD ResumeHandle ); // // NetrWkstaTransportAdd // NET_API_STATUS NetrWkstaTransportAdd ( [in,string,unique] WKSSVC_IDENTIFY_HANDLE ServerName, [in] DWORD Level, [in] LPWKSTA_TRANSPORT_INFO_0 TransportInfo, [in,out,unique] LPDWORD ErrorParameter ); // // NetrWkstaTransportDel // NET_API_STATUS NetrWkstaTransportDel ( [in,string,unique] WKSSVC_IDENTIFY_HANDLE ServerName, [in,string,unique] LPTSTR TransportName, [in] DWORD ForceLevel ); // // NetrUseAdd and NetrUseGetInfo // typedef [switch_type(unsigned long)] union _USE_INFO { [case(0)] LPUSE_INFO_0 UseInfo0; [case(1)] LPUSE_INFO_1 UseInfo1; [case(2)] LPUSE_INFO_2 UseInfo2; [case(3)] LPUSE_INFO_3 UseInfo3; [default] ; } USE_INFO, *PUSE_INFO, *LPUSE_INFO; NET_API_STATUS NetrUseAdd ( [in,string,unique] WKSSVC_IMPERSONATE_HANDLE ServerName, [in] DWORD Level, [in, switch_is(Level)] LPUSE_INFO InfoStruct, [in,out,unique] LPDWORD ErrorParameter ); NET_API_STATUS NetrUseGetInfo ( [in,string,unique] WKSSVC_IMPERSONATE_HANDLE ServerName, [in,string] LPTSTR UseName, [in] DWORD Level, [out, switch_is(Level)] LPUSE_INFO InfoStruct ); // // NetrUseDel // NET_API_STATUS NetrUseDel ( [in,string,unique] WKSSVC_IMPERSONATE_HANDLE ServerName, [in,string] LPTSTR UseName, [in] DWORD ForceLevel ); // // NetrUseEnum // typedef struct _USE_INFO_0_CONTAINER { DWORD EntriesRead; [size_is(EntriesRead)] LPUSE_INFO_0 Buffer; } USE_INFO_0_CONTAINER, *PUSE_INFO_0_CONTAINER, *LPUSE_INFO_0_CONTAINER; typedef struct _USE_INFO_1_CONTAINER { DWORD EntriesRead; [size_is(EntriesRead)] LPUSE_INFO_1 Buffer; } USE_INFO_1_CONTAINER, *PUSE_INFO_1_CONTAINER, *LPUSE_INFO_1_CONTAINER; typedef struct _USE_INFO_2_CONTAINER { DWORD EntriesRead; [size_is(EntriesRead)] LPUSE_INFO_2 Buffer; } USE_INFO_2_CONTAINER, *PUSE_INFO_2_CONTAINER, *LPUSE_INFO_2_CONTAINER; typedef struct _USE_ENUM_STRUCT { DWORD Level; [switch_is(Level)] union _USE_ENUM_UNION { [case(0)] LPUSE_INFO_0_CONTAINER Level0; [case(1)] LPUSE_INFO_1_CONTAINER Level1; [case(2)] LPUSE_INFO_2_CONTAINER Level2; [default] ; } UseInfo; }USE_ENUM_STRUCT, *PUSE_ENUM_STRUCT, *LPUSE_ENUM_STRUCT; NET_API_STATUS NetrUseEnum ( [in,string,unique] WKSSVC_IDENTIFY_HANDLE ServerName, [in,out] LPUSE_ENUM_STRUCT InfoStruct, [in] DWORD PreferedMaximumLength, [out] LPDWORD TotalEntries, [in,out,unique] LPDWORD ResumeHandle ); // // NetrMessageBufferSend // NET_API_STATUS NetrMessageBufferSend ( [in,string,unique] WKSSVC_IMPERSONATE_HANDLE ServerName, [in,string] LPTSTR MessageName, [in,string,unique] LPTSTR FromName, [in,size_is(MessageSize)] LPBYTE Message, [in] DWORD MessageSize ); NET_API_STATUS NetrWorkstationStatisticsGet( [in,string,unique] WKSSVC_IDENTIFY_HANDLE ServerName, [in,string,unique] LPTSTR ServiceName, [in] DWORD Level, [in] DWORD Options, [out] LPSTAT_WORKSTATION_0* Buffer ); // // I_NetrLogonDomainNameAdd // NET_API_STATUS I_NetrLogonDomainNameAdd( [in,string] WKSSVC_IDENTIFY_HANDLE LogonDomain ); // // I_NetrLogonDomainNameDel // NET_API_STATUS I_NetrLogonDomainNameDel( [in,string] WKSSVC_IDENTIFY_HANDLE LogonDomain ); }