ReactOS 0.4.16-dev-747-gbc52d5f
infsupp.h File Reference
#include "spapisup.h"
Include dependency graph for infsupp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _INFCONTEXT
 
struct  _SPINF_EXPORTS
 

Macros

#define MAX_INF_STRING_LENGTH   1024
 
#define INF_STYLE_OLDNT   0x00000001
 
#define INF_STYLE_WIN4   0x00000002
 
#define SpInfCloseInfFile   (SpInfExports.SpInfCloseInfFile)
 
#define SpInfFindFirstLine   (SpInfExports.SpInfFindFirstLine)
 
#define SpInfFindNextLine   (SpInfExports.SpInfFindNextLine)
 
#define SpInfGetFieldCount   (SpInfExports.SpInfGetFieldCount)
 
#define SpInfGetBinaryField   (SpInfExports.SpInfGetBinaryField)
 
#define SpInfGetIntField   (SpInfExports.SpInfGetIntField)
 
#define SpInfGetMultiSzField   (SpInfExports.SpInfGetMultiSzField)
 
#define SpInfGetStringField   (SpInfExports.SpInfGetStringField)
 
#define SpInfGetField   (SpInfExports.SpInfGetField)
 
#define SpInfOpenInfFile   (SpInfExports.SpInfOpenInfFile)
 

Typedefs

typedef PVOID HINF
 
typedef struct _INFCONTEXT INFCONTEXT
 
typedef struct _INFCONTEXTPINFCONTEXT
 
typedef VOID(WINAPIpSpInfCloseInfFile) (IN HINF InfHandle)
 
typedef BOOL(WINAPIpSpInfFindFirstLine) (IN HINF InfHandle, IN PCWSTR Section, IN PCWSTR Key, IN OUT PINFCONTEXT Context)
 
typedef BOOL(WINAPIpSpInfFindNextLine) (IN PINFCONTEXT ContextIn, OUT PINFCONTEXT ContextOut)
 
typedef ULONG(WINAPIpSpInfGetFieldCount) (IN PINFCONTEXT Context)
 
typedef BOOL(WINAPIpSpInfGetBinaryField) (IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT PUCHAR ReturnBuffer, IN ULONG ReturnBufferSize, OUT PULONG RequiredSize)
 
typedef BOOL(WINAPIpSpInfGetIntField) (IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT INT *IntegerValue)
 
typedef BOOL(WINAPIpSpInfGetMultiSzField) (IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT PWSTR ReturnBuffer, IN ULONG ReturnBufferSize, OUT PULONG RequiredSize)
 
typedef BOOL(WINAPIpSpInfGetStringField) (IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT PWSTR ReturnBuffer, IN ULONG ReturnBufferSize, OUT PULONG RequiredSize)
 
typedef PCWSTR(WINAPIpSpInfGetField) (IN PINFCONTEXT Context, IN ULONG FieldIndex)
 
typedef HINF(WINAPIpSpInfOpenInfFile) (IN PCWSTR FileName, IN PCWSTR InfClass, IN DWORD InfStyle, IN LCID LocaleId, OUT PUINT ErrorLine)
 
typedef struct _SPINF_EXPORTS SPINF_EXPORTS
 
typedef struct _SPINF_EXPORTSPSPINF_EXPORTS
 

Functions

 C_ASSERT (sizeof(INFCONTEXT)==2 *sizeof(HINF)+2 *sizeof(UINT))
 
FORCEINLINE VOID INF_FreeData (IN PCWSTR InfData)
 
BOOLEAN INF_GetDataField (IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT PCWSTR *Data)
 
BOOLEAN INF_GetData (IN PINFCONTEXT Context, OUT PCWSTR *Key, OUT PCWSTR *Data)
 

Variables

SPINF_EXPORTS SpInfExports
 

Macro Definition Documentation

◆ INF_STYLE_OLDNT

#define INF_STYLE_OLDNT   0x00000001

Definition at line 39 of file infsupp.h.

◆ INF_STYLE_WIN4

#define INF_STYLE_WIN4   0x00000002

Definition at line 43 of file infsupp.h.

◆ MAX_INF_STRING_LENGTH

#define MAX_INF_STRING_LENGTH   1024

Definition at line 36 of file infsupp.h.

◆ SpInfCloseInfFile

#define SpInfCloseInfFile   (SpInfExports.SpInfCloseInfFile)

Definition at line 139 of file infsupp.h.

◆ SpInfFindFirstLine

#define SpInfFindFirstLine   (SpInfExports.SpInfFindFirstLine)

Definition at line 140 of file infsupp.h.

◆ SpInfFindNextLine

#define SpInfFindNextLine   (SpInfExports.SpInfFindNextLine)

Definition at line 141 of file infsupp.h.

◆ SpInfGetBinaryField

#define SpInfGetBinaryField   (SpInfExports.SpInfGetBinaryField)

Definition at line 143 of file infsupp.h.

◆ SpInfGetField

#define SpInfGetField   (SpInfExports.SpInfGetField)

Definition at line 147 of file infsupp.h.

◆ SpInfGetFieldCount

#define SpInfGetFieldCount   (SpInfExports.SpInfGetFieldCount)

Definition at line 142 of file infsupp.h.

◆ SpInfGetIntField

#define SpInfGetIntField   (SpInfExports.SpInfGetIntField)

Definition at line 144 of file infsupp.h.

◆ SpInfGetMultiSzField

#define SpInfGetMultiSzField   (SpInfExports.SpInfGetMultiSzField)

Definition at line 145 of file infsupp.h.

◆ SpInfGetStringField

#define SpInfGetStringField   (SpInfExports.SpInfGetStringField)

Definition at line 146 of file infsupp.h.

◆ SpInfOpenInfFile

#define SpInfOpenInfFile   (SpInfExports.SpInfOpenInfFile)

Definition at line 148 of file infsupp.h.

Typedef Documentation

◆ HINF

typedef PVOID HINF

Definition at line 21 of file infsupp.h.

◆ INFCONTEXT

◆ PINFCONTEXT

◆ PSPINF_EXPORTS

◆ pSpInfCloseInfFile

typedef VOID(WINAPI * pSpInfCloseInfFile) (IN HINF InfHandle)

Definition at line 50 of file infsupp.h.

◆ pSpInfFindFirstLine

typedef BOOL(WINAPI * pSpInfFindFirstLine) (IN HINF InfHandle, IN PCWSTR Section, IN PCWSTR Key, IN OUT PINFCONTEXT Context)

Definition at line 55 of file infsupp.h.

◆ pSpInfFindNextLine

typedef BOOL(WINAPI * pSpInfFindNextLine) (IN PINFCONTEXT ContextIn, OUT PINFCONTEXT ContextOut)

Definition at line 63 of file infsupp.h.

◆ pSpInfGetBinaryField

typedef BOOL(WINAPI * pSpInfGetBinaryField) (IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT PUCHAR ReturnBuffer, IN ULONG ReturnBufferSize, OUT PULONG RequiredSize)

Definition at line 74 of file infsupp.h.

◆ pSpInfGetField

typedef PCWSTR(WINAPI * pSpInfGetField) (IN PINFCONTEXT Context, IN ULONG FieldIndex)

Definition at line 108 of file infsupp.h.

◆ pSpInfGetFieldCount

typedef ULONG(WINAPI * pSpInfGetFieldCount) (IN PINFCONTEXT Context)

Definition at line 69 of file infsupp.h.

◆ pSpInfGetIntField

typedef BOOL(WINAPI * pSpInfGetIntField) (IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT INT *IntegerValue)

Definition at line 83 of file infsupp.h.

◆ pSpInfGetMultiSzField

typedef BOOL(WINAPI * pSpInfGetMultiSzField) (IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT PWSTR ReturnBuffer, IN ULONG ReturnBufferSize, OUT PULONG RequiredSize)

Definition at line 90 of file infsupp.h.

◆ pSpInfGetStringField

typedef BOOL(WINAPI * pSpInfGetStringField) (IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT PWSTR ReturnBuffer, IN ULONG ReturnBufferSize, OUT PULONG RequiredSize)

Definition at line 99 of file infsupp.h.

◆ pSpInfOpenInfFile

typedef HINF(WINAPI * pSpInfOpenInfFile) (IN PCWSTR FileName, IN PCWSTR InfClass, IN DWORD InfStyle, IN LCID LocaleId, OUT PUINT ErrorLine)

Definition at line 115 of file infsupp.h.

◆ SPINF_EXPORTS

Function Documentation

◆ C_ASSERT()

C_ASSERT ( sizeof(INFCONTEXT = =2 *sizeof(HINF)+2 *sizeof(UINT))

◆ INF_FreeData()

FORCEINLINE VOID INF_FreeData ( IN PCWSTR  InfData)

Definition at line 154 of file infsupp.h.

156{
157#if 0
158 if (InfData)
159 RtlFreeHeap(ProcessHeap, 0, InfData);
160#else
161 UNREFERENCED_PARAMETER(InfData);
162#endif
163}
HANDLE ProcessHeap
Definition: servman.c:15
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
Definition: heap.c:634
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:325

Referenced by AddComputerTypeEntries(), AddEntriesFromInfSection(), AddSectionToCopyQueue(), AddSectionToCopyQueueCab(), CheckUnattendedSetup(), CreateDisplayDriverList(), GetSourceFileAndTargetLocation(), INF_GetData(), InstallDriver(), LoadSetupInf(), PrepareCopyInfFile(), PrepareFileCopy(), and UpdateRegistry().

◆ INF_GetData()

BOOLEAN INF_GetData ( IN PINFCONTEXT  Context,
OUT PCWSTR Key,
OUT PCWSTR Data 
)

Definition at line 77 of file infsupp.c.

81{
83 PCWSTR InfData[2] = {NULL, NULL};
84
85 if (Key)
86 *Key = NULL;
87
88 if (Data)
89 *Data = NULL;
90
91 /*
92 * Verify that the INF file has only one value field, in addition to its key name.
93 * Note that SpInfGetFieldCount() does not count the key name as a field.
94 */
96 {
97 DPRINT1("SpInfGetFieldCount != 1\n");
98 return FALSE;
99 }
100
101 if (Key)
102 {
103 Success = INF_GetDataField(Context, 0, &InfData[0]);
104 if (!Success)
105 return FALSE;
106 }
107
108 if (Data)
109 {
110 Success = INF_GetDataField(Context, 1, &InfData[1]);
111 if (!Success)
112 {
113 INF_FreeData(InfData[0]);
114 return FALSE;
115 }
116 }
117
118 if (Key)
119 *Key = InfData[0];
120
121 if (Data)
122 *Data = InfData[1];
123
124 return TRUE;
125}
#define DPRINT1
Definition: precomp.h:8
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
@ Success
Definition: eventcreate.c:712
unsigned int BOOL
Definition: ntddk_ex.h:94
#define SpInfGetFieldCount
Definition: infsupp.h:142
FORCEINLINE VOID INF_FreeData(IN PCWSTR InfData)
Definition: infsupp.h:154
BOOLEAN INF_GetDataField(IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT PCWSTR *Data)
Definition: infsupp.c:29
const uint16_t * PCWSTR
Definition: typedefs.h:57

Referenced by AddSectionToCopyQueueCab(), CheckUnattendedSetup(), CreateKeyboardLayoutList(), CreateLanguageList(), LoadSetupInf(), LookupDirectoryById(), PrepareCopyInfFile(), and PrepareFileCopy().

◆ INF_GetDataField()

BOOLEAN INF_GetDataField ( IN PINFCONTEXT  Context,
IN ULONG  FieldIndex,
OUT PCWSTR Data 
)

Definition at line 29 of file infsupp.c.

33{
34#if 0
35
37 PWCHAR InfData;
39
40 *Data = NULL;
41
44 NULL,
45 0,
46 &dwSize);
47 if (!Success)
48 return FALSE;
49
50 InfData = RtlAllocateHeap(ProcessHeap, 0, dwSize * sizeof(WCHAR));
51 if (!InfData)
52 return FALSE;
53
56 InfData,
57 dwSize,
58 NULL);
59 if (!Success)
60 {
61 RtlFreeHeap(ProcessHeap, 0, InfData);
62 return FALSE;
63 }
64
65 *Data = InfData;
66 return TRUE;
67
68#else
69
71 return !!*Data;
72
73#endif
74}
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
Definition: heap.c:616
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SpInfGetField
Definition: infsupp.h:147
#define SpInfGetStringField
Definition: infsupp.h:146
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56
_In_ DWORD FieldIndex
Definition: setupapi.h:1896
uint16_t * PWCHAR
Definition: typedefs.h:56
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by AddComputerTypeEntries(), AddEntriesFromInfSection(), AddSectionToCopyQueue(), AddSectionToCopyQueueCab(), CreateDisplayDriverList(), GetSourceFileAndTargetLocation(), INF_GetData(), InstallDriver(), ProcessDisplayRegistry(), and UpdateRegistry().

Variable Documentation

◆ SpInfExports

SPINF_EXPORTS SpInfExports
extern

Definition at line 24 of file infsupp.c.

Referenced by _tWinMain(), InitializeSetup(), and SetupStartPage().