112 lines
1.8 KiB
C
112 lines
1.8 KiB
C
/*++
|
|
|
|
Copyright (c) 1998 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
recovery.h
|
|
|
|
Abstract:
|
|
|
|
A number of utilities for safe/recovery mode
|
|
|
|
Author:
|
|
|
|
Calin Negreanu (calinn) 6-Aug-1999
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
|
|
#pragma once
|
|
|
|
// posible values for safe mode identifiers
|
|
typedef enum {
|
|
SAFEMODEID_FIRST,
|
|
SAFEMODEID_DRIVE,
|
|
SAFEMODEID_FILES,
|
|
SAFEMODEID_LNK9X,
|
|
SAFEMODEID_LAST
|
|
} SAFEMODE_OPTIONS;
|
|
|
|
BOOL
|
|
SafeModeInitializeA (
|
|
BOOL Forced
|
|
);
|
|
|
|
BOOL
|
|
SafeModeInitializeW (
|
|
BOOL Forced
|
|
);
|
|
|
|
BOOL
|
|
SafeModeShutDownA (
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
SafeModeShutDownW (
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
SafeModeRegisterActionA (
|
|
IN ULONG Id,
|
|
IN PCSTR String
|
|
);
|
|
|
|
BOOL
|
|
SafeModeRegisterActionW (
|
|
IN ULONG Id,
|
|
IN PCWSTR String
|
|
);
|
|
|
|
BOOL
|
|
SafeModeUnregisterActionA (
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
SafeModeUnregisterActionW (
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
SafeModeActionCrashedA (
|
|
IN ULONG Id,
|
|
IN PCSTR String
|
|
);
|
|
|
|
BOOL
|
|
SafeModeActionCrashedW (
|
|
IN ULONG Id,
|
|
IN PCWSTR String
|
|
);
|
|
|
|
VOID
|
|
SafeModeExceptionOccured (
|
|
VOID
|
|
);
|
|
|
|
#ifdef UNICODE
|
|
|
|
#define SafeModeInitialize SafeModeInitializeW
|
|
#define SafeModeShutDown SafeModeShutDownW
|
|
#define SafeModeRegisterAction SafeModeRegisterActionW
|
|
#define SafeModeUnregisterAction SafeModeUnregisterActionW
|
|
#define SafeModeActionCrashed SafeModeActionCrashedW
|
|
|
|
#else
|
|
|
|
#define SafeModeInitialize SafeModeInitializeA
|
|
#define SafeModeShutDown SafeModeShutDownA
|
|
#define SafeModeRegisterAction SafeModeRegisterActionA
|
|
#define SafeModeUnregisterAction SafeModeUnregisterActionA
|
|
#define SafeModeActionCrashed SafeModeActionCrashedA
|
|
|
|
#endif
|
|
|
|
#define SAFEMODE_GUARD(id,str) if(!SafeModeActionCrashed(id,str)){SafeModeRegisterAction(id,str);
|
|
#define END_SAFEMODE_GUARD SafeModeUnregisterAction();}
|