windows-nt/Source/XPSP1/NT/base/boot/inc/parseini.h
2020-09-26 16:20:57 +08:00

225 lines
3.1 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++
Copyright (c) 1992 Microsoft Corporation
Module Name:
parseini.h
Abstract:
Common header file for parsing .ini files
Author:
John Vert (jvert) 6-Oct-1993
Environment:
ARC environment
Revision History:
--*/
#include "bldr.h"
#include "setupblk.h"
#include "stdio.h"
#include "stdarg.h"
//
// Defines for *externally* fulfilled error handling routines. setupldr and osloader each
// have different versions of these routines.
//
#if DEVL
#define SlError(x) SlErrorBox(x , __LINE__, __FILE__ )
#else
#define SlError(x)
#endif
#define SlNoMemoryError() SlNoMemError(__LINE__, __FILE__ )
VOID
SlNoMemError(
IN ULONG Line,
IN PCHAR File
);
VOID
SlBadInfLineError(
IN ULONG Line,
IN PCHAR INFFile
);
VOID
SlErrorBox(
IN ULONG MessageId,
IN ULONG Line,
IN PCHAR File
);
VOID
SlFatalError(
IN ULONG MessageId,
...
);
VOID
SlFriendlyError(
IN ULONG uStatus,
IN PCHAR pchBadFile,
IN ULONG uLine,
IN PCHAR pchCodeFile
);
//
// Routines for parsing the setupldr.ini file
//
#define SIF_FILENAME_INDEX 0
extern PVOID InfFile;
extern PVOID WinntSifHandle;
ARC_STATUS
SlInitIniFile(
IN PCHAR DevicePath,
IN ULONG DeviceId,
IN PCHAR INFFile,
OUT PVOID *pINFHandle,
OUT PVOID *pINFBuffer OPTIONAL,
OUT PULONG INFBufferSize OPTIONAL,
OUT PULONG ErrorLine
);
PCHAR
SlGetIniValue(
IN PVOID InfHandle,
IN PCHAR SectionName,
IN PCHAR KeyName,
IN PCHAR Default
);
#ifdef UNICODE
PWCHAR
SlGetIniValueW(
IN PVOID InfHandle,
IN PCHAR SectionName,
IN PCHAR KeyName,
IN PWCHAR Default
);
#endif
PCHAR
SlGetKeyName(
IN PVOID INFHandle,
IN PCHAR SectionName,
IN ULONG LineIndex
);
#ifdef UNICODE
PWCHAR
SlGetKeyNameW(
IN PVOID INFHandle,
IN PCHAR SectionName,
IN ULONG LineIndex
);
#endif
ULONG
SlGetSectionKeyOrdinal(
IN PVOID INFHandle,
IN PCHAR SectionName,
IN PCHAR Key
);
PCHAR
SlGetSectionKeyIndex (
IN PVOID INFHandle,
IN PCHAR SectionName,
IN PCHAR Key,
IN ULONG ValueIndex
);
#ifdef UNICODE
PWCHAR
SlGetSectionKeyIndexW (
IN PVOID INFHandle,
IN PCHAR SectionName,
IN PCHAR Key,
IN ULONG ValueIndex
);
#endif
PTCHAR
SlCopyString(
IN PTCHAR String
);
PCHAR
SlCopyStringA(
IN PCSTR String
);
PWCHAR
SlCopyStringAW(
IN PCHAR String
);
#ifdef UNICODE
#define SlCopyStringAT SlCopyStringAW
#else
#define SlCopyStringAT SlCopyStringA
#endif
PCHAR
SlGetSectionLineIndex (
IN PVOID INFHandle,
IN PCHAR SectionName,
IN ULONG LineIndex,
IN ULONG ValueIndex
);
#ifdef UNICODE
PWCHAR
SlGetSectionLineIndexW (
IN PVOID INFHandle,
IN PCHAR SectionName,
IN ULONG LineIndex,
IN ULONG ValueIndex
);
#endif
ULONG
SlCountLinesInSection(
IN PVOID INFHandle,
IN PCHAR SectionName
);
BOOLEAN
SpSearchINFSection (
IN PVOID INFHandle,
IN PCHAR SectionName
);
PCHAR
SlSearchSection(
IN PCHAR SectionName,
IN PCHAR TargetName
);
ARC_STATUS
SpFreeINFBuffer (
IN PVOID INFHandle
);