Author: ekohl Date: Wed Feb 25 22:11:41 2015 New Revision: 66459
URL: http://svn.reactos.org/svn/reactos?rev=66459&view=rev Log: [INCLUDE] wkssvc.idl: Add NetrWkstaUserGetInfo and NetrWkstaUserSetInfo definitions based on the Samba wkssvc.idl and MSDN.
[NETAPI32] - Implement NetWkstaUserGetInfo and NetWkstaUserSetInfo. - Add some debug output.
[WKSSVC] Add NetrWkstaUserGetInfo and NetrWkstaUserSetInfo stubs. CORE-9248
Modified: trunk/reactos/base/services/wkssvc/rpcserver.c trunk/reactos/dll/win32/netapi32/netapi32.spec trunk/reactos/dll/win32/netapi32/wksta.c trunk/reactos/dll/win32/netapi32/wksta_new.c trunk/reactos/include/reactos/idl/wkssvc.idl
Modified: trunk/reactos/base/services/wkssvc/rpcserver.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/services/wkssvc/rpcser... ============================================================================== --- trunk/reactos/base/services/wkssvc/rpcserver.c [iso-8859-1] (original) +++ trunk/reactos/base/services/wkssvc/rpcserver.c [iso-8859-1] Wed Feb 25 22:11:41 2015 @@ -121,22 +121,31 @@
/* Function 3 */ -void -__stdcall -Opnum3NotUsedOnWire(void) -{ - UNIMPLEMENTED; -// return 0; +unsigned long +__stdcall +NetrWkstaUserGetInfo( + WKSSVC_IDENTIFY_HANDLE Unused, + unsigned long Level, + LPWKSTA_USER_INFO UserInfo) +{ + FIXME("(%s, %d, %p)\n", debugstr_w(Unused), Level, UserInfo); + + UNIMPLEMENTED; + return 0; }
/* Function 4 */ -void -__stdcall -Opnum4NotUsedOnWire(void) -{ - UNIMPLEMENTED; -// return 0; +unsigned long +__stdcall +NetrWkstaUserSetInfo ( + WKSSVC_IDENTIFY_HANDLE Unused, + unsigned long Level, + LPWKSTA_USER_INFO UserInfo, + unsigned long *ErrorParameter) +{ + UNIMPLEMENTED; + return 0; }
Modified: trunk/reactos/dll/win32/netapi32/netapi32.spec URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/netapi32/netapi32... ============================================================================== --- trunk/reactos/dll/win32/netapi32/netapi32.spec [iso-8859-1] (original) +++ trunk/reactos/dll/win32/netapi32/netapi32.spec [iso-8859-1] Wed Feb 25 22:11:41 2015 @@ -260,7 +260,7 @@ @ stdcall NetWkstaTransportEnum(wstr long ptr long ptr ptr ptr) @ stdcall NetWkstaUserEnum(wstr long ptr long ptr ptr ptr) @ stdcall NetWkstaUserGetInfo(wstr long ptr) -@ stub NetWkstaUserSetInfo +@ stdcall NetWkstaUserSetInfo(wstr long ptr ptr) @ stdcall NetapipBufferAllocate(long ptr) NetApiBufferAllocate @ stdcall Netbios(ptr) @ stub NetpAccessCheck
Modified: trunk/reactos/dll/win32/netapi32/wksta.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/netapi32/wksta.c?... ============================================================================== --- trunk/reactos/dll/win32/netapi32/wksta.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/netapi32/wksta.c [iso-8859-1] Wed Feb 25 22:11:41 2015 @@ -276,6 +276,7 @@ /************************************************************ * NetWkstaUserGetInfo (NETAPI32.@) */ +#if 0 NET_API_STATUS WINAPI NetWkstaUserGetInfo(LMSTR reserved, DWORD level, PBYTE* bufptr) { @@ -413,6 +414,7 @@ } return NERR_Success; } +#endif
/************************************************************ * NetWkstaUserEnum (NETAPI32.@)
Modified: trunk/reactos/dll/win32/netapi32/wksta_new.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/netapi32/wksta_ne... ============================================================================== --- trunk/reactos/dll/win32/netapi32/wksta_new.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/netapi32/wksta_new.c [iso-8859-1] Wed Feb 25 22:11:41 2015 @@ -147,7 +147,8 @@ { NET_API_STATUS status;
- FIXME("Stub %s %p %p\n", wine_dbgstr_w(Server), Name, type); + TRACE("NetGetJoinInformation(%s %p %p)\n", wine_dbgstr_w(Server), + Name, type);
if (Name == NULL || type == NULL) return ERROR_INVALID_PARAMETER; @@ -177,6 +178,9 @@ { NET_API_STATUS status;
+ TRACE("NetWkstaGetInfo(%s, %d, %p)\n", debugstr_w(servername), + level, bufptr); + *bufptr = NULL;
RpcTryExcept @@ -204,6 +208,9 @@ LPDWORD parm_err) { NET_API_STATUS status; + + TRACE("NetWkstaSetInfo(%s, %d, %p, %p)\n", debugstr_w(servername), + level, buffer, parm_err);
RpcTryExcept { @@ -238,7 +245,7 @@ WKSTA_USER_INFO_1_CONTAINER Level1; NET_API_STATUS status;
- TRACE("(%s, %d, %p, %d, %p, %p, %p): stub!\n", debugstr_w(servername), + TRACE("NetWkstaUserEnum(%s, %d, %p, %d, %p, %p, %p)\n", debugstr_w(servername), level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle);
UserEnumInfo.Level = level; @@ -292,4 +299,70 @@ return status; }
+ +NET_API_STATUS +WINAPI +NetWkstaUserGetInfo( + LPWSTR reserved, + DWORD level, + PBYTE *bufptr) +{ + NET_API_STATUS status; + + TRACE("NetWkstaUserGetInfo(%s, %d, %p)\n", debugstr_w(reserved), + level, bufptr); + + if (reserved != NULL) + return ERROR_INVALID_PARAMETER; + + *bufptr = NULL; + + RpcTryExcept + { + status = NetrWkstaUserGetInfo(NULL, + level, + (LPWKSTA_USER_INFO)bufptr); + } + RpcExcept(EXCEPTION_EXECUTE_HANDLER) + { + status = I_RpcMapWin32Status(RpcExceptionCode()); + } + RpcEndExcept; + + return status; +} + + +NET_API_STATUS +WINAPI +NetWkstaUserSetInfo( + LPWSTR reserved, + DWORD level, + LPBYTE buf, + LPDWORD parm_err) +{ + NET_API_STATUS status; + + TRACE("NetWkstaSetInfo(%s, %d, %p, %p)\n", debugstr_w(reserved), + level, buf, parm_err); + + if (reserved != NULL) + return ERROR_INVALID_PARAMETER; + + RpcTryExcept + { + status = NetrWkstaUserSetInfo(NULL, + level, + (LPWKSTA_USER_INFO)&buf, + parm_err); + } + RpcExcept(EXCEPTION_EXECUTE_HANDLER) + { + status = I_RpcMapWin32Status(RpcExceptionCode()); + } + RpcEndExcept; + + return status; +} + /* EOF */
Modified: trunk/reactos/include/reactos/idl/wkssvc.idl URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/idl/wkssvc.... ============================================================================== --- trunk/reactos/include/reactos/idl/wkssvc.idl [iso-8859-1] (original) +++ trunk/reactos/include/reactos/idl/wkssvc.idl [iso-8859-1] Wed Feb 25 22:11:41 2015 @@ -174,6 +174,19 @@ [string] wchar_t *wkui1_logon_server; } WKSTA_USER_INFO_1, *PWKSTA_USER_INFO_1, *LPWKSTA_USER_INFO_1;
+typedef struct _WKSTA_USER_INFO_1101 +{ + [string] wchar_t *wkui1101_oth_domains; +} WKSTA_USER_INFO_1101, *PWKSTA_USER_INFO_1101, *LPWKSTA_USER_INFO_1101; + +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; + typedef struct _WKSTA_TRANSPORT_INFO_0 { unsigned long wkti0_quality_of_service; @@ -373,14 +386,21 @@ [in, out, unique] unsigned long *ResumeHandle);
/* Function 3 */ - void - __stdcall - Opnum3NotUsedOnWire(void); + unsigned long + __stdcall + NetrWkstaUserGetInfo( + [in, string, unique] WKSSVC_IDENTIFY_HANDLE Unused, + [in] unsigned long Level, + [out, switch_is(Level)] LPWKSTA_USER_INFO UserInfo);
/* Function 4 */ - void - __stdcall - Opnum4NotUsedOnWire(void); + unsigned long + __stdcall + NetrWkstaUserSetInfo ( + [in, string, unique] WKSSVC_IDENTIFY_HANDLE Unused, + [in] unsigned long Level, + [in, switch_is(Level)] LPWKSTA_USER_INFO UserInfo, + [in, out, unique] unsigned long *ErrorParameter);
/* Function 5 */ unsigned long