#include <wine/config.h>
#include <limits.h>
#include <stdarg.h>
#include <windef.h>
#include <winbase.h>
#include <lmaccess.h>
#include <lmapibuf.h>
#include <lmerr.h>
#include <ntsecapi.h>
#include <nb30.h>
#include <iphlpapi.h>
#include <wine/debug.h>
#include <wine/unicode.h>
#include <ndk/rtlfuncs.h>
#include <ntsam.h>
#include "nbnamecache.h"
#include "netbios.h"
Go to the source code of this file.
|
NTSTATUS | GetAccountDomainSid (IN PUNICODE_STRING ServerName, OUT PSID *AccountDomainSid) |
|
NTSTATUS | GetBuiltinDomainSid (OUT PSID *BuiltinDomainSid) |
|
NTSTATUS | OpenAccountDomain (IN SAM_HANDLE ServerHandle, IN PUNICODE_STRING ServerName, IN ULONG DesiredAccess, OUT PSAM_HANDLE DomainHandle) |
|
NTSTATUS | OpenBuiltinDomain (IN SAM_HANDLE ServerHandle, IN ULONG DesiredAccess, OUT SAM_HANDLE *DomainHandle) |
|
NET_API_STATUS | BuildSidFromSidAndRid (IN PSID SrcSid, IN ULONG RelativeId, OUT PSID *DestSid) |
|
VOID | CopySidFromSidAndRid (_Out_ PSID DstSid, _In_ PSID SrcSid, _In_ ULONG RelativeId) |
|
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) |
|
BOOL | NETAPI_IsLocalComputer (LMCSTR ServerName) |
|
◆ _INC_WINDOWS
◆ COM_NO_WINDOWS_H
◆ NTOS_MODE_USER
◆ WIN32_NO_STATUS
◆ BuildSidFromSidAndRid()
Definition at line 177 of file utils.c.
203 for (
i = 0;
i < (
ULONG)RidCount;
i++)
NET_API_STATUS WINAPI NetApiBufferAllocate(DWORD ByteCount, LPVOID *Buffer)
#define ERROR_INVALID_PARAMETER
NTSYSAPI PULONG NTAPI RtlSubAuthoritySid(_In_ PSID Sid, _In_ ULONG SubAuthority)
NTSYSAPI NTSTATUS NTAPI RtlInitializeSid(IN OUT PSID Sid, IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, IN UCHAR SubAuthorityCount)
NTSYSAPI PSID_IDENTIFIER_AUTHORITY NTAPI RtlIdentifierAuthoritySid(PSID Sid)
NTSYSAPI PUCHAR NTAPI RtlSubAuthorityCountSid(IN PSID Sid)
GLdouble GLdouble GLdouble GLdouble q
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
NTSYSAPI ULONG NTAPI RtlLengthRequiredSid(IN ULONG SubAuthorityCount)
Referenced by BuildSidListFromDomainAndName(), GetUserPrivileges(), and NetUserGetLocalGroups().
◆ CopySidFromSidAndRid()
Definition at line 220 of file utils.c.
237 for (
i = 0;
i < (
ULONG)RidCount;
i++)
NTSYSAPI PULONG NTAPI RtlSubAuthoritySid(_In_ PSID Sid, _In_ ULONG SubAuthority)
NTSYSAPI NTSTATUS NTAPI RtlInitializeSid(IN OUT PSID Sid, IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, IN UCHAR SubAuthorityCount)
NTSYSAPI PSID_IDENTIFIER_AUTHORITY NTAPI RtlIdentifierAuthoritySid(PSID Sid)
NTSYSAPI PUCHAR NTAPI RtlSubAuthorityCountSid(IN PSID Sid)
GLdouble GLdouble GLdouble GLdouble q
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Referenced by BuildUserInfoBuffer().
◆ GetAccountDomainSid()
Definition at line 23 of file utils.c.
40 ERR(
"LsaOpenPolicy failed (Status %08lx)\n",
Status);
46 (
PVOID *)&AccountDomainInfo);
49 ERR(
"LsaQueryInformationPolicy failed (Status %08lx)\n",
Status);
58 ERR(
"Failed to allocate SID\n");
66 if (AccountDomainInfo !=
NULL)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define STATUS_INSUFFICIENT_RESOURCES
_In_ ULONG _In_ ULONG _In_ ULONG Length
NTSTATUS WINAPI LsaQueryInformationPolicy(IN LSA_HANDLE PolicyHandle, IN POLICY_INFORMATION_CLASS InformationClass, OUT PVOID *Buffer)
#define POLICY_VIEW_LOCAL_INFORMATION
NTSTATUS WINAPI LsaClose(IN LSA_HANDLE ObjectHandle)
NTSTATUS WINAPI LsaOpenPolicy(IN PLSA_UNICODE_STRING SystemName OPTIONAL, IN PLSA_OBJECT_ATTRIBUTES ObjectAttributes, IN ACCESS_MASK DesiredAccess, OUT PLSA_HANDLE PolicyHandle)
NTSYSAPI ULONG NTAPI RtlLengthSid(IN PSID Sid)
NTSTATUS WINAPI LsaFreeMemory(IN PVOID Buffer)
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
#define NT_SUCCESS(StatCode)
#define memcpy(s1, s2, n)
Referenced by OpenAccountDomain().
◆ GetBuiltinDomainSid()
Definition at line 76 of file utils.c.
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
NTSYSAPI PULONG NTAPI RtlSubAuthoritySid(_In_ PSID Sid, _In_ ULONG SubAuthority)
NTSYSAPI NTSTATUS NTAPI RtlInitializeSid(IN OUT PSID Sid, IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, IN UCHAR SubAuthorityCount)
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
#define SECURITY_BUILTIN_DOMAIN_RID
#define NT_SUCCESS(StatCode)
static SID_IDENTIFIER_AUTHORITY NtAuthority
NTSYSAPI ULONG NTAPI RtlLengthRequiredSid(IN ULONG SubAuthorityCount)
Referenced by NetUserEnum(), NetUserGetInfo(), and OpenBuiltinDomain().
◆ NETAPI_IsLocalComputer()
Definition at line 33 of file wksta.c.
BOOL WINAPI GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize)
GLenum GLuint GLenum GLsizei const GLchar * buf
#define MAX_COMPUTERNAME_LENGTH
Referenced by NetWkstaTransportEnum().
◆ NetpAllocAnsiStrFromWStr()
Definition at line 140 of file misc.c.
NET_API_STATUS WINAPI NetApiBufferAllocate(DWORD ByteCount, LPVOID *Buffer)
IN PVOID IN PVOID IN USHORT IN USHORT Size
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_opt_ PCUNICODE_STRING UnicodeString
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
#define NT_SUCCESS(StatCode)
NTSYSAPI DWORD WINAPI RtlUnicodeStringToAnsiSize(const UNICODE_STRING *)
NET_API_STATUS WINAPI NetApiBufferFree(LPVOID Buffer)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
Referenced by DsGetSiteNameA().
◆ NetpAllocStrFromWStr()
Definition at line 172 of file misc.c.
NET_API_STATUS WINAPI NetApiBufferAllocate(DWORD ByteCount, LPVOID *Buffer)
*BytesInOemString PCHAR OemString
IN PVOID IN PVOID IN USHORT IN USHORT Size
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_opt_ PCUNICODE_STRING UnicodeString
#define NT_SUCCESS(StatCode)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToOemString(POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
NET_API_STATUS WINAPI NetApiBufferFree(LPVOID Buffer)
NTSYSAPI DWORD WINAPI RtlUnicodeStringToOemSize(const UNICODE_STRING *)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
◆ NetpAllocWStrFromAnsiStr()
Definition at line 204 of file misc.c.
NET_API_STATUS WINAPI NetApiBufferAllocate(DWORD ByteCount, LPVOID *Buffer)
IN PVOID IN PVOID IN USHORT IN USHORT Size
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_opt_ PCUNICODE_STRING UnicodeString
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
NTSYSAPI DWORD WINAPI RtlAnsiStringToUnicodeSize(const STRING *)
#define NT_SUCCESS(StatCode)
NET_API_STATUS WINAPI NetApiBufferFree(LPVOID Buffer)
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
Referenced by DsAddressToSiteNamesA(), DsAddressToSiteNamesExA(), DsDeregisterDnsHostRecordsA(), DsEnumerateDomainTrustsA(), DsGetDcNameWithAccountA(), DsGetDcSiteCoverageA(), and DsGetSiteNameA().
◆ NetpAllocWStrFromStr()
Definition at line 236 of file misc.c.
NET_API_STATUS WINAPI NetApiBufferAllocate(DWORD ByteCount, LPVOID *Buffer)
*BytesInOemString PCHAR OemString
NTSYSAPI UINT WINAPI RtlOemStringToUnicodeSize(const STRING *)
IN PVOID IN PVOID IN USHORT IN USHORT Size
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_opt_ PCUNICODE_STRING UnicodeString
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
#define NT_SUCCESS(StatCode)
NTSYSAPI NTSTATUS NTAPI RtlOemStringToUnicodeString(PUNICODE_STRING DestinationString, PCOEM_STRING SourceString, BOOLEAN AllocateDestinationString)
NET_API_STATUS WINAPI NetApiBufferFree(LPVOID Buffer)
◆ NetpAllocWStrFromWStr()
Definition at line 268 of file misc.c.
281 wcscpy(OutString, InString);
NET_API_STATUS WINAPI NetApiBufferAllocate(DWORD ByteCount, LPVOID *Buffer)
IN PVOID IN PVOID IN USHORT IN USHORT Size
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
◆ NetpNtStatusToApiStatus()
Definition at line 289 of file misc.c.
#define STATUS_PASSWORD_RESTRICTION
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
#define NERR_PasswordTooShort
#define STATUS_INVALID_ACCOUNT_NAME
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().
◆ OpenAccountDomain()
Definition at line 113 of file utils.c.
125 ERR(
"GetAccountDomainSid failed (Status %08lx)\n",
Status);
138 ERR(
"SamOpenDomain failed (Status %08lx)\n",
Status);
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
NTSTATUS GetAccountDomainSid(IN PUNICODE_STRING ServerName, OUT PSID *AccountDomainSid)
NTSTATUS NTAPI SamOpenDomain(IN SAM_HANDLE ServerHandle, IN ACCESS_MASK DesiredAccess, IN PSID DomainId, OUT PSAM_HANDLE DomainHandle)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
#define NT_SUCCESS(StatCode)
Referenced by NetGetDisplayInformationIndex(), NetGroupAdd(), NetGroupAddUser(), NetGroupDel(), NetGroupDelUser(), NetGroupEnum(), NetGroupGetInfo(), NetGroupGetUsers(), NetGroupSetInfo(), NetGroupSetUsers(), NetLocalGroupAdd(), NetLocalGroupAddMembers(), NetLocalGroupDel(), NetLocalGroupDelMembers(), NetLocalGroupEnum(), NetLocalGroupGetInfo(), NetLocalGroupGetMembers(), NetLocalGroupSetInfo(), NetQueryDisplayInformation(), NetUserAdd(), NetUserDel(), and NetUserSetInfo().
◆ OpenBuiltinDomain()
Referenced by NetGroupEnum(), NetLocalGroupAdd(), NetLocalGroupAddMembers(), NetLocalGroupDel(), NetLocalGroupDelMembers(), NetLocalGroupEnum(), NetLocalGroupGetInfo(), NetLocalGroupGetMembers(), NetLocalGroupSetInfo(), NetUserDel(), and NetUserGetLocalGroups().
◆ g_EnumContextListHead
◆ g_EnumContextListLock