18#define wprintf(...) ConPrintf(StdOut, ##__VA_ARGS__)
98 if (pTokenInfo ==
NULL)
100 ConPuts(
StdErr,
L"ERROR: not enough memory to allocate the token structure.\n");
123#define RC_STRING_MAX_SIZE 850
165 ConPuts(
StdErr,
L"ERROR: Not enough memory for displaying the table.\n");
183 ConPuts(
StdErr,
L"ERROR: Not enough memory for adding a table entry.\n");
221 UINT SingleColLen = 0;
222 PUINT ColLength = &SingleColLen;
226 ConPuts(
StdErr,
L"ERROR: The table passed for display is empty.\n");
242 ColLength[0] =
max(ThisLength, ColLength[0]);
257 ColLength[
j] =
max(ThisLength, ColLength[
j]);
295 for (CurRow = 1; CurRow <
pTable->Rows; CurRow++)
304 for (CurRow = 1; CurRow <
pTable->Rows; CurRow++)
314 for (CurCol = 0; CurCol <
pTable->Cols; CurCol++)
333 if (CurRow != FinalRow)
388 if (ColLength != &SingleColLen)
399 if (pGroupInfo ==
NULL)
403 for (dwIndex = 0; dwIndex < pGroupInfo->
GroupCount; dwIndex++)
420 ConPuts(
StdErr,
L"ERROR: Couldn't convert the logon SID to a string.\n");
443 if (pUserInfo ==
NULL)
449 if (pUserStr ==
NULL)
485 static WCHAR szGroupName[255] = {0};
486 static WCHAR szDomainName[255] = {0};
487 DWORD cchGroupName, cchDomainName;
490 BYTE SidNameUseStr[12] =
509 if (pGroupInfo ==
NULL)
526 for (dwIndex = 0; dwIndex < pGroupInfo->
GroupCount; dwIndex++)
530 cchGroupName =
_countof(szGroupName);
531 cchDomainName =
_countof(szDomainName);
545 WCHAR tmpBuffer[666];
559 cchDomainName ?
L"\\" :
L"",
607 DWORD dwResult = 0, dwIndex = 0;
610 if (pPrivInfo ==
NULL)
626 DWORD PrivNameSize = 0, DispNameSize = 0;
662 if (DispName !=
NULL)
683#define WAM_USER (1 << 0)
684#define WAM_GROUPS (1 << 1)
685#define WAM_PRIV (1 << 2)
770 goto FoValueExpected;
#define IDS_ATTR_GROUP_ENABLED
#define IDS_TP_WELL_KNOWN_GROUP
#define IDS_ERROR_NH_LIST
#define IDS_ATTR_GROUP_OWNER
#define IDS_ATTR_GROUP_ENABLED_BY_DEFAULT
#define IDS_STATE_ENABLED
#define IDS_COL_USER_NAME
#define IDS_ATTR_GROUP_MANDATORY
#define IDS_COL_PRIV_NAME
#define IDS_STATE_DISABLED
#define IDS_ERROR_INVALIDARG
#define IDS_ERROR_VALUEXPECTED
#define IDS_COL_GROUP_NAME
#define IDS_ERROR_INVALIDSYNTAX
#define IDS_ERROR_VALUENOTALLOWED
#define IDS_UNKNOWN_DESCRIPTION
#define IDS_COL_DESCRIPTION
void ConPuts(FILE *fp, LPCWSTR psz)
#define ConInitStdStreams()
void ConPrintf(FILE *fp, LPCWSTR psz,...)
void ConResPrintf(FILE *fp, UINT nID,...)
void ConResPuts(FILE *fp, UINT nID)
#define ERROR_INSUFFICIENT_BUFFER
BOOL WINAPI LookupPrivilegeDisplayNameW(LPCWSTR lpSystemName, LPCWSTR lpName, LPWSTR lpDisplayName, LPDWORD cchDisplayName, LPDWORD lpLanguageId)
BOOL WINAPI LookupPrivilegeNameW(LPCWSTR lpSystemName, PLUID lpLuid, LPWSTR lpName, LPDWORD cchName)
BOOL WINAPI LookupAccountSidW(LPCWSTR pSystemName, PSID pSid, LPWSTR pAccountName, LPDWORD pdwAccountName, LPWSTR pDomainName, LPDWORD pdwDomainName, PSID_NAME_USE peUse)
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
BOOL WINAPI ConvertSidToStringSidW(PSID Sid, LPWSTR *StringSid)
#define GetCurrentProcess()
#define HeapFree(x, y, z)
static DWORD DWORD * dwLength
INT WINAPI LCMapStringW(LCID lcid, DWORD flags, LPCWSTR src, INT srclen, LPWSTR dst, INT dstlen)
_ACRTIMP int __cdecl _snwprintf(wchar_t *, size_t, const wchar_t *,...)
_ACRTIMP int __cdecl _wcsicmp(const wchar_t *, const wchar_t *)
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
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
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 GLint GLint j
HLOCAL NTAPI LocalFree(HLOCAL hMem)
enum _SID_NAME_USE SID_NAME_USE
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_ BOOLEAN _In_ TOKEN_TYPE TokenType
#define SE_GROUP_LOGON_ID
#define SE_GROUP_MANDATORY
#define SE_GROUP_ENABLED_BY_DEFAULT
#define LOCALE_USER_DEFAULT
_In_ ULONG _In_ ULONG _In_ ULONG Length
BOOLEAN WINAPI GetUserNameExW(EXTENDED_NAME_FORMAT NameFormat, LPWSTR lpNameBuffer, PULONG nSize)
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]
static const EHCI_PERIOD pTable[]
#define RC_STRING_MAX_SIZE
void WhoamiPrintTable(WhoamiTable *pTable)
VOID * WhoamiGetTokenInfo(TOKEN_INFORMATION_CLASS TokenType)
void WhoamiFreeTable(WhoamiTable *pTable)
BOOL GetArgument(WCHAR *arg, int argc, WCHAR *argv[])
BOOL WhoamiFree(VOID *Buffer)
void WhoamiSetTable(WhoamiTable *pTable, WCHAR *Entry, UINT Row, UINT Col)
LPWSTR WhoamiLoadRcString(UINT ResId)
WhoamiTable * WhoamiAllocTable(UINT Rows, UINT Cols)
void WhoamiSetTableDyn(WhoamiTable *pTable, WCHAR *Entry, UINT Row, UINT Col)
void BlankArgument(int argc, WCHAR *argv[])
LPWSTR WhoamiGetUser(EXTENDED_NAME_FORMAT NameFormat)
void WhoamiPrintHeader(UINT HeaderId)
DWORD WINAPI GetLastError(void)
struct _TOKEN_GROUPS * PTOKEN_GROUPS
struct _TOKEN_USER * PTOKEN_USER
struct _TOKEN_PRIVILEGES * PTOKEN_PRIVILEGES
enum _TOKEN_INFORMATION_CLASS TOKEN_INFORMATION_CLASS
#define SE_PRIVILEGE_ENABLED