windows-nt/Source/XPSP1/NT/base/published/winasr.w
2020-09-26 16:20:57 +08:00

134 lines
2.5 KiB
OpenEdge ABL

/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
winasr.h
Abstract:
Public header file for Windows Automated System Recovery (ASR)
interfaces and definitions.
--*/
#ifndef _INC_WINASR_H
#define _INC_WINASR_H
#ifdef __cplusplus
extern "C" {
#endif
//
// Automated System Recovery API
//
BOOL
AsrCreateStateFileA(
IN LPCSTR lpFilePath,
IN LPCSTR lpProviderName,
IN CONST BOOL bEnableAutoExtend,
IN LPCSTR mszCriticalVolumes,
OUT DWORD_PTR *lpAsrContext
);
BOOL
AsrCreateStateFileW(
IN PCWSTR lpFilePath,
IN PCWSTR lpProviderName,
IN CONST BOOL bEnableAutoExtend,
IN PCWSTR mszCriticalVolumes,
OUT DWORD_PTR *lpAsrContext
);
#ifdef UNICODE
#define AsrCreateStateFile AsrCreateStateFileW
#else
#define AsrCreateStateFile AsrCreateStateFileA
#endif
BOOL
AsrAddSifEntryA(
IN DWORD_PTR AsrContext,
IN LPCSTR lpSectionName,
IN LPCSTR lpSifEntry
);
BOOL
AsrAddSifEntryW(
IN DWORD_PTR AsrContext,
IN PCWSTR lpSectionName,
IN PCWSTR lpSifEntry
);
#ifdef UNICODE
#define AsrAddSifEntry AsrAddSifEntryW
#else
#define AsrAddSifEntry AsrAddSifEntryA
#endif
BOOL
AsrRestorePlugPlayRegistryData(
IN HKEY SourceSystemKey,
IN HKEY TargetSystemKey,
IN DWORD Flags,
IN PVOID Reserved
);
BOOL
AsrFreeContext(
IN DWORD_PTR *lpAsrContext
);
//
// Pre-defined constants
//
#define ASR_SIF_ENTRY_MAX_CHARS 4096
//
// Recognized section names in the ASR state file.
//
#define ASR_SIF_SECTION_COMMANDS_A "[COMMANDS]"
#define ASR_SIF_SECTION_COMMANDS_W L"[COMMANDS]"
#ifdef UNICODE
#define ASR_SIF_SECTION_COMMANDS ASR_SIF_SECTION_COMMANDS_W
#else
#define ASR_SIF_SECTION_COMMANDS ASR_SIF_SECTION_COMMANDS_A
#endif
#define ASR_SIF_SECTION_INSTALLFILES_A "[INSTALLFILES]"
#define ASR_SIF_SECTION_INSTALLFILES_W L"[INSTALLFILES]"
#ifdef UNICODE
#define ASR_SIF_SECTION_INSTALLFILES ASR_SIF_SECTION_INSTALLFILES_W
#else
#define ASR_SIF_SECTION_INSTALLFILES ASR_SIF_SECTION_INSTALLFILES_A
#endif
//
// Flags for the INSTALLFILES section
//
#define ASR_SIF_INSTALLFILES_MEDIA_PROMPT_ALWAYS 0x00000001
#define ASR_SIF_INSTALLFILES_MEDIA_PROMPT_ON_ERROR 0x00000002
#define ASR_SIF_INSTALLFILES_REQUIRED_FILE 0x00000006
#define ASR_SIF_INSTALLFILES_OVERWRITE_IF_FILE_EXISTS 0x00000010
#define ASR_SIF_INSTALLFILES_PROMPT_IF_FILE_EXISTS 0x00000020
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // _INC_WINASR_H