[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

svn path=/trunk/; revision=66459
This commit is contained in:
Eric Kohl 2015-02-25 22:11:41 +00:00
parent e52e391e68
commit af0a104d59
5 changed files with 117 additions and 13 deletions

View file

@ -121,22 +121,31 @@ NetrWkstaUserEnum(
/* Function 3 */
void
unsigned long
__stdcall
Opnum3NotUsedOnWire(void)
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;
return 0;
}
/* Function 4 */
void
unsigned long
__stdcall
Opnum4NotUsedOnWire(void)
NetrWkstaUserSetInfo (
WKSSVC_IDENTIFY_HANDLE Unused,
unsigned long Level,
LPWKSTA_USER_INFO UserInfo,
unsigned long *ErrorParameter)
{
UNIMPLEMENTED;
// return 0;
return 0;
}

View file

@ -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

View file

@ -276,6 +276,7 @@ NetWkstaTransportEnum(LMSTR ServerName, DWORD level, PBYTE* pbuf,
/************************************************************
* NetWkstaUserGetInfo (NETAPI32.@)
*/
#if 0
NET_API_STATUS WINAPI NetWkstaUserGetInfo(LMSTR reserved, DWORD level,
PBYTE* bufptr)
{
@ -413,6 +414,7 @@ NET_API_STATUS WINAPI NetWkstaUserGetInfo(LMSTR reserved, DWORD level,
}
return NERR_Success;
}
#endif
/************************************************************
* NetWkstaUserEnum (NETAPI32.@)

View file

@ -147,7 +147,8 @@ NetGetJoinInformation(
{
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 @@ NetWkstaGetInfo(
{
NET_API_STATUS status;
TRACE("NetWkstaGetInfo(%s, %d, %p)\n", debugstr_w(servername),
level, bufptr);
*bufptr = NULL;
RpcTryExcept
@ -205,6 +209,9 @@ NetWkstaSetInfo(
{
NET_API_STATUS status;
TRACE("NetWkstaSetInfo(%s, %d, %p, %p)\n", debugstr_w(servername),
level, buffer, parm_err);
RpcTryExcept
{
status = NetrWkstaSetInfo(servername,
@ -238,7 +245,7 @@ NetWkstaUserEnum(
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 @@ NetWkstaUserEnum(
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 */

View file

@ -174,6 +174,19 @@ typedef struct _WKSTA_USER_INFO_1
[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 @@ interface wkssvc
[in, out, unique] unsigned long *ResumeHandle);
/* Function 3 */
void
unsigned long
__stdcall
Opnum3NotUsedOnWire(void);
NetrWkstaUserGetInfo(
[in, string, unique] WKSSVC_IDENTIFY_HANDLE Unused,
[in] unsigned long Level,
[out, switch_is(Level)] LPWKSTA_USER_INFO UserInfo);
/* Function 4 */
void
unsigned long
__stdcall
Opnum4NotUsedOnWire(void);
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