29 static const WCHAR TranslationRegKey[] = {
'\\',
'V',
'e',
'r',
'F',
'i',
'l',
'e',
'I',
'n',
'f',
'o',
'\\',
'T',
'r',
'a',
'n',
's',
'l',
'a',
't',
'i',
'o',
'n',0};
39 0, 0, { (
DWORD_PTR)(__FILE__
": setupapi_cs") }
54 *ModulePointer =
NULL;
55 *FunctionPointer =
NULL;
57 Comma =
strchrW(InstallerName,
',');
75 while (*Comma ==
',' ||
isspaceW(*Comma))
88 if (!*FunctionPointer)
109 if (ModulePointer ==
NULL)
130 TRACE(
"%p\n", lpMem);
242 TRACE(
"%p %s %p %p %p\n",
294 if (lpUnicodeStr ==
NULL)
329 LPSTR lpMultiByteStr;
340 if (lpMultiByteStr ==
NULL)
350 return lpMultiByteStr;
390 if (lpPrivileges ==
NULL)
484 return MoveFileExW(lpExistingFileName, lpNewFileName,
612 TRACE(
"%s %p %p %p %p\n",
630 if (*lpMapping ==
NULL)
701 pSecurityDescriptor))
811 *pSecurityDescriptor = SecDesc;
830 *pSecurityDescriptor = SecDesc;
912 TRACE(
"%s %u %s\n", lpFile, uLine, lpMessage);
922 "Assertion failure at line %u in file %s: %s\n\nCall DebugBreak()?",
923 uLine, lpFile, lpMessage);
959 lpLastAccessTime, lpLastWriteTime, bSetFileTime);
973 bRet =
SetFileTime(
hFile, lpCreationTime, lpLastAccessTime, lpLastWriteTime);
975 bRet =
GetFileTime(
hFile, lpCreationTime, lpLastAccessTime, lpLastWriteTime);
1051 dwBufferSize, lpRequiredSize);
1056 if (lpPath[dwPathSize - 1] == (
WCHAR)
'\\')
1062 if (lpAppend[0] == (
WCHAR)
'\\')
1068 dwTotalSize = dwPathSize + dwAppendSize + 2;
1069 if (lpRequiredSize !=
NULL)
1070 *lpRequiredSize = dwTotalSize;
1073 if (bBackslash ==
FALSE)
1075 if (dwPathSize < dwBufferSize)
1077 lpPath[dwPathSize - 1] = (
WCHAR)
'\\';
1082 if (dwPathSize + dwAppendSize < dwBufferSize)
1089 if (dwBufferSize >= dwTotalSize)
1090 lpPath[dwTotalSize - 1] = 0;
1092 return (dwBufferSize >= dwTotalSize);
1114 INT nWindowWidth, nWindowHeight;
1115 INT nOwnerWidth, nOwnerHeight;
1119 if (hwndOwner ==
NULL)
1129 nWindowWidth = rcWindow.
right - rcWindow.
left;
1130 nWindowHeight = rcWindow.
bottom - rcWindow.
top;
1132 nOwnerWidth = rcOwner.
right - rcOwner.
left;
1133 nOwnerHeight = rcOwner.
bottom - rcOwner.
top;
1135 posX = ((nOwnerWidth - nWindowWidth) / 2) + ptOrigin.
x;
1136 posY = ((nOwnerHeight - nWindowHeight) / 2) + ptOrigin.
y;
1184 (
LPVOID*)&lpFixedInfo, &uSize))
1190 lpFileVersion->
LowPart = lpFixedInfo->dwFileVersionLS;
1191 lpFileVersion->
HighPart = lpFixedInfo->dwFileVersionMS;
1193 *lpVersionVarSize = 0;
1195 (
LPVOID*)&lpVarSize, &uSize))
1203 *lpVersionVarSize = *lpVarSize;
1216 static const WCHAR infW[] = {
'\\',
'i',
'n',
'f',
'\\',0};
1288 FIXME(
"not returning full installed catalog path\n");
1298 static const BYTE LZ_MAGIC[] = { 0x53, 0x5a, 0x44, 0x44, 0x88, 0xf0, 0x27, 0x33 };
1300 static const BYTE NTCAB_MAGIC[] = { 0x4d, 0x53, 0x43, 0x46 };
1342 if (source_size) *source_size =
size;
1343 if (target_size) *target_size =
size;
1355 else *source_size =
size;
1364 ERR(
"cannot open source file for reading\n");
1397 else *source_size =
size;
1419 TRACE(
"%s, %p, %d, %p, %p, %p, %p\n",
debugstr_a(
source),
name,
len, required,
1420 source_size, target_size,
type);
1447 if (required) *required = nb_chars;
1479 TRACE(
"%s, %p, %d, %p, %p, %p, %p\n",
debugstr_w(
source),
name,
len, required,
1480 source_size, target_size,
type);
1485 if (required) *required = source_len;
1486 if (
name &&
len >= source_len)
1528 source_size, target_size,
type );
1535 *
name = actual_name;
1571 source_size, target_size,
type );
1578 *
name = actual_name;
1591 ERR(
"cannot open source file for reading\n");
1596 ERR(
"cannot open target file for writing\n");
1603 WARN(
"failed to decompress file %d\n",
error);
1630 TRACE(
"Requesting extraction of cabinet file %s\n",
1714 WARN(
"unknown compression type %d\n", comp);
1730 if (
wcslen(szString) == 38)
1732 if ((szString[0] ==
L'{') && (szString[37] ==
L'}'))
1737 szBuffer[36] =
L'\0';
1738 wcscpy(szNewString, szBuffer);
1742 szNewString[0] =
L'\0';
1781 if (dwStringLen < 39)
1793 wcscat(szBuffer, rpcBuffer);
1876 wcscat(Windir,
L"repair\\setup.log");
2001 TRACE (
"%p\n",FileLogHandle);
2003 Log = (
struct FileLog *)FileLogHandle;
2037 static const WCHAR setupactlog[] = {
'\\',
's',
'e',
't',
'u',
'p',
'a',
'c',
't',
'.',
'l',
'o',
'g',0};
2038 static const WCHAR setuperrlog[] = {
'\\',
's',
'e',
't',
'u',
'p',
'e',
'r',
'r',
'.',
'l',
'o',
'g',0};
2086 static const char null[] =
"(null)";
static CRITICAL_SECTION setupapi_cs
#define FILE_COMPRESSION_NTCAB
BOOL WINAPI SetFileAttributesW(LPCWSTR lpFileName, DWORD dwFileAttributes)
#define ERROR_INVALID_PARAMETER
static CRITICAL_SECTION_DEBUG critsect_debug
UINT WINAPI SetErrorMode(IN UINT uMode)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
UINT WINAPI GetSystemWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
DWORD WINAPI pSetupInstallCatalog(LPCWSTR catalog, LPCWSTR basename, LPWSTR fullname)
VOID WINAPI AssertFail(LPSTR lpFile, UINT uLine, LPSTR lpMessage)
void WINAPI pSetupModifyGlobalFlags(DWORD mask, DWORD flags)
BOOL WINAPI SetupUninstallOEMInfW(PCWSTR inf_file, DWORD flags, PVOID reserved)
BOOL WINAPI LookupPrivilegeValueW(LPCWSTR lpSystemName, LPCWSTR lpPrivilegeName, PLUID lpLuid)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
static DWORD decompress_file_lz(LPCWSTR source, LPCWSTR target)
BOOL WINAPI ClientToScreen(_In_ HWND, _Inout_ LPPOINT)
#define WideCharToMultiByte
#define SEM_FAILCRITICALERRORS
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
#define MOVEFILE_REPLACE_EXISTING
static void basename(LPCWSTR path, LPWSTR name)
WINE_UNICODE_INLINE WCHAR * strchrW(const WCHAR *str, WCHAR ch)
char * wine_dbgstr_w(const wchar_t *wstr)
BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD dwRevision)
#define FILE_COMPRESSION_NONE
WINE_UNICODE_INLINE int isspaceW(WCHAR wc)
HCATINFO WINAPI CryptCATAdminAddCatalog(HCATADMIN catAdmin, PWSTR catalogFile, PWSTR selectBaseName, DWORD flags)
BOOL WINAPI FileExists(LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFileFindData)
static DWORD decompress_file_cab(LPCWSTR source, LPCWSTR target)
static UINT CALLBACK file_compression_info_callback(PVOID context, UINT notification, UINT_PTR param1, UINT_PTR param2)
BOOL WINAPI pSetupGetVersionInfoFromImage(LPWSTR lpFileName, PULARGE_INTEGER lpFileVersion, LPWORD lpVersionVarSize)
#define ERROR_NOT_ENOUGH_MEMORY
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
BOOL WINAPI CheckTokenMembership(IN HANDLE ExistingTokenHandle, IN PSID SidToCheck, OUT PBOOL IsMember)
#define GROUP_SECURITY_INFORMATION
static const WCHAR TranslationRegKey[]
#define INVALID_FILE_SIZE
HSPFILELOG WINAPI SetupInitializeFileLogA(LPCSTR LogFileName, DWORD Flags)
_Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strrchr(_In_z_ const char *_Str, _In_ int _Ch)
BOOL WINAPI SetupIterateCabinetW(PCWSTR CabinetFile, DWORD Reserved, PSP_FILE_CALLBACK_W MsgHandler, PVOID Context)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
unsigned short * RPC_WSTR
HFILE WINAPI LZOpenFileW(LPWSTR fn, LPOFSTRUCT ofs, WORD mode)
BOOL WINAPI SetupUninstallOEMInfA(PCSTR inf_file, DWORD flags, PVOID reserved)
DWORD WINAPI CaptureStringArg(LPCWSTR pSrc, LPWSTR *pDst)
BOOL WINAPI pSetupUnmapAndCloseFile(HANDLE hFile, HANDLE hMapping, LPVOID lpBuffer)
DWORD WINAPI GetModuleFileNameA(HINSTANCE hModule, LPSTR lpFilename, DWORD nSize)
static BOOL get_file_sizes_none(LPCWSTR source, DWORD *source_size, DWORD *target_size)
BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR pSecurityDescriptor, PSID pOwner, BOOL bOwnerDefaulted)
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
DWORD WINAPI RetreiveFileSecurity(LPCWSTR lpFileName, PSECURITY_DESCRIPTOR *pSecurityDescriptor)
BOOL WINAPI SetFileTime(IN HANDLE hFile, CONST FILETIME *lpCreationTime OPTIONAL, CONST FILETIME *lpLastAccessTime OPTIONAL, CONST FILETIME *lpLastWriteTime OPTIONAL)
void WINAPI LZClose(HFILE fd)
DWORD WINAPI pSetupCaptureAndConvertAnsiArg(LPCSTR pSrc, LPWSTR *pDst)
int WINAPI MessageBoxA(_In_opt_ HWND, _In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_ UINT)
#define SECURITY_DESCRIPTOR_REVISION
static BOOL get_file_sizes_cab(LPCWSTR source, DWORD *source_size, DWORD *target_size)
#define SE_PRIVILEGE_ENABLED
DWORD WINAPI pSetupGetGlobalFlags(void)
DWORD WINAPI StampFileSecurity(LPCWSTR lpFileName, PSECURITY_DESCRIPTOR pSecurityDescriptor)
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
#define PSPGF_NONINTERACTIVE
#define SPFILELOG_QUERYONLY
LPWSTR WINAPI pSetupDuplicateString(LPCWSTR lpSrc)
#define ERROR_ACCESS_DENIED
RPC_STATUS WINAPI UuidFromStringW(RPC_WSTR s, UUID *uuid)
LPWSTR WINAPI pSetupMultiByteToUnicode(LPCSTR lpMultiByteStr, UINT uCodePage)
BOOL WINAPI CryptCATAdminReleaseContext(HCATADMIN hCatAdmin, DWORD dwFlags)
PVOID WINAPI FreeSid(PSID pSid)
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
static const WCHAR BackSlash[]
#define LogSevInformation
void WINAPI DebugBreak(void)
BOOL WINAPI CryptCATAdminAcquireContext(HCATADMIN *catAdmin, const GUID *sys, DWORD dwFlags)
static BOOL TrimGuidString(PCWSTR szString, LPWSTR szNewString)
static BOOL get_file_sizes_lz(LPCWSTR source, DWORD *source_size, DWORD *target_size)
BOOL WINAPI DelayedMove(LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName)
#define MOVEFILE_DELAY_UNTIL_REBOOT
BOOL WINAPI pSetupEnablePrivilege(LPCWSTR lpPrivilegeName, BOOL bEnable)
#define ERROR_FILE_NOT_FOUND
#define SECURITY_NT_AUTHORITY
void WINAPI SetupCloseLog(void)
DWORD WINAPI SetupDecompressOrCopyFileW(PCWSTR source, PCWSTR target, PUINT type)
BOOL WINAPI DoesUserHavePrivilege(LPCWSTR lpPrivilegeName)
static const WCHAR nameW[]
static BOOL get_file_size(LPCWSTR file, DWORD *size)
_Must_inspect_result_ _In_ ULONG Flags
BOOL WINAPI CryptCATAdminReleaseCatalogContext(HCATADMIN hCatAdmin, HCATINFO hCatInfo, DWORD dwFlags)
HSPFILELOG WINAPI SetupInitializeFileLogW(LPCWSTR LogFileName, DWORD Flags)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define SECURITY_BUILTIN_DOMAIN_RID
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
static const WCHAR infW[]
BOOL WINAPI SetupLogErrorA(LPCSTR message, LogSeverity severity)
BOOL WINAPI CopyFileW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName, IN BOOL bFailIfExists)
#define CreateFileMappingW(a, b, c, d, e, f)
_In_ WDFCOLLECTION _In_ ULONG Index
DWORD FreeFunctionPointer(IN HMODULE ModulePointer, IN PVOID FunctionPointer)
DWORD GetFunctionPointer(IN PWSTR InstallerName, OUT HMODULE *ModulePointer, OUT PVOID *FunctionPointer)
BOOL WINAPI SetFileSecurityW(LPCWSTR lpFileName, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor)
DWORD WINAPI SetupGetFileCompressionInfoW(PCWSTR source, PWSTR *name, PDWORD source_size, PDWORD target_size, PUINT type)
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
unsigned __int3264 UINT_PTR
DWORD WINAPI pSetupOpenAndMapFileForRead(LPCWSTR lpFileName, LPDWORD lpSize, LPHANDLE lpFile, LPHANDLE lpMapping, LPVOID *lpBuffer)
DWORD WINAPI pSetupStringFromGuid(LPGUID lpGUID, PWSTR pString, DWORD dwStringLen)
_In_opt_ PVOID _In_ ULONG _In_ PVOID context
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET * Privileges
_Must_inspect_result_ _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PUNICODE_STRING LogFileName
RPC_STATUS WINAPI UuidToStringW(UUID *Uuid, RPC_WSTR *StringUuid)
#define RPC_S_INVALID_STRING_UUID
LONG WINAPI QueryRegistryValue(HKEY hKey, LPCWSTR lpValueName, LPBYTE *lpData, LPDWORD lpType, LPDWORD lpcbData)
struct _TOKEN_OWNER * PTOKEN_OWNER
#define FILE_ATTRIBUTE_NORMAL
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
HWND WINAPI GetWindow(_In_ HWND, _In_ UINT)
DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR filename, LPDWORD handle)
BOOL WINAPI SetupGetNonInteractiveMode(VOID)
#define memcpy(s1, s2, n)
#define GetCurrentProcess()
LPWSTR WINAPI pSetupGetFileTitle(LPCWSTR lpFileName)
DWORD WINAPI InstallCatalog(LPCSTR catalog, LPCSTR basename, LPSTR fullname)
LONG WINAPI LZSeek(HFILE fd, LONG off, INT type)
#define SPFILENOTIFY_FILEINCABINET
LIST_ENTRY ProcessLocksList
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
DWORD WINAPI GetSetFileTimestamp(LPCWSTR lpFileName, LPFILETIME lpCreationTime, LPFILETIME lpLastAccessTime, LPFILETIME lpLastWriteTime, BOOLEAN bSetFileTime)
DWORD WINAPI TakeOwnershipOfFile(LPCWSTR lpFileName)
BOOL WINAPI AdjustTokenPrivileges(HANDLE TokenHandle, BOOL DisableAllPrivileges, PTOKEN_PRIVILEGES NewState, DWORD BufferLength, PTOKEN_PRIVILEGES PreviousState, PDWORD ReturnLength)
BOOL WINAPI SetupLogErrorW(LPCWSTR message, LogSeverity severity)
#define FILE_GENERIC_WRITE
#define ERROR_INVALID_DATA
LONG WINAPI LZCopy(HFILE src, HFILE dest)
static UINT CALLBACK decompress_or_copy_callback(PVOID context, UINT notification, UINT_PTR param1, UINT_PTR param2)
BOOL WINAPI GetFileSecurityW(LPCWSTR lpFileName, SECURITY_INFORMATION RequestedInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD nLength, LPDWORD lpnLengthNeeded)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
WINE_UNICODE_INLINE WCHAR * strcpyW(WCHAR *dst, const WCHAR *src)
static UINT detect_compression_type(LPCWSTR file)
int WINAPI lstrlenA(LPCSTR lpString)
int WINAPIV wsprintfA(_Out_ LPSTR, _In_ _Printf_format_string_ LPCSTR,...)
_CRTIMP wchar_t *__cdecl wcsncpy(wchar_t *_Dest, const wchar_t *_Source, size_t _Count)
DWORD WINAPI pSetupGuidFromString(PCWSTR pString, LPGUID lpGUID)
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
BOOL WINAPI SetupOpenLog(BOOL reserved)
VOID WINAPI pSetupCenterWindowRelativeToParent(HWND hwnd)
void WINAPI pSetupSetGlobalFlags(DWORD flags)
WINE_UNICODE_INLINE WCHAR * strcatW(WCHAR *dst, const WCHAR *src)
static const WCHAR sourceW[]
#define FILE_COMPRESSION_WINLZA
#define ReadFile(a, b, c, d, e)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define OWNER_SECURITY_INFORMATION
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
LPVOID WINAPI MyRealloc(LPVOID lpSrc, DWORD dwSize)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define MultiByteToWideChar
#define ERROR_FILE_INVALID
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]
BOOL WINAPI GetFileVersionInfoW(LPCWSTR filename, DWORD handle, DWORD datasize, LPVOID data)
LPSTR WINAPI pSetupUnicodeToMultiByte(LPCWSTR lpUnicodeStr, UINT uCodePage)
DWORD WINAPI SetupDecompressOrCopyFileA(PCSTR source, PCSTR target, PUINT type)
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
BOOL WINAPI MoveFileExW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName OPTIONAL, IN DWORD dwFlags)
char * cleanup(char *str)
#define GetProcAddress(x, y)
LPVOID WINAPI MyMalloc(DWORD dwSize)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
#define SPFILELOG_SYSTEMLOG
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
GLuint GLuint GLsizei GLenum type
BOOL WINAPI pSetupIsUserAdmin(VOID)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
GLenum GLuint GLenum severity
BOOL WINAPI SetupGetFileCompressionInfoExA(PCSTR source, PSTR name, DWORD len, PDWORD required, PDWORD source_size, PDWORD target_size, PUINT type)
#define TOKEN_ADJUST_PRIVILEGES
#define DOMAIN_ALIAS_RID_ADMINS
VOID WINAPI MyFree(LPVOID lpMem)
BOOL WINAPI SetupSetNonInteractiveMode(BOOL NonInteractiveFlag)
BOOL WINAPI SetupTerminateFileLog(HANDLE FileLogHandle)
BOOL WINAPI GetFileTime(IN HANDLE hFile, OUT LPFILETIME lpCreationTime OPTIONAL, OUT LPFILETIME lpLastAccessTime OPTIONAL, OUT LPFILETIME lpLastWriteTime OPTIONAL)
#define HeapFree(x, y, z)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static WCHAR * strdupAtoW(const char *str)
BOOL WINAPI pSetupIsGuidNull(LPGUID lpGUID)
#define DACL_SECURITY_INFORMATION
DWORD WINAPI SetupGetFileCompressionInfoA(PCSTR source, PSTR *name, PDWORD source_size, PDWORD target_size, PUINT type)
#define SPFILELOG_FORCENEW
BOOL WINAPI SetupGetFileCompressionInfoExW(PCWSTR source, PWSTR name, DWORD len, PDWORD required, PDWORD source_size, PDWORD target_size, PUINT type)
#define FILE_COMPRESSION_MSZIP
BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount, DWORD nSubAuthority0, DWORD nSubAuthority1, DWORD nSubAuthority2, DWORD nSubAuthority3, DWORD nSubAuthority4, DWORD nSubAuthority5, DWORD nSubAuthority6, DWORD nSubAuthority7, PSID *pSid)
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI VerQueryValueW(LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen)
BOOL WINAPI pSetupConcatenatePaths(LPWSTR lpPath, LPCWSTR lpAppend, DWORD dwBufferSize, LPDWORD lpRequiredSize)
#define ERROR_INSUFFICIENT_BUFFER
BOOL WINAPI FindClose(HANDLE hFindFile)