27#define WIN32_NO_STATUS
40#include "wine/unicode.h"
51#define CUSTOM_ACTION_TYPE_MASK 0x3F
69 0, 0, { (
DWORD_PTR)(__FILE__
": msi_custom_action_cs") }
150 TRACE(
"Skipping action due to dbCustomActionTypeClientRepeat option.\n");
159 TRACE(
"Skipping action due to msidbCustomActionTypeFirstSequence option.\n");
167 TRACE(
"Skipping action due to msidbCustomActionTypeOncePerProcess option.\n");
201 const WCHAR *
end, *beg = deferred_data + 1;
268 ERR(
"Failed to get stream\n");
272 }
while (sz ==
sizeof buffer);
324 TRACE(
"exit code is %lu\n", rc );
349 ERR(
"invalid Return Code %lu\n", rc );
460 const WCHAR fmt[] =
L"To debug your custom action, attach your debugger to process %u (0x%x) and press OK";
470#if defined __i386__ && defined _MSC_VER
484#elif defined __i386__ && defined __GNUC__
489 __ASM_CFI(
".cfi_adjust_cfa_offset 4\n\t")
492 __ASM_CFI(
".cfi_def_cfa_register %ebp\n\t")
530 ERR(
"RpcStringBindingCompose failed: %#lx\n",
status);
536 ERR(
"RpcBindingFromStringBinding failed: %#lx\n",
status);
549 ERR(
"failed to create handle for %#lx\n", remote_package );
579 ERR(
"Custom action (%s:%s) caused a page fault: %#lx\n",
603#ifndef GetCurrentThreadEffectiveToken
604#define GetCurrentProcessToken() ((HANDLE)~(ULONG_PTR)3)
605#define GetCurrentThreadEffectiveToken() GetCurrentProcessToken()
637 ERR(
"failed to create custom action client pipe: %lu\n",
GetLastError());
651 CreateProcessAsUserW(
token,
path,
cmdline,
NULL,
NULL,
FALSE, 0,
NULL,
NULL, &si, &
pi);
655 CreateProcessAsUserW(
token,
path,
cmdline,
NULL,
NULL,
FALSE, 0,
NULL,
NULL, &si, &
pi);
674 ERR(
"failed to connect to custom action server: %lu\n",
GetLastError());
706 pipe =
info->package->custom_server_32_pipe;
711 pipe =
info->package->custom_server_64_pipe;
719 ERR(
"failed to write to custom action client pipe: %lu\n",
GetLastError());
725 ERR(
"failed to read from custom action client pipe: %lu\n",
GetLastError());
769 switch (
info.Machine)
803 info->package = package;
823 ERR(
"RpcServerUseProtseqEp failed: %#lx\n",
status);
831 ERR(
"RpcServerRegisterIfEx failed: %#lx\n",
status);
835 info->package->rpc_server_started = 1;
844 ERR(
"Attempt to run a 64-bit custom action inside a 32-bit WINEPREFIX.\n");
870#if defined(__REACTOS__) && defined(_M_AMD64)
952 return info.hProcess;
989#if defined(__REACTOS__) && defined(_M_AMD64)
1058 len += len_filename;
1088 filename[len_dir + len_source] = 0;
1132 hr = IStorage_Commit(
dst, 0 );
1134 ERR(
"failed to commit storage (%#lx)\n",
hr );
1139 if (
src) IStorage_Release(
src );
1140 if (
dst) IStorage_Release(
dst );
1238 TRACE(
"script returned %u\n",
r);
1242 ERR(
"failed to create handle for %p\n",
info->package );
1272 info->package = package;
1461 TRACE(
"deferring commit action\n");
1466 TRACE(
"deferring rollback action\n");
1471 TRACE(
"deferring install action\n");
1511 FIXME(
"msidbCustomActionTypeTSAware not handled\n");
1516 WARN(
"msidbCustomActionTypeNoImpersonate not handled\n");
1538 else if (actiondata)
1630 unsigned int handle_count,
i;
1655 if (
info->package == package )
1664 for (
i = 0;
i < handle_count;
i++)
1674 if (
info->package == package)
NTSTATUS NTAPI NtCreateSection(OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN PLARGE_INTEGER MaximumSize OPTIONAL, IN ULONG SectionPageProtection OPTIONAL, IN ULONG AllocationAttributes, IN HANDLE FileHandle OPTIONAL)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static WCHAR * strdupW(const WCHAR *src)
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessAsUserW(_In_opt_ HANDLE hToken, _In_opt_ LPCWSTR lpApplicationName, _Inout_opt_ LPWSTR lpCommandLine, _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes, _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ BOOL bInheritHandles, _In_ DWORD dwCreationFlags, _In_opt_ LPVOID lpEnvironment, _In_opt_ LPCWSTR lpCurrentDirectory, _In_ LPSTARTUPINFOW lpStartupInfo, _Out_ LPPROCESS_INFORMATION lpProcessInformation)
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
static WCHAR * strdupAtoW(const char *str)
#define IMAGE_FILE_MACHINE_ARMNT
#define GetEnvironmentVariableW(x, y, z)
#define ReadFile(a, b, c, d, e)
#define GetProcAddress(x, y)
#define INVALID_HANDLE_VALUE
#define GetCurrentProcess()
#define ERROR_NO_MORE_ITEMS
#define IMAGE_FILE_MACHINE_ARM64
#define FILE_ATTRIBUTE_NORMAL
#define __EXCEPT_PAGE_FAULT
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
BOOL WINAPI DuplicateHandle(IN HANDLE hSourceProcessHandle, IN HANDLE hSourceHandle, IN HANDLE hTargetProcessHandle, OUT LPHANDLE lpTargetHandle, IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwOptions)
DWORD WINAPI GetTempPathW(IN DWORD count, OUT LPWSTR path)
UINT WINAPI GetSystemWow64DirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
DWORD WINAPI SearchPathW(IN LPCWSTR lpPath OPTIONAL, IN LPCWSTR lpFileName, IN LPCWSTR lpExtension OPTIONAL, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart OPTIONAL)
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessW(LPCWSTR lpApplicationName, LPWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
BOOL WINAPI GetExitCodeProcess(IN HANDLE hProcess, IN LPDWORD lpExitCode)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
BOOL WINAPI GetExitCodeThread(IN HANDLE hThread, OUT LPDWORD lpExitCode)
BOOL WINAPI Wow64RevertWow64FsRedirection(IN PVOID OldValue)
BOOL WINAPI Wow64DisableWow64FsRedirection(IN PVOID *OldValue)
UINT ACTION_ForceReboot(MSIPACKAGE *package)
MSIFILE * msi_get_loaded_file(MSIPACKAGE *package, const WCHAR *key)
static DWORD custom_start_server(MSIPACKAGE *package, DWORD arch)
static HANDLE get_admin_token(void)
static msi_custom_action_info * do_msidbCustomActionTypeDll(MSIPACKAGE *package, INT type, LPCWSTR source, LPCWSTR target, LPCWSTR action)
static void handle_msi_break(const WCHAR *action)
static msi_custom_action_info * do_msidbCustomActionTypeScript(MSIPACKAGE *package, INT type, LPCWSTR script, LPCWSTR function, LPCWSTR action)
static UINT HANDLE_CustomType1(MSIPACKAGE *package, const WCHAR *source, const WCHAR *target, INT type, const WCHAR *action)
static WCHAR * build_msiexec_args(const WCHAR *filename, const WCHAR *params)
static UINT defer_custom_action(MSIPACKAGE *package, const WCHAR *action, UINT type)
UINT(WINAPI * MsiCustomActionEntryPoint)(MSIHANDLE)
static UINT HANDLE_CustomType7(MSIPACKAGE *package, const WCHAR *source, const WCHAR *target, INT type, const WCHAR *action)
static MSIBINARY * create_temp_binary(MSIPACKAGE *package, LPCWSTR source)
static struct list msi_pending_custom_actions
#define CUSTOM_ACTION_TYPE_MASK
static UINT HANDLE_CustomType37_38(MSIPACKAGE *package, const WCHAR *source, const WCHAR *target, INT type, const WCHAR *action)
struct _msi_custom_action_info msi_custom_action_info
UINT msi_schedule_action(MSIPACKAGE *package, UINT script, const WCHAR *action)
static msi_custom_action_info * find_action_by_guid(const GUID *guid)
static DWORD WINAPI ScriptThread(LPVOID arg)
void __RPC_USER MIDL_user_free(void __RPC_FAR *ptr)
static BOOL check_execution_scheduling_options(MSIPACKAGE *package, LPCWSTR action, UINT options)
static UINT HANDLE_CustomType21_22(MSIPACKAGE *package, const WCHAR *source, const WCHAR *target, INT type, const WCHAR *action)
static HANDLE execute_command(const WCHAR *app, WCHAR *arg, const WCHAR *dir)
static CRITICAL_SECTION msi_custom_action_cs
static UINT HANDLE_CustomType23(MSIPACKAGE *package, const WCHAR *source, const WCHAR *target, INT type, const WCHAR *action)
static MSIBINARY * get_temp_binary(MSIPACKAGE *package, LPCWSTR source)
void custom_stop_server(HANDLE process, HANDLE pipe)
struct tagMSIRUNNINGACTION MSIRUNNINGACTION
static UINT custom_get_process_return(HANDLE process)
UINT CDECL __wine_msi_call_dll_function(DWORD client_pid, const GUID *guid)
static UINT HANDLE_CustomType17(MSIPACKAGE *package, const WCHAR *source, const WCHAR *target, INT type, const WCHAR *action)
static UINT HANDLE_CustomType2(MSIPACKAGE *package, const WCHAR *source, const WCHAR *target, INT type, const WCHAR *action)
void ACTION_FinishCustomActions(const MSIPACKAGE *package)
UINT msi_register_unique_action(MSIPACKAGE *package, const WCHAR *action)
static void set_deferred_action_props(MSIPACKAGE *package, const WCHAR *deferred_data)
static DWORD WINAPI custom_client_thread(void *arg)
static BOOL action_type_matches_script(UINT type, UINT script)
static UINT custom_get_thread_return(MSIPACKAGE *package, HANDLE thread)
LONG WINAPI rpc_filter(EXCEPTION_POINTERS *eptr)
static BOOL get_binary_type(const WCHAR *name, DWORD *type)
static UINT wait_process_handle(MSIPACKAGE *package, UINT type, HANDLE ProcessHandle, LPCWSTR name)
static void free_custom_action_data(msi_custom_action_info *info)
static UINT write_substorage_to_file(MSIPACKAGE *package, const WCHAR *source, const WCHAR *filename)
static CRITICAL_SECTION_DEBUG msi_custom_action_cs_debug
WCHAR * msi_create_temp_file(MSIDATABASE *db)
static UINT HANDLE_CustomType34(MSIPACKAGE *package, const WCHAR *source, const WCHAR *target, INT type, const WCHAR *action)
static DWORD ACTION_CallScript(const GUID *guid)
static UINT HANDLE_CustomType5_6(MSIPACKAGE *package, const WCHAR *source, const WCHAR *target, INT type, const WCHAR *action)
BOOL msi_action_is_unique(const MSIPACKAGE *package, const WCHAR *action)
UINT ACTION_CustomAction(MSIPACKAGE *package, const WCHAR *action)
static UINT HANDLE_CustomType18(MSIPACKAGE *package, const WCHAR *source, const WCHAR *target, INT type, const WCHAR *action)
static void file_running_action(MSIPACKAGE *package, HANDLE Handle, BOOL process, LPCWSTR name)
static UINT HANDLE_CustomType50(MSIPACKAGE *package, const WCHAR *source, const WCHAR *target, INT type, const WCHAR *action)
void __RPC_FAR *__RPC_USER MIDL_user_allocate(SIZE_T len)
UINT __cdecl s_remote_GetActionInfo(const GUID *guid, WCHAR **name, int *type, WCHAR **dll, char **func, MSIHANDLE *hinst)
static LPWSTR msi_get_deferred_action(LPCWSTR action, LPCWSTR actiondata, LPCWSTR usersid, LPCWSTR prodcode)
static UINT custom_proc_wrapper(MsiCustomActionEntryPoint entry, MSIHANDLE hinst)
static UINT wait_thread_handle(msi_custom_action_info *info)
static UINT HANDLE_CustomType53_54(MSIPACKAGE *package, const WCHAR *source, const WCHAR *target, INT type, const WCHAR *action)
static UINT HANDLE_CustomType19(MSIPACKAGE *package, const WCHAR *source, const WCHAR *target, INT type, const WCHAR *action)
void msi_dialog_check_messages(HANDLE handle)
HANDLE msi_create_file(MSIPACKAGE *package, const WCHAR *filename, DWORD access, DWORD sharing, DWORD creation, DWORD flags)
MSIHANDLE alloc_msihandle(MSIOBJECTHDR *obj)
void msiobj_addref(MSIOBJECTHDR *info)
UINT WINAPI MsiCloseHandle(MSIHANDLE handle)
MSIHANDLE alloc_msi_remote_handle(MSIHANDLE remote)
int msiobj_release(MSIOBJECTHDR *info)
UINT WINAPI MsiCloseAllHandles(void)
const WCHAR * msi_get_target_folder(MSIPACKAGE *package, const WCHAR *name)
UINT MSI_SetTargetPathW(MSIPACKAGE *package, LPCWSTR szFolder, LPCWSTR szFolderPath)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit)
HRESULT WINAPI CoCreateGuid(GUID *pguid)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI StgCreateDocfile(LPCOLESTR pwcsName, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen)
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
UINT WINAPI GetTempFileNameW(IN LPCWSTR lpPathName, IN LPCWSTR lpPrefixString, IN UINT uUnique, OUT LPWSTR lpTempFileName)
GLuint GLuint GLsizei GLenum type
GLuint GLuint GLsizei count
GLdouble GLdouble GLdouble r
GLenum const GLfloat * params
GLenum GLenum GLenum GLenum mapping
const GLuint GLenum const GLvoid * binary
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 token
static LPSTR strdupWtoA(LPCWSTR str)
_Check_return_ _CRTIMP FILE *__cdecl tmpfile(void)
_CONST_RETURN wchar_t *__cdecl wcsstr(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_SubStr)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
#define GetCurrentThreadEffectiveToken()
#define __ASM_GLOBAL_FUNC(name, code)
@ msidbCustomActionTypeContinue
@ msidbCustomActionTypeCommit
@ msidbCustomActionTypeNoImpersonate
@ msidbCustomActionTypeAsync
@ msidbCustomActionTypeOncePerProcess
@ msidbCustomActionTypeClientRepeat
@ msidbCustomActionTypeFirstSequence
@ msidbCustomActionTypeTSAware
@ msidbCustomActionTypeRollback
@ msidbCustomActionTypeInScript
static void * msi_realloc(void *mem, size_t len) __WINE_ALLOC_SIZE(2)
UINT msi_set_property(MSIDATABASE *, const WCHAR *, const WCHAR *, int) DECLSPEC_HIDDEN
MSIRECORD *WINAPIV MSI_QueryGetRecord(MSIDATABASE *db, LPCWSTR query,...) DECLSPEC_HIDDEN
static void * msi_alloc_zero(size_t len) __WINE_ALLOC_SIZE(1)
#define INSTALLUILEVEL_MASK
UINT MSI_RecordReadStream(MSIRECORD *, UINT, char *, LPDWORD) DECLSPEC_HIDDEN
static void msi_free(void *mem)
int MSI_RecordGetInteger(MSIRECORD *, UINT) DECLSPEC_HIDDEN
UINT msi_get_property(MSIDATABASE *, LPCWSTR, LPWSTR, LPDWORD) DECLSPEC_HIDDEN
void msi_reset_source_folders(MSIPACKAGE *package) DECLSPEC_HIDDEN
const WCHAR * MSI_RecordGetString(const MSIRECORD *, UINT) DECLSPEC_HIDDEN
DWORD call_script(MSIHANDLE hPackage, INT type, LPCWSTR script, LPCWSTR function, LPCWSTR action) DECLSPEC_HIDDEN
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
LPWSTR msi_dup_property(MSIDATABASE *db, LPCWSTR prop) DECLSPEC_HIDDEN
_In_ HANDLE ProcessHandle
@ SectionImageInformation
BOOL WINAPI ConnectNamedPipe(IN HANDLE hNamedPipe, IN LPOVERLAPPED lpOverlapped)
HANDLE WINAPI CreateNamedPipeW(LPCWSTR lpName, DWORD dwOpenMode, DWORD dwPipeMode, DWORD nMaxInstances, DWORD nOutBufferSize, DWORD nInBufferSize, DWORD nDefaultTimeOut, LPSECURITY_ATTRIBUTES lpSecurityAttributes)
#define FILE_ATTRIBUTE_DIRECTORY
#define STANDARD_RIGHTS_REQUIRED
#define IMAGE_FILE_MACHINE_AMD64
#define STATUS_INVALID_IMAGE_WIN_64
#define STGM_SHARE_EXCLUSIVE
#define IMAGE_FILE_MACHINE_I386
#define IsEqualGUID(rguid1, rguid2)
RPC_STATUS WINAPI RpcBindingFromStringBindingW(RPC_WSTR StringBinding, RPC_BINDING_HANDLE *Binding)
RPC_STATUS WINAPI RpcStringBindingComposeW(RPC_WSTR ObjUuid, RPC_WSTR Protseq, RPC_WSTR NetworkAddr, RPC_WSTR Endpoint, RPC_WSTR Options, RPC_WSTR *StringBinding)
RPC_STATUS WINAPI RpcServerRegisterIfEx(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, RPC_MGR_EPV *MgrEpv, UINT Flags, UINT MaxCalls, RPC_IF_CALLBACK_FN *IfCallbackFn)
RPC_STATUS WINAPI RpcServerUseProtseqEpW(RPC_WSTR Protseq, UINT MaxCalls, RPC_WSTR Endpoint, LPVOID SecurityDescriptor)
RPCRTAPI int RPC_ENTRY I_RpcExceptionFilter(ULONG)
#define RPC_C_LISTEN_MAX_CALLS_DEFAULT
#define RPC_C_PROTSEQ_MAX_REQS_DEFAULT
unsigned short * RPC_WSTR
#define RPC_IF_AUTOLISTEN
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
static void push(calc_node_t *op)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
__WINE_SERVER_LIST_INLINE unsigned int list_count(const struct list *list)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
NTSTATUS NTAPI NtQuerySection(_In_ HANDLE SectionHandle, _In_ SECTION_INFORMATION_CLASS SectionInformationClass, _Out_ PVOID SectionInformation, _In_ SIZE_T SectionInformationLength, _Out_opt_ PSIZE_T ResultLength)
#define GetExceptionCode()
LIST_ENTRY ProcessLocksList
PEXCEPTION_RECORD ExceptionRecord
HANDLE custom_server_64_process
HANDLE custom_server_32_pipe
unsigned char commit_action_running
struct list RunningActions
unsigned char rollback_action_running
HANDLE custom_server_64_pipe
unsigned char rpc_server_started
LPWSTR * script_actions[SCRIPT_MAX]
unsigned char scheduled_action_running
HANDLE custom_server_32_process
int script_actions_count[SCRIPT_MAX]
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
ecx edi movl ebx edx edi decl ecx esi eax jecxz decl eax andl eax esi movl edx movl TEMP incl eax andl eax ecx incl ebx testl eax jnz xchgl ecx incl TEMP esp ecx subl ebx pushl ecx ecx edx ecx shrl ecx mm0 mm4 mm0 mm4 mm1 mm5 mm1 mm5 mm2 mm6 mm2 mm6 mm3 mm7 mm3 mm7 paddd mm0 paddd mm4 paddd mm0 paddd mm4 paddd mm0 paddd mm4 movq mm1 movq mm5 psrlq mm1 psrlq mm5 paddd mm0 paddd mm4 psrad mm0 psrad mm4 packssdw mm0 packssdw mm4 mm1 punpckldq mm0 pand mm1 pand mm0 por mm1 movq edi esi edx edi decl ecx jnz popl ecx andl ecx jecxz mm0 mm0 mm1 mm1 mm2 mm2 mm3 mm3 paddd mm0 paddd mm0 paddd mm0 movq mm1 psrlq mm1 paddd mm0 psrad mm0 packssdw mm0 movd eax movw edi esi edx esi movl ecx mm0 mm4 mm0 mm4 mm1 mm5 mm1 mm5 mm2 mm6 mm2 mm6 mm3 mm7 mm3 mm7 paddd mm0 paddd mm4 paddd mm0 paddd mm4 paddd mm0 paddd mm4 movq mm1 movq mm5 psrlq mm1 psrlq mm5 paddd mm1 paddd mm5 psrad mm1 psrad mm5 packssdw mm1 packssdw mm5 psubd mm0 psubd mm4 psubsw mm0 psubsw mm4 mm1 punpckldq mm0 pand mm1 pand mm0 por mm1 movq edi subl esi addl edx edi decl ecx jnz mm0 mm0 mm1 mm1 mm2 mm2 mm3 mm3 paddd mm0 paddd mm0 paddd mm0 movq mm1 psrlq mm1 paddd mm1 psrad mm1 packssdw mm1 psubd mm0 psubsw mm0 movd eax movw edi emms popl ebx popl esi popl edi mov ebp
static GLenum _GLUfuncptr fn
DWORD WINAPI GetLastError(void)
#define PIPE_ACCESS_DUPLEX
DWORD WINAPI GetCurrentThreadId(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
DWORD WINAPI GetCurrentProcessId(void)
void WINAPI DebugBreak(void)
#define INVALID_FILE_SIZE
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define ERROR_INSTALL_FAILURE
#define ERROR_INSTALL_USEREXIT
#define ERROR_FUNCTION_FAILED
#define ERROR_INSTALL_SUSPEND
#define ERROR_FUNCTION_NOT_CALLED
#define ERROR_INVALID_DATA
enum _TOKEN_ELEVATION_TYPE TOKEN_ELEVATION_TYPE
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
#define DUPLICATE_SAME_ACCESS
#define DUPLICATE_CLOSE_SOURCE