158 lines
2.8 KiB
C
158 lines
2.8 KiB
C
/*++
|
|
|
|
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
|
|
IpcOpenW (
|
|
IN BOOL Win95Side,
|
|
IN PCWSTR ExePath, OPTIONAL
|
|
IN PCWSTR MigrationDllPath, OPTIONAL
|
|
IN PCWSTR WorkingDir OPTIONAL
|
|
);
|
|
|
|
BOOL
|
|
IpcOpenA (
|
|
IN BOOL Win95Side,
|
|
IN PCSTR ExePath, OPTIONAL
|
|
IN PCSTR MigrationDllPath, OPTIONAL
|
|
IN PCSTR WorkingDir OPTIONAL
|
|
);
|
|
|
|
DWORD
|
|
IpcCheckForWaitingData (
|
|
IN HANDLE Slot,
|
|
IN DWORD MinimumSize,
|
|
IN DWORD Timeout
|
|
);
|
|
|
|
BOOL
|
|
IpcProcessAlive (
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
IpcKillProcess (
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
IpcSendCommand (
|
|
IN DWORD Command,
|
|
IN PBYTE Data, OPTIONAL
|
|
IN DWORD DataSize
|
|
);
|
|
|
|
BOOL
|
|
IpcGetCommandResults (
|
|
IN DWORD Timeout,
|
|
OUT PBYTE *ReturnData, OPTIONAL
|
|
OUT PDWORD ReturnDataSize, OPTIONAL
|
|
OUT PDWORD ResultCode, OPTIONAL
|
|
OUT PDWORD TechnicalLogId, OPTIONAL
|
|
OUT PDWORD GuiLogId OPTIONAL
|
|
);
|
|
|
|
BOOL
|
|
IpcGetCommand (
|
|
IN DWORD Timeout,
|
|
IN PDWORD Command, OPTIONAL
|
|
IN PBYTE *Data, OPTIONAL
|
|
IN PDWORD DataSize OPTIONAL
|
|
);
|
|
|
|
BOOL
|
|
IpcSendCommandResults (
|
|
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 IpcOpen IpcOpenW
|
|
#else
|
|
#define IpcOpen IpcOpenA
|
|
#endif
|
|
|
|
VOID
|
|
IpcClose (
|
|
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
|
|
#define IPC_DVDCHECK 6
|
|
|
|
//
|
|
// APIs implemented in IPC
|
|
//
|
|
|
|
BOOL
|
|
IsolatedIsDvdPresentA (
|
|
PCSTR ExePath
|
|
);
|
|
|
|
|