ReactOS  0.4.14-dev-599-g2d4d3f5
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)
 
PSTR WINAPI NetpAllocAnsiStrFromWStr (_In_ PWSTR InString)
 
PSTR WINAPI NetpAllocStrFromWStr (_In_ PWSTR InString)
 
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

◆ NetpAllocAnsiStrFromWStr()

PSTR WINAPI NetpAllocAnsiStrFromWStr ( _In_ PWSTR  InString)

Definition at line 140 of file misc.c.

142 {
145  ULONG Size;
146  NET_API_STATUS NetStatus;
148 
150 
152  NetStatus = NetApiBufferAllocate(Size,
153  (PVOID*)&AnsiString.Buffer);
154  if (NetStatus != NERR_Success)
155  return NULL;
156 
158  &UnicodeString,
159  FALSE);
160  if (!NT_SUCCESS(Status))
161  {
163  return NULL;
164  }
165 
166  return AnsiString.Buffer;
167 }
NET_API_STATUS WINAPI NetApiBufferAllocate(DWORD ByteCount, LPVOID *Buffer)
Definition: apibuf.c:28
NTSYSAPI DWORD WINAPI RtlUnicodeStringToAnsiSize(const UNICODE_STRING *)
*BytesInUnicodeString PWCH UnicodeString
Definition: rtlfuncs.h:1980
LONG NTSTATUS
Definition: precomp.h:26
#define NERR_Success
Definition: lmerr.h:5
smooth NULL
Definition: ftsmooth.c:416
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
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
unsigned int ULONG
Definition: retypes.h:1
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)

Referenced by DsGetSiteNameA().

◆ NetpAllocStrFromWStr()

PSTR WINAPI NetpAllocStrFromWStr ( _In_ PWSTR  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*)&OemString.Buffer);
186  if (NetStatus != NERR_Success)
187  return NULL;
188 
190  &UnicodeString,
191  FALSE);
192  if (!NT_SUCCESS(Status))
193  {
194  NetApiBufferFree(OemString.Buffer);
195  return NULL;
196  }
197 
198  return OemString.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
NTSYSAPI DWORD WINAPI RtlUnicodeStringToOemSize(const UNICODE_STRING *)
#define NERR_Success
Definition: lmerr.h:5
smooth NULL
Definition: ftsmooth.c:416
DWORD NET_API_STATUS
Definition: ms-dtyp.idl:91
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToOemString(POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
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
unsigned int ULONG
Definition: retypes.h:1
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)

◆ NetpAllocWStrFromAnsiStr()

PWSTR WINAPI NetpAllocWStrFromAnsiStr ( _In_ PSTR  InString)

Definition at line 204 of file misc.c.

206 {
209  ULONG Size;
210  NET_API_STATUS NetStatus;
212 
213  RtlInitAnsiString(&AnsiString, InString);
214 
216  NetStatus = NetApiBufferAllocate(Size,
217  (PVOID*)&UnicodeString.Buffer);
218  if (NetStatus != NERR_Success)
219  return NULL;
220 
222  &AnsiString,
223  FALSE);
224  if (!NT_SUCCESS(Status))
225  {
227  return NULL;
228  }
229 
230  return UnicodeString.Buffer;
231 }
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

Referenced by DsAddressToSiteNamesA(), DsAddressToSiteNamesExA(), DsDeregisterDnsHostRecordsA(), DsEnumerateDomainTrustsA(), DsGetDcNameWithAccountA(), DsGetDcSiteCoverageA(), and DsGetSiteNameA().

◆ NetpAllocWStrFromStr()

PWSTR WINAPI NetpAllocWStrFromStr ( _In_ PSTR  InString)

Definition at line 236 of file misc.c.

238 {
241  ULONG Size;
242  NET_API_STATUS NetStatus;
244 
246 
248  NetStatus = NetApiBufferAllocate(Size,
249  (PVOID*)&UnicodeString.Buffer);
250  if (NetStatus != NERR_Success)
251  return NULL;
252 
254  &OemString,
255  FALSE);
256  if (!NT_SUCCESS(Status))
257  {
259  return NULL;
260  }
261 
262  return UnicodeString.Buffer;
263 }
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 268 of file misc.c.

270 {
271  PWSTR OutString;
272  ULONG Size;
274 
275  Size = (wcslen(InString) + 1) * sizeof(WCHAR);
277  (PVOID*)&OutString);
278  if (Status != NERR_Success)
279  return NULL;
280 
281  wcscpy(OutString, InString);
282 
283  return OutString;
284 }
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 289 of file misc.c.

291 {
292  NET_API_STATUS ApiStatus;
293 
294  switch (Status)
295  {
296  case STATUS_SUCCESS:
297  ApiStatus = NERR_Success;
298  break;
299 
301  ApiStatus = NERR_BadUsername;
302  break;
303 
305  ApiStatus = NERR_PasswordTooShort;
306  break;
307 
308  default:
309  ApiStatus = RtlNtStatusToDosError(Status);
310  break;
311  }
312 
313  return ApiStatus;
314 }
#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:2938
#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(), NetpBind(), NetpUnbind(), 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:406
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:651
#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:289
Status
Definition: gdiplustypes.h:24
NTSTATUS NTAPI LsaRegisterPolicyChangeNotification(POLICY_NOTIFICATION_INFORMATION_CLASS InformationClass, HANDLE NotificationEventHandle)
Definition: lsalpc.c:330
_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:738
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:289
Status
Definition: gdiplustypes.h:24
NTSTATUS NTAPI LsaUnregisterPolicyChangeNotification(POLICY_NOTIFICATION_INFORMATION_CLASS InformationClass, HANDLE NotificationEventHandle)
Definition: lsalpc.c:377

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( netapi32  )