29static 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))
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)";
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
static const WCHAR infW[]
static const WCHAR nameW[]
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
#define ERROR_NOT_ENOUGH_MEMORY
#define ERROR_INSUFFICIENT_BUFFER
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
BOOL WINAPI LookupPrivilegeValueW(LPCWSTR lpSystemName, LPCWSTR lpPrivilegeName, PLUID lpLuid)
BOOL WINAPI CheckTokenMembership(IN HANDLE ExistingTokenHandle, IN PSID SidToCheck, OUT PBOOL IsMember)
BOOL WINAPI AdjustTokenPrivileges(HANDLE TokenHandle, BOOL DisableAllPrivileges, PTOKEN_PRIVILEGES NewState, DWORD BufferLength, PTOKEN_PRIVILEGES PreviousState, PDWORD ReturnLength)
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 SetFileSecurityW(LPCWSTR lpFileName, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor)
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)
BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD dwRevision)
PVOID WINAPI FreeSid(PSID pSid)
BOOL WINAPI GetFileSecurityW(LPCWSTR lpFileName, SECURITY_INFORMATION RequestedInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD nLength, LPDWORD lpnLengthNeeded)
static WCHAR * strdupAtoW(const char *str)
#define ERROR_INVALID_PARAMETER
#define ReadFile(a, b, c, d, e)
#define GetProcAddress(x, y)
#define INVALID_HANDLE_VALUE
#define CreateFileMappingW(a, b, c, d, e, f)
#define GetCurrentProcess()
#define HeapFree(x, y, z)
#define FILE_ATTRIBUTE_NORMAL
#define WideCharToMultiByte
#define MultiByteToWideChar
#define ERROR_ACCESS_DENIED
static void cleanup(void)
UINT WINAPI SetErrorMode(IN UINT uMode)
BOOL WINAPI CopyFileW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName, IN BOOL bFailIfExists)
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
BOOL WINAPI SetFileAttributesW(LPCWSTR lpFileName, DWORD dwFileAttributes)
BOOL WINAPI SetFileTime(IN HANDLE hFile, CONST FILETIME *lpCreationTime OPTIONAL, CONST FILETIME *lpLastAccessTime OPTIONAL, CONST FILETIME *lpLastWriteTime OPTIONAL)
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
BOOL WINAPI GetFileTime(IN HANDLE hFile, OUT LPFILETIME lpCreationTime OPTIONAL, OUT LPFILETIME lpLastAccessTime OPTIONAL, OUT LPFILETIME lpLastWriteTime OPTIONAL)
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI FindClose(HANDLE hFindFile)
BOOL WINAPI MoveFileExW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName OPTIONAL, IN DWORD dwFlags)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
DWORD WINAPI GetModuleFileNameA(HINSTANCE hModule, LPSTR lpFilename, DWORD nSize)
UINT WINAPI GetSystemWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
static void basename(LPCWSTR path, LPWSTR name)
DWORD WINAPI CaptureStringArg(LPCWSTR pSrc, LPWSTR *pDst)
DWORD WINAPI GetSetFileTimestamp(LPCWSTR lpFileName, LPFILETIME lpCreationTime, LPFILETIME lpLastAccessTime, LPFILETIME lpLastWriteTime, BOOLEAN bSetFileTime)
LPWSTR WINAPI pSetupGetFileTitle(LPCWSTR lpFileName)
BOOL WINAPI pSetupConcatenatePaths(LPWSTR lpPath, LPCWSTR lpAppend, DWORD dwBufferSize, LPDWORD lpRequiredSize)
BOOL WINAPI pSetupUnmapAndCloseFile(HANDLE hFile, HANDLE hMapping, LPVOID lpBuffer)
static BOOL get_file_sizes_none(LPCWSTR source, DWORD *source_size, DWORD *target_size)
static BOOL get_file_sizes_cab(LPCWSTR source, DWORD *source_size, DWORD *target_size)
DWORD WINAPI RetreiveFileSecurity(LPCWSTR lpFileName, PSECURITY_DESCRIPTOR *pSecurityDescriptor)
BOOL WINAPI SetupLogErrorW(LPCWSTR message, LogSeverity severity)
BOOL WINAPI SetupUninstallOEMInfA(PCSTR inf_file, DWORD flags, PVOID reserved)
void WINAPI pSetupModifyGlobalFlags(DWORD mask, DWORD flags)
static DWORD decompress_file_cab(LPCWSTR source, LPCWSTR target)
DWORD WINAPI SetupDecompressOrCopyFileW(PCWSTR source, PCWSTR target, PUINT type)
BOOL WINAPI SetupUninstallOEMInfW(PCWSTR inf_file, DWORD flags, PVOID reserved)
static DWORD decompress_file_lz(LPCWSTR source, LPCWSTR target)
BOOL WINAPI DoesUserHavePrivilege(LPCWSTR lpPrivilegeName)
LPWSTR WINAPI pSetupMultiByteToUnicode(LPCSTR lpMultiByteStr, UINT uCodePage)
DWORD FreeFunctionPointer(IN HMODULE ModulePointer, IN PVOID FunctionPointer)
BOOL WINAPI SetupOpenLog(BOOL reserved)
LPVOID WINAPI MyRealloc(LPVOID lpSrc, DWORD dwSize)
static BOOL TrimGuidString(PCWSTR szString, LPWSTR szNewString)
BOOL WINAPI SetupTerminateFileLog(HANDLE FileLogHandle)
static const WCHAR TranslationRegKey[]
BOOL WINAPI SetupGetFileCompressionInfoExA(PCSTR source, PSTR name, DWORD len, PDWORD required, PDWORD source_size, PDWORD target_size, PUINT type)
static CRITICAL_SECTION_DEBUG critsect_debug
DWORD WINAPI pSetupGetGlobalFlags(void)
DWORD WINAPI TakeOwnershipOfFile(LPCWSTR lpFileName)
LPVOID WINAPI MyMalloc(DWORD dwSize)
DWORD WINAPI SetupDecompressOrCopyFileA(PCSTR source, PCSTR target, PUINT type)
void WINAPI pSetupSetGlobalFlags(DWORD flags)
LPSTR WINAPI pSetupUnicodeToMultiByte(LPCWSTR lpUnicodeStr, UINT uCodePage)
DWORD WINAPI pSetupCaptureAndConvertAnsiArg(LPCSTR pSrc, LPWSTR *pDst)
LONG WINAPI QueryRegistryValue(HKEY hKey, LPCWSTR lpValueName, LPBYTE *lpData, LPDWORD lpType, LPDWORD lpcbData)
static const WCHAR BackSlash[]
static UINT CALLBACK file_compression_info_callback(PVOID context, UINT notification, UINT_PTR param1, UINT_PTR param2)
BOOL WINAPI pSetupIsUserAdmin(VOID)
static CRITICAL_SECTION setupapi_cs
BOOL WINAPI pSetupEnablePrivilege(LPCWSTR lpPrivilegeName, BOOL bEnable)
VOID WINAPI AssertFail(LPSTR lpFile, UINT uLine, LPSTR lpMessage)
BOOL WINAPI SetupGetNonInteractiveMode(VOID)
DWORD WINAPI pSetupInstallCatalog(LPCWSTR catalog, LPCWSTR basename, LPWSTR fullname)
BOOL WINAPI FileExists(LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFileFindData)
DWORD WINAPI pSetupGuidFromString(PCWSTR pString, LPGUID lpGUID)
VOID WINAPI MyFree(LPVOID lpMem)
DWORD WINAPI SetupGetFileCompressionInfoA(PCSTR source, PSTR *name, PDWORD source_size, PDWORD target_size, PUINT type)
DWORD WINAPI SetupGetFileCompressionInfoW(PCWSTR source, PWSTR *name, PDWORD source_size, PDWORD target_size, PUINT type)
DWORD WINAPI InstallCatalog(LPCSTR catalog, LPCSTR basename, LPSTR fullname)
void WINAPI SetupCloseLog(void)
BOOL WINAPI SetupSetNonInteractiveMode(BOOL NonInteractiveFlag)
DWORD WINAPI pSetupOpenAndMapFileForRead(LPCWSTR lpFileName, LPDWORD lpSize, LPHANDLE lpFile, LPHANDLE lpMapping, LPVOID *lpBuffer)
LPWSTR WINAPI pSetupDuplicateString(LPCWSTR lpSrc)
static BOOL get_file_sizes_lz(LPCWSTR source, DWORD *source_size, DWORD *target_size)
HSPFILELOG WINAPI SetupInitializeFileLogW(LPCWSTR LogFileName, DWORD Flags)
BOOL WINAPI DelayedMove(LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName)
HSPFILELOG WINAPI SetupInitializeFileLogA(LPCSTR LogFileName, DWORD Flags)
BOOL WINAPI SetupGetFileCompressionInfoExW(PCWSTR source, PWSTR name, DWORD len, PDWORD required, PDWORD source_size, PDWORD target_size, PUINT type)
VOID WINAPI pSetupCenterWindowRelativeToParent(HWND hwnd)
BOOL WINAPI pSetupIsGuidNull(LPGUID lpGUID)
DWORD WINAPI pSetupStringFromGuid(LPGUID lpGUID, PWSTR pString, DWORD dwStringLen)
BOOL WINAPI SetupLogErrorA(LPCSTR message, LogSeverity severity)
BOOL WINAPI pSetupGetVersionInfoFromImage(LPWSTR lpFileName, PULARGE_INTEGER lpFileVersion, LPWORD lpVersionVarSize)
DWORD WINAPI StampFileSecurity(LPCWSTR lpFileName, PSECURITY_DESCRIPTOR pSecurityDescriptor)
static UINT detect_compression_type(LPCWSTR file)
DWORD GetFunctionPointer(IN PWSTR InstallerName, OUT HMODULE *ModulePointer, OUT PVOID *FunctionPointer)
static UINT CALLBACK decompress_or_copy_callback(PVOID context, UINT notification, UINT_PTR param1, UINT_PTR param2)
BOOL WINAPI SetupIterateCabinetW(PCWSTR CabinetFile, DWORD Reserved, PSP_FILE_CALLBACK_W MsgHandler, PVOID Context)
BOOL WINAPI GetFileVersionInfoW(LPCWSTR filename, DWORD handle, DWORD datasize, LPVOID data)
BOOL WINAPI VerQueryValueW(LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen)
DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR filename, LPDWORD handle)
BOOL WINAPI CryptCATAdminReleaseContext(HCATADMIN hCatAdmin, DWORD dwFlags)
HCATINFO WINAPI CryptCATAdminAddCatalog(HCATADMIN catAdmin, PWSTR catalogFile, PWSTR selectBaseName, DWORD flags)
BOOL WINAPI CryptCATAdminReleaseCatalogContext(HCATADMIN hCatAdmin, HCATINFO hCatInfo, DWORD dwFlags)
BOOL WINAPI CryptCATAdminAcquireContext(HCATADMIN *catAdmin, const GUID *sys, DWORD dwFlags)
#define MOVEFILE_REPLACE_EXISTING
GLuint GLuint GLsizei GLenum type
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
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
static const WCHAR sourceW[]
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
LONG WINAPI LZSeek(HFILE fd, LONG off, INT type)
HFILE WINAPI LZOpenFileW(LPWSTR fn, LPOFSTRUCT ofs, WORD mode)
LONG WINAPI LZCopy(HFILE src, HFILE dest)
void WINAPI LZClose(HFILE fd)
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static DWORD get_file_size(void)
unsigned __int3264 UINT_PTR
#define SEM_FAILCRITICALERRORS
#define FILE_GENERIC_WRITE
_Must_inspect_result_ _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PUNICODE_STRING LogFileName
#define IsEqualGUID(rguid1, rguid2)
unsigned short * RPC_WSTR
RPC_STATUS WINAPI UuidToStringW(UUID *Uuid, RPC_WSTR *StringUuid)
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
RPC_STATUS WINAPI UuidFromStringW(RPC_WSTR s, UUID *uuid)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_CRTIMP wchar_t *__cdecl wcsncpy(wchar_t *_Dest, const wchar_t *_Source, size_t _Count)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_CRT_RESTORE_GCC_WARNINGS _CRT_DISABLE_GCC_WARNINGS _Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strrchr(_In_z_ const char *_Str, _In_ int _Ch)
BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR pSecurityDescriptor, PSID pOwner, BOOL bOwnerDefaulted)
#define FILE_COMPRESSION_WINLZA
#define FILE_COMPRESSION_NTCAB
#define SPFILELOG_FORCENEW
#define SPFILELOG_QUERYONLY
#define FILE_COMPRESSION_MSZIP
#define FILE_COMPRESSION_NONE
#define LogSevInformation
#define SPFILELOG_SYSTEMLOG
#define SPFILENOTIFY_FILEINCABINET
#define PSPGF_NONINTERACTIVE
LIST_ENTRY ProcessLocksList
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]
_In_ WDFCOLLECTION _In_ ULONG Index
DWORD WINAPI GetLastError(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI DebugBreak(void)
#define INVALID_FILE_SIZE
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define MOVEFILE_DELAY_UNTIL_REBOOT
#define RPC_S_INVALID_STRING_UUID
#define ERROR_FILE_INVALID
#define ERROR_INVALID_DATA
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
int WINAPI MessageBoxA(_In_opt_ HWND hWnd, _In_opt_ LPCSTR lpText, _In_opt_ LPCSTR lpCaption, _In_ UINT uType)
BOOL WINAPI ClientToScreen(_In_ HWND, _Inout_ LPPOINT)
int WINAPIV wsprintfA(_Out_ LPSTR, _In_ _Printf_format_string_ LPCSTR,...)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
HWND WINAPI GetWindow(_In_ HWND, _In_ UINT)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
_Must_inspect_result_ _In_ ULONG Flags
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET * Privileges
#define SECURITY_BUILTIN_DOMAIN_RID
#define DACL_SECURITY_INFORMATION
#define TOKEN_ADJUST_PRIVILEGES
#define OWNER_SECURITY_INFORMATION
#define SECURITY_NT_AUTHORITY
#define SECURITY_DESCRIPTOR_REVISION
#define GROUP_SECURITY_INFORMATION
#define SE_PRIVILEGE_ENABLED
#define DOMAIN_ALIAS_RID_ADMINS
struct _TOKEN_OWNER * PTOKEN_OWNER