ReactOS  0.4.14-dev-554-g2f8d847
infsupp.c File Reference
#include "precomp.h"
#include "infsupp.h"
#include <debug.h>
Include dependency graph for infsupp.c:

Go to the source code of this file.

Macros

#define NDEBUG
 

Functions

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

Macro Definition Documentation

◆ NDEBUG

#define NDEBUG

Definition at line 15 of file infsupp.c.

Function Documentation

◆ INF_GetData()

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

Definition at line 90 of file infsupp.c.

94 {
95  BOOL Success;
96  PCWSTR InfData[2] = {NULL, NULL};
97 
98  if (Key)
99  *Key = NULL;
100 
101  if (Data)
102  *Data = NULL;
103 
104  /*
105  * Verify that the INF file has only one value field, in addition to its key name.
106  * Note that SpInfGetFieldCount() does not count the key name as a field.
107  */
108  if (SpInfGetFieldCount(Context) != 1)
109  {
110  DPRINT1("SpInfGetFieldCount != 1\n");
111  return FALSE;
112  }
113 
114  if (Key)
115  {
116  Success = INF_GetDataField(Context, 0, &InfData[0]);
117  if (!Success)
118  return FALSE;
119  }
120 
121  if (Data)
122  {
123  Success = INF_GetDataField(Context, 1, &InfData[1]);
124  if (!Success)
125  {
126  INF_FreeData(InfData[0]);
127  return FALSE;
128  }
129  }
130 
131  if (Key)
132  *Key = InfData[0];
133 
134  if (Data)
135  *Data = InfData[1];
136 
137  return TRUE;
138 }
const uint16_t * PCWSTR
Definition: typedefs.h:55
#define TRUE
Definition: types.h:120
unsigned int BOOL
Definition: ntddk_ex.h:94
BOOLEAN INF_GetDataField(IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT PCWSTR *Data)
Definition: infsupp.c:42
smooth NULL
Definition: ftsmooth.c:416
pSpInfGetFieldCount SpInfGetFieldCount
Definition: infsupp.c:89
FORCEINLINE VOID INF_FreeData(IN PCWSTR InfData)
Definition: infsupp.h:157
#define DPRINT1
Definition: precomp.h:8

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 42 of file infsupp.c.

46 {
47 #if 0
48 
49  BOOL Success;
50  PWCHAR InfData;
51  DWORD dwSize;
52 
53  *Data = NULL;
54 
56  FieldIndex,
57  NULL,
58  0,
59  &dwSize);
60  if (!Success)
61  return FALSE;
62 
63  InfData = RtlAllocateHeap(ProcessHeap, 0, dwSize * sizeof(WCHAR));
64  if (!InfData)
65  return FALSE;
66 
68  FieldIndex,
69  InfData,
70  dwSize,
71  NULL);
72  if (!Success)
73  {
74  RtlFreeHeap(ProcessHeap, 0, InfData);
75  return FALSE;
76  }
77 
78  *Data = InfData;
79  return TRUE;
80 
81 #else
82 
84  return !!*Data;
85 
86 #endif
87 }
#define TRUE
Definition: types.h:120
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
Definition: heap.c:606
uint16_t * PWCHAR
Definition: typedefs.h:54
unsigned int BOOL
Definition: ntddk_ex.h:94
smooth NULL
Definition: ftsmooth.c:416
_In_ LPGUID _In_ PVOID Data
Definition: classpnp.h:778
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
Definition: heap.c:588
__wchar_t WCHAR
Definition: xmlstorage.h:180
_In_ DWORD FieldIndex
Definition: setupapi.h:1890
pSpInfGetStringField SpInfGetStringField
Definition: infsupp.c:93
unsigned long DWORD
Definition: ntddk_ex.h:95
pSpInfGetField SpInfGetField
Definition: infsupp.c:94
HANDLE ProcessHeap
Definition: servman.c:15
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:54

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