198 lines
3.4 KiB
C
198 lines
3.4 KiB
C
/*++
|
|
|
|
Copyright (c) 1998 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
imirror.h
|
|
|
|
Abstract:
|
|
|
|
This is the include file for the IntelliMirror conversion DLL
|
|
|
|
Author:
|
|
|
|
Sean Selitrennikoff - 4/5/98
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
//
|
|
// These are the action codes for the file error report callback
|
|
//
|
|
|
|
#define COPY_ERROR_ACTION_CREATE_FILE 1
|
|
#define COPY_ERROR_ACTION_OPEN_DIR 2
|
|
#define COPY_ERROR_ACTION_CREATE_DIR 3
|
|
#define COPY_ERROR_ACTION_SETATTR 4
|
|
#define COPY_ERROR_ACTION_GETATTR 5
|
|
#define COPY_ERROR_ACTION_GETACL 6
|
|
#define COPY_ERROR_ACTION_SETACL 7
|
|
#define COPY_ERROR_ACTION_DELETE 8
|
|
#define COPY_ERROR_ACTION_ENUMERATE 9
|
|
#define COPY_ERROR_ACTION_MALLOC 10
|
|
#define COPY_ERROR_ACTION_SETTIME 11
|
|
#define COPY_ERROR_ACTION_GETSFN 12
|
|
#define COPY_ERROR_ACTION_SETSFN 13
|
|
|
|
|
|
//
|
|
// Basic To Do items
|
|
//
|
|
typedef enum _IMIRROR_TODO {
|
|
IMirrorNone,
|
|
IMirrorInitialize,
|
|
VerifySystemIsNt5,
|
|
CheckPartitions,
|
|
CopyPartitions,
|
|
CopyFiles,
|
|
CopyRegistry,
|
|
PatchDSEntries,
|
|
RebootSystem
|
|
} IMIRROR_TODO, *PIMIRROR_TODO;
|
|
|
|
//
|
|
// Client call back function definitions
|
|
//
|
|
typedef
|
|
NTSTATUS
|
|
(*IMIRROR_ERROR_CALLBACK)(
|
|
IN PVOID Context,
|
|
IN NTSTATUS Status,
|
|
IN IMIRROR_TODO IMirrorFunctionId
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(*IMIRROR_NOWDOING_CALLBACK)(
|
|
IN PVOID Context,
|
|
IN IMIRROR_TODO Function,
|
|
IN PWSTR String
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(*IMIRROR_GETMIRRORDIR_CALLBACK)(
|
|
IN PVOID Context,
|
|
OUT PWSTR Server,
|
|
IN OUT PULONG Length
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(*IMIRROR_GETSETUP_CALLBACK)(
|
|
IN PVOID Context,
|
|
IN PWSTR Server,
|
|
OUT PWSTR SetupPath,
|
|
IN OUT PULONG Length
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(*IMIRROR_SETSYSTEM_CALLBACK)(
|
|
IN PVOID Context,
|
|
IN PWSTR SystemPath,
|
|
IN ULONG Length
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(*IMIRROR_FILECREATE_CALLBACK)(
|
|
IN PVOID Context,
|
|
IN PWSTR FileName,
|
|
IN ULONG FileAction,
|
|
IN ULONG Status
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(*IMIRROR_REGSAVE_CALLBACK)(
|
|
IN PVOID Context,
|
|
IN PWSTR Name,
|
|
IN ULONG Status
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(*IMIRROR_REINIT_CALLBACK)(
|
|
IN PVOID Context
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(*IMIRROR_ADDTODO_CALLBACK)(
|
|
IN PVOID Context,
|
|
IN IMIRROR_TODO Function,
|
|
IN PWSTR String,
|
|
IN ULONG Length
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(*IMIRROR_REBOOT_CALLBACK)(
|
|
IN PVOID Context
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(*IMIRROR_REMOVETODO_CALLBACK)(
|
|
IN PVOID Context,
|
|
IN IMIRROR_TODO Function,
|
|
IN PWSTR String,
|
|
IN ULONG Length
|
|
);
|
|
|
|
typedef struct _IMIRROR_CALLBACK {
|
|
PVOID Context;
|
|
IMIRROR_ERROR_CALLBACK ErrorFn;
|
|
IMIRROR_NOWDOING_CALLBACK NowDoingFn;
|
|
IMIRROR_GETSETUP_CALLBACK GetSetupFn;
|
|
IMIRROR_FILECREATE_CALLBACK FileCreateFn;
|
|
IMIRROR_REGSAVE_CALLBACK RegSaveErrorFn;
|
|
IMIRROR_REINIT_CALLBACK ReinitFn;
|
|
IMIRROR_GETMIRRORDIR_CALLBACK GetMirrorDirFn;
|
|
IMIRROR_SETSYSTEM_CALLBACK SetSystemDirFn;
|
|
IMIRROR_ADDTODO_CALLBACK AddToDoFn;
|
|
IMIRROR_REMOVETODO_CALLBACK RemoveToDoFn;
|
|
IMIRROR_REBOOT_CALLBACK RebootFn;
|
|
} IMIRROR_CALLBACK, *PIMIRROR_CALLBACK;
|
|
|
|
extern IMIRROR_CALLBACK Callbacks;
|
|
|
|
//
|
|
// Dll entry point
|
|
//
|
|
DWORD
|
|
IMirrorInitDll(
|
|
IN HINSTANCE hInst,
|
|
IN DWORD Reason,
|
|
IN PVOID Context
|
|
);
|
|
|
|
VOID
|
|
IMirrorInitCallback(
|
|
IN PIMIRROR_CALLBACK Callbacks
|
|
);
|
|
|
|
NTSTATUS
|
|
ProcessToDoItems(
|
|
VOID
|
|
);
|
|
|
|
NTSTATUS
|
|
InitToDo(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
ClearAllToDoItems(
|
|
IN BOOLEAN MemoryOnly
|
|
);
|
|
|
|
NTSTATUS
|
|
SaveAllToDoItems(
|
|
VOID
|
|
);
|
|
|