12#define FIELD_OFFSET(t,f) ((ptrdiff_t)&(((t*)0)->f))
15#define INF_STATUS_INSUFFICIENT_RESOURCES ((INFSTATUS)0xC000009A)
16#define INF_STATUS_BAD_SECTION_NAME_LINE ((INFSTATUS)0xC0700001)
17#define INF_STATUS_SECTION_NAME_TOO_LONG ((INFSTATUS)0xC0700002)
18#define INF_STATUS_WRONG_INF_STYLE ((INFSTATUS)0xC0700003)
19#define INF_STATUS_NOT_ENOUGH_MEMORY ((INFSTATUS)0xC0700004)
INFSTATUS InfpGetDataField(PINFCONTEXT Context, ULONG FieldIndex, PWCHAR *Data)
INFSTATUS InfpGetIntField(PINFCONTEXT Context, ULONG FieldIndex, INT *IntegerValue)
PINFCACHELINE InfpFindLineById(PINFCACHESECTION Section, UINT Id)
INFSTATUS InfpFindFirstMatchLine(PINFCONTEXT ContextIn, PCWSTR Key, PINFCONTEXT ContextOut)
VOID InfpFreeContext(PINFCONTEXT Context)
PINFCACHELINE InfpGetLineForContext(PINFCONTEXT Context)
struct _INFCACHEFIELD * PINFCACHEFIELD
INFSTATUS InfpFindOrAddSection(PINFCACHE Cache, PCWSTR Section, PINFCONTEXT *Context)
INFSTATUS InfpAddLineWithKey(PINFCONTEXT Context, PCWSTR Key)
PINFCACHESECTION InfpFreeSection(PINFCACHESECTION Section)
struct _INFCACHESECTION * PINFCACHESECTION
INFSTATUS InfpFindFirstLine(PINFCACHE InfHandle, PCWSTR Section, PCWSTR Key, PINFCONTEXT *Context)
INFSTATUS InfpGetStringField(PINFCONTEXT Context, ULONG FieldIndex, PWSTR ReturnBuffer, ULONG ReturnBufferSize, PULONG RequiredSize)
PVOID InfpAddKeyToLine(PINFCACHELINE Line, PCWSTR Key)
struct _INFCACHELINE INFCACHELINE
struct _INFCACHESECTION INFCACHESECTION
INFSTATUS InfpParseBuffer(PINFCACHE file, const WCHAR *buffer, const WCHAR *end, PULONG error_line)
LONG InfpGetLineCount(HINF InfHandle, PCWSTR Section)
LONG InfpGetFieldCount(PINFCONTEXT Context)
PINFCACHELINE InfpFindKeyLine(PINFCACHESECTION Section, PCWSTR Key)
INFSTATUS InfpGetData(PINFCONTEXT Context, PWCHAR *Key, PWCHAR *Data)
struct _INFCONTEXT INFCONTEXT
PINFCACHESECTION InfpFindSection(PINFCACHE Cache, PCWSTR Section)
INFSTATUS InfpGetMultiSzField(PINFCONTEXT Context, ULONG FieldIndex, PWSTR ReturnBuffer, ULONG ReturnBufferSize, PULONG RequiredSize)
INFSTATUS InfpBuildFileBuffer(PINFCACHE InfHandle, PWCHAR *Buffer, PULONG BufferSize)
PVOID InfpAddFieldToLine(PINFCACHELINE Line, PCWSTR Data)
PINFCACHESECTION InfpGetSectionForContext(PINFCONTEXT Context)
PINFCACHELINE InfpAddLine(PINFCACHESECTION Section)
INFSTATUS InfpFindNextLine(PINFCONTEXT ContextIn, PINFCONTEXT ContextOut)
INFSTATUS InfpGetBinaryField(PINFCONTEXT Context, ULONG FieldIndex, PUCHAR ReturnBuffer, ULONG ReturnBufferSize, PULONG RequiredSize)
INFSTATUS InfpAddField(PINFCONTEXT Context, PCWSTR Data)
struct _INFCACHELINE * PINFCACHELINE
INFSTATUS InfpFindNextMatchLine(PINFCONTEXT ContextIn, PCWSTR Key, PINFCONTEXT ContextOut)
struct _INFCACHE * PINFCACHE
struct _INFCACHEFIELD INFCACHEFIELD
struct _INFCACHE INFCACHE
PINFCACHESECTION InfpAddSection(PINFCACHE Cache, PCWSTR Name)
_In_ DWORD _In_ DWORD ReturnBufferSize
struct _INFCACHEFIELD * Next
struct _INFCACHEFIELD * Prev
PINFCACHEFIELD FirstField
struct _INFCACHELINE * Prev
struct _INFCACHELINE * Next
struct _INFCACHESECTION * Prev
struct _INFCACHESECTION * Next
PINFCACHESECTION FirstSection
PINFCACHESECTION LastSection
PINFCACHESECTION StringsSection
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize