ReactOS  0.4.13-dev-443-g10f00f8
misc.c File Reference
#include "netapi32.h"
#include <rpc.h>
#include "srvsvc_c.h"
#include "wkssvc_c.h"
Include dependency graph for misc.c:

Go to the source code of this file.

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (netapi32)
 
NET_API_STATUS WINAPI NetRegisterDomainNameChangeNotification (_Out_ PHANDLE NotificationEventHandle)
 
NET_API_STATUS WINAPI NetStatisticsGet (_In_ LPWSTR server, _In_ LPWSTR service, _In_ DWORD level, _In_ DWORD options, _Out_ LPBYTE *bufptr)
 
NET_API_STATUS WINAPI NetUnregisterDomainNameChangeNotification (_In_ HANDLE NotificationEventHandle)
 
PWSTR WINAPI NetpAllocWStrFromAnsiStr (_In_ PSTR InString)
 
PWSTR WINAPI NetpAllocWStrFromStr (_In_ PSTR InString)
 
PWSTR WINAPI NetpAllocWStrFromWStr (_In_ PWSTR InString)
 
NET_API_STATUS WINAPI NetpNtStatusToApiStatus (_In_ NTSTATUS Status)
 

Function Documentation

◆ NetpAllocWStrFromAnsiStr()

PWSTR WINAPI NetpAllocWStrFromAnsiStr ( _In_ PSTR  InString)

Definition at line 140 of file misc.c.

142 {
145  ULONG Size;
146  NET_API_STATUS NetStatus;
148 
149  RtlInitAnsiString(&AnsiString, InString);
150 
152  NetStatus = NetApiBufferAllocate(Size,
153  (PVOID*)&UnicodeString.Buffer);
154  if (NetStatus != NERR_Success)
155  return NULL;
156 
158  &AnsiString,
159  FALSE);
160  if (!NT_SUCCESS(Status))
161  {
163  return NULL;
164  }
165 
166  return UnicodeString.Buffer;
167 }
NET_API_STATUS WINAPI NetApiBufferAllocate(DWORD ByteCount, LPVOID *Buffer)
Definition: apibuf.c:28
*BytesInUnicodeString PWCH UnicodeString
Definition: rtlfuncs.h:1980
LONG NTSTATUS
Definition: precomp.h:26
#define NERR_Success
Definition: lmerr.h:5
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
smooth NULL
Definition: ftsmooth.c:416
DWORD NET_API_STATUS
Definition: ms-dtyp.idl:91
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
Status
Definition: gdiplustypes.h:24
NET_API_STATUS WINAPI NetApiBufferFree(LPVOID Buffer)
Definition: apibuf.c:43
NTSYSAPI DWORD WINAPI RtlAnsiStringToUnicodeSize(const STRING *)
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
unsigned int ULONG
Definition: retypes.h:1

◆ NetpAllocWStrFromStr()

PWSTR WINAPI NetpAllocWStrFromStr ( _In_ PSTR  InString)

Definition at line 172 of file misc.c.

174 {
177  ULONG Size;
178  NET_API_STATUS NetStatus;
180 
182 
184  NetStatus = NetApiBufferAllocate(Size,
185  (PVOID*)&UnicodeString.Buffer);
186  if (NetStatus != NERR_Success)
187  return NULL;
188 
190  &OemString,
191  FALSE);
192  if (!NT_SUCCESS(Status))
193  {
195  return NULL;
196  }
197 
198  return UnicodeString.Buffer;
199 }
NET_API_STATUS WINAPI NetApiBufferAllocate(DWORD ByteCount, LPVOID *Buffer)
Definition: apibuf.c:28
*BytesInOemString PCHAR OemString
Definition: rtlfuncs.h:1561
*BytesInUnicodeString PWCH UnicodeString
Definition: rtlfuncs.h:1980
LONG NTSTATUS
Definition: precomp.h:26
STRING OEM_STRING
Definition: umtypes.h:203
#define NERR_Success
Definition: lmerr.h:5
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
smooth NULL
Definition: ftsmooth.c:416
DWORD NET_API_STATUS
Definition: ms-dtyp.idl:91
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
NTSYSAPI NTSTATUS NTAPI RtlOemStringToUnicodeString(PUNICODE_STRING DestinationString, PCOEM_STRING SourceString, BOOLEAN AllocateDestinationString)
Status
Definition: gdiplustypes.h:24
NET_API_STATUS WINAPI NetApiBufferFree(LPVOID Buffer)
Definition: apibuf.c:43
unsigned int ULONG
Definition: retypes.h:1
NTSYSAPI UINT WINAPI RtlOemStringToUnicodeSize(const STRING *)

◆ NetpAllocWStrFromWStr()

PWSTR WINAPI NetpAllocWStrFromWStr ( _In_ PWSTR  InString)

Definition at line 204 of file misc.c.

206 {
207  PWSTR OutString;
208  ULONG Size;
210 
211  Size = (wcslen(InString) + 1) * sizeof(WCHAR);
213  (PVOID*)&OutString);
214  if (Status != NERR_Success)
215  return NULL;
216 
217  wcscpy(OutString, InString);
218 
219  return OutString;
220 }
NET_API_STATUS WINAPI NetApiBufferAllocate(DWORD ByteCount, LPVOID *Buffer)
Definition: apibuf.c:28
uint16_t * PWSTR
Definition: typedefs.h:54
#define NERR_Success
Definition: lmerr.h:5
smooth NULL
Definition: ftsmooth.c:416
DWORD NET_API_STATUS
Definition: ms-dtyp.idl:91
__wchar_t WCHAR
Definition: xmlstorage.h:180
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
Status
Definition: gdiplustypes.h:24
unsigned int ULONG
Definition: retypes.h:1
size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)

◆ NetpNtStatusToApiStatus()

NET_API_STATUS WINAPI NetpNtStatusToApiStatus ( _In_ NTSTATUS  Status)

Definition at line 225 of file misc.c.

227 {
228  NET_API_STATUS ApiStatus;
229 
230  switch (Status)
231  {
232  case STATUS_SUCCESS:
233  ApiStatus = NERR_Success;
234  break;
235 
237  ApiStatus = NERR_BadUsername;
238  break;
239 
241  ApiStatus = NERR_PasswordTooShort;
242  break;
243 
244  default:
245  ApiStatus = RtlNtStatusToDosError(Status);
246  break;
247  }
248 
249  return ApiStatus;
250 }
#define NERR_Success
Definition: lmerr.h:5
#define STATUS_PASSWORD_RESTRICTION
Definition: ntstatus.h:330
#define NERR_PasswordTooShort
Definition: lmerr.h:112
DWORD NET_API_STATUS
Definition: ms-dtyp.idl:91
#define STATUS_INVALID_ACCOUNT_NAME
Definition: ntstatus.h:320
Status
Definition: gdiplustypes.h:24
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
return STATUS_SUCCESS
Definition: btrfs.c:2777
#define NERR_BadUsername
Definition: lmerr.h:72

Referenced by BuildSidListFromDomainAndName(), BuildUserInfoBuffer(), GetUserDacl(), GetUserPrivileges(), NetGetDisplayInformationIndex(), NetGroupAdd(), NetGroupAddUser(), NetGroupDel(), NetGroupDelUser(), NetGroupEnum(), NetGroupGetInfo(), NetGroupGetUsers(), NetGroupSetInfo(), NetGroupSetUsers(), NetLocalGroupAdd(), NetLocalGroupAddMembers(), NetLocalGroupDel(), NetLocalGroupDelMembers(), NetLocalGroupEnum(), NetLocalGroupGetInfo(), NetLocalGroupGetMembers(), NetLocalGroupSetInfo(), NetQueryDisplayInformation(), NetRegisterDomainNameChangeNotification(), NetUnregisterDomainNameChangeNotification(), NetUserAdd(), NetUserChangePassword(), NetUserDel(), NetUserEnum(), NetUserGetGroups(), NetUserGetInfo(), NetUserGetLocalGroups(), NetUserModalsGet(), NetUserSetInfo(), OpenAliasByName(), OpenGroupByName(), OpenUserByName(), and SetUserInfo().

◆ NetRegisterDomainNameChangeNotification()

NET_API_STATUS WINAPI NetRegisterDomainNameChangeNotification ( _Out_ PHANDLE  NotificationEventHandle)

Definition at line 23 of file misc.c.

25 {
28 
29  TRACE("NetRegisterDomainNameChangeNotification(%p)\n",
30  NotificationEventHandle);
31 
32  if (NotificationEventHandle == NULL)
34 
36  if (EventHandle == NULL)
37  return GetLastError();
38 
40  NotificationEventHandle);
41  if (!NT_SUCCESS(Status))
42  {
45  }
46 
47  *NotificationEventHandle = EventHandle;
48 
49  return NERR_Success;
50 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
#define CloseHandle
Definition: compat.h:398
LONG NTSTATUS
Definition: precomp.h:26
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
Definition: synch.c:597
#define NERR_Success
Definition: lmerr.h:5
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
NET_API_STATUS WINAPI NetpNtStatusToApiStatus(_In_ NTSTATUS Status)
Definition: misc.c:225
Status
Definition: gdiplustypes.h:24
NTSTATUS NTAPI LsaRegisterPolicyChangeNotification(POLICY_NOTIFICATION_INFORMATION_CLASS InformationClass, HANDLE NotificationEventHandle)
Definition: lsalpc.c:329
_Out_ PHANDLE EventHandle
Definition: iofuncs.h:855

◆ NetStatisticsGet()

NET_API_STATUS WINAPI NetStatisticsGet ( _In_ LPWSTR  server,
_In_ LPWSTR  service,
_In_ DWORD  level,
_In_ DWORD  options,
_Out_ LPBYTE bufptr 
)

Definition at line 55 of file misc.c.

61 {
63 
64  TRACE("NetStatisticsGet(%s %s %lu %lu %p)\n",
66 
67  *bufptr = NULL;
68 
69  if (_wcsicmp(service, L"LanmanWorkstation") == 0)
70  {
71  if (level != 0)
72  return ERROR_INVALID_LEVEL;
73 
74  if (options != 0)
76 
78  {
80  L"LanmanWorkstation",
81  level,
82  options,
84  }
86  {
88  }
90  }
91  else if (_wcsicmp(service, L"LanmanServer") == 0)
92  {
93  if (level != 0)
94  return ERROR_INVALID_LEVEL;
95 
96  if (options != 0)
98 
100  {
102  L"LanmanServer",
103  level,
104  options,
106  }
108  {
110  }
111  RpcEndExcept;
112  }
113 
114  return status;
115 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
GLint level
Definition: gl.h:1546
#define RpcEndExcept
Definition: rpc.h:128
static rfbScreenInfoPtr server
Definition: vnc.c:74
unsigned long __stdcall NetrWorkstationStatisticsGet(WKSSVC_IDENTIFY_HANDLE ServerName, wchar_t *ServiceName, unsigned long Level, unsigned long Options, LPSTAT_WORKSTATION_0 *Buffer)
Definition: rpcserver.c:263
static unsigned int bufptr
Definition: tncon.cpp:77
#define debugstr_w
Definition: kernel32.h:32
#define RpcTryExcept
Definition: rpc.h:126
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:85
smooth NULL
Definition: ftsmooth.c:416
DWORD NET_API_STATUS
Definition: ms-dtyp.idl:91
#define RpcExceptionCode()
Definition: rpc.h:132
#define TRACE(s)
Definition: solgame.cpp:4
NET_API_STATUS __stdcall NetrServerStatisticsGet(SRVSVC_HANDLE ServerName, WCHAR *Service, DWORD Level, DWORD Options, LPSTAT_SERVER_0 *InfoStruct)
Definition: rpcserver.c:472
static const WCHAR L[]
Definition: oid.c:1250
#define ERROR_NOT_SUPPORTED
Definition: compat.h:90
#define ERROR_INVALID_LEVEL
Definition: winerror.h:196
static SERVICE_STATUS status
Definition: service.c:31
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define RpcExcept(expr)
Definition: rpc.h:127
LONG WINAPI I_RpcMapWin32Status(RPC_STATUS status)
Definition: rpcrt4_main.c:741
Definition: ps.c:97

Referenced by DisplayServerStatistics(), and DisplayWorkstationStatistics().

◆ NetUnregisterDomainNameChangeNotification()

NET_API_STATUS WINAPI NetUnregisterDomainNameChangeNotification ( _In_ HANDLE  NotificationEventHandle)

Definition at line 120 of file misc.c.

122 {
124 
125  TRACE("NetUnregisterDomainNameChangeNotification(%p)\n",
126  NotificationEventHandle);
127 
128  if (NotificationEventHandle == NULL)
130 
132  NotificationEventHandle);
133 
135 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
LONG NTSTATUS
Definition: precomp.h:26
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
NET_API_STATUS WINAPI NetpNtStatusToApiStatus(_In_ NTSTATUS Status)
Definition: misc.c:225
Status
Definition: gdiplustypes.h:24
NTSTATUS NTAPI LsaUnregisterPolicyChangeNotification(POLICY_NOTIFICATION_INFORMATION_CLASS InformationClass, HANDLE NotificationEventHandle)
Definition: lsalpc.c:376

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( netapi32  )