windows-nt/Source/XPSP1/NT/base/remoteboot/imirror/imirror.h

198 lines
3.4 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
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
);