/*++ Copyright (c) 1998 Microsoft Corporation Module Name: ipc.h Abstract: Implements IPC interface to allow setup to talk with migisol.exe, in order to run migration DLLs in separate processes. Author: Jim Schmidt (jimschm) 28-Mar-1997 Revision History: jimschm 23-Sep-1998 Changed from mailslots to memory mapped files --*/ #pragma once BOOL OpenIpcW ( IN BOOL Win95Side, IN PCWSTR ExePath, OPTIONAL IN PCWSTR MigrationDllPath, OPTIONAL IN PCWSTR WorkingDir OPTIONAL ); BOOL OpenIpcA ( IN BOOL Win95Side, IN PCSTR ExePath, OPTIONAL IN PCSTR MigrationDllPath, OPTIONAL IN PCSTR WorkingDir OPTIONAL ); DWORD CheckForWaitingData ( IN HANDLE Slot, IN DWORD MinimumSize, IN DWORD Timeout ); BOOL IsIpcProcessAlive ( VOID ); VOID KillIpcProcess ( VOID ); BOOL SendIpcCommand ( IN DWORD Command, IN PBYTE Data, OPTIONAL IN DWORD DataSize ); BOOL GetIpcCommandResults ( IN DWORD Timeout, OUT PBYTE *ReturnData, OPTIONAL OUT PDWORD ReturnDataSize, OPTIONAL OUT PDWORD ResultCode, OPTIONAL OUT PDWORD TechnicalLogId, OPTIONAL OUT PDWORD GuiLogId OPTIONAL ); BOOL GetIpcCommand ( IN DWORD Timeout, IN PDWORD Command, OPTIONAL IN PBYTE *Data, OPTIONAL IN PDWORD DataSize OPTIONAL ); BOOL SendIpcCommandResults ( IN DWORD ResultCode, IN DWORD TechnicalLogId, IN DWORD GuiLogId, IN PBYTE Data, OPTIONAL IN DWORD DataSize ); #define IPC_GET_RESULTS_WIN9X 1000 #define IPC_GET_RESULTS_NT 7500 #define IPC_GET_COMMAND_WIN9X 10000 #define IPC_GET_COMMAND_NT 10000 #ifdef UNICODE #define OpenIpc OpenIpcW #else #define OpenIpc OpenIpcA #endif VOID CloseIpc ( VOID ); typedef LONG (WINAPI WINVERIFYTRUST_PROTOTYPE)(HWND hwnd, GUID *ActionId, PVOID Data); typedef WINVERIFYTRUST_PROTOTYPE * WINVERIFYTRUST; BOOL IsDllSignedA ( IN WINVERIFYTRUST WinVerifyTrustApi, IN PCSTR DllSpec ); BOOL IsDllSignedW ( IN WINVERIFYTRUST WinVerifyTrustApi, IN PCWSTR DllSpec ); #ifdef UNICODE #define IsDllSigned IsDllSignedW #else #define IsDllSigned IsDllSignedA #endif // // Remote commands // #define IPC_QUERY 1 #define IPC_INITIALIZE 2 #define IPC_MIGRATEUSER 3 #define IPC_MIGRATESYSTEM 4 #define IPC_TERMINATE 5