[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 */ /* Function 3 */
void unsigned long
__stdcall __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; UNIMPLEMENTED;
// return 0; return 0;
} }
/* Function 4 */ /* Function 4 */
void unsigned long
__stdcall __stdcall
Opnum4NotUsedOnWire(void) NetrWkstaUserSetInfo (
WKSSVC_IDENTIFY_HANDLE Unused,
unsigned long Level,
LPWKSTA_USER_INFO UserInfo,
unsigned long *ErrorParameter)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
// return 0; return 0;
} }

View file

@ -260,7 +260,7 @@
@ stdcall NetWkstaTransportEnum(wstr long ptr long ptr ptr ptr) @ stdcall NetWkstaTransportEnum(wstr long ptr long ptr ptr ptr)
@ stdcall NetWkstaUserEnum(wstr long ptr long ptr ptr ptr) @ stdcall NetWkstaUserEnum(wstr long ptr long ptr ptr ptr)
@ stdcall NetWkstaUserGetInfo(wstr long ptr) @ stdcall NetWkstaUserGetInfo(wstr long ptr)
@ stub NetWkstaUserSetInfo @ stdcall NetWkstaUserSetInfo(wstr long ptr ptr)
@ stdcall NetapipBufferAllocate(long ptr) NetApiBufferAllocate @ stdcall NetapipBufferAllocate(long ptr) NetApiBufferAllocate
@ stdcall Netbios(ptr) @ stdcall Netbios(ptr)
@ stub NetpAccessCheck @ stub NetpAccessCheck

View file

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

View file

@ -147,7 +147,8 @@ NetGetJoinInformation(
{ {
NET_API_STATUS status; 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) if (Name == NULL || type == NULL)
return ERROR_INVALID_PARAMETER; return ERROR_INVALID_PARAMETER;
@ -177,6 +178,9 @@ NetWkstaGetInfo(
{ {
NET_API_STATUS status; NET_API_STATUS status;
TRACE("NetWkstaGetInfo(%s, %d, %p)\n", debugstr_w(servername),
level, bufptr);
*bufptr = NULL; *bufptr = NULL;
RpcTryExcept RpcTryExcept
@ -205,6 +209,9 @@ NetWkstaSetInfo(
{ {
NET_API_STATUS status; NET_API_STATUS status;
TRACE("NetWkstaSetInfo(%s, %d, %p, %p)\n", debugstr_w(servername),
level, buffer, parm_err);
RpcTryExcept RpcTryExcept
{ {
status = NetrWkstaSetInfo(servername, status = NetrWkstaSetInfo(servername,
@ -238,7 +245,7 @@ NetWkstaUserEnum(
WKSTA_USER_INFO_1_CONTAINER Level1; WKSTA_USER_INFO_1_CONTAINER Level1;
NET_API_STATUS status; 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); level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle);
UserEnumInfo.Level = level; UserEnumInfo.Level = level;
@ -292,4 +299,70 @@ NetWkstaUserEnum(
return status; 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 */ /* EOF */

View file

@ -174,6 +174,19 @@ typedef struct _WKSTA_USER_INFO_1
[string] wchar_t *wkui1_logon_server; [string] wchar_t *wkui1_logon_server;
} WKSTA_USER_INFO_1, *PWKSTA_USER_INFO_1, *LPWKSTA_USER_INFO_1; } 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 typedef struct _WKSTA_TRANSPORT_INFO_0
{ {
unsigned long wkti0_quality_of_service; unsigned long wkti0_quality_of_service;
@ -373,14 +386,21 @@ interface wkssvc
[in, out, unique] unsigned long *ResumeHandle); [in, out, unique] unsigned long *ResumeHandle);
/* Function 3 */ /* Function 3 */
void unsigned long
__stdcall __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 */ /* Function 4 */
void unsigned long
__stdcall __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 */ /* Function 5 */
unsigned long unsigned long