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/rpcse…
==============================================================================
--- 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/netapi3…
==============================================================================
--- 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_n…
==============================================================================
--- 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