24 {
'S',
'o',
'u',
'r',
'c',
'e',
'D',
'i',
's',
'k',
's',
'N',
'a',
'm',
'e',
's',0};
26 {
'S',
'o',
'u',
'r',
'c',
'e',
'D',
'i',
's',
'k',
's',
'F',
'i',
'l',
'e',
's',0};
37 if (required) *required = total_size;
42 if (
size < total_size)
60 static const WCHAR infW[] = {
'\\',
'i',
'n',
'f',
'\\',0};
61 static const WCHAR system32W[] = {
'\\',
's',
'y',
's',
't',
'e',
'm',
'3',
'2',
'\\',0};
253 TRACE(
"(%p, %u, %p, %d, %p) Stub!\n", InfInformation, InfIndex,
263 FIXME(
"Appended INF files are not handled\n");
297 TRACE(
"%p, %p, %s, %p, %p, 0x%08x, %p\n", hinf,
context,
debugstr_a(
filename),
source_id,
313 if (required_size) *required_size =
size;
384 TRACE(
"%p, %p, %s, %p, %p, 0x%08x, %p\n", hinf,
context,
debugstr_w(
filename),
source_id,
393 if (
end == source_id_str || *
end)
403 if (required_size) *required_size = 1;
428 TRACE(
"%p, %d, %d, %p, %d, %p\n", hinf,
source_id,
info,
buffer,
buffer_size,
441 if (required_size) *required_size =
size;
469 WCHAR source_id_str[11];
470 static const WCHAR fmt[] = {
'%',
'd',0};
473 TRACE(
"%p, %d, %d, %p, %d, %p\n", hinf,
source_id,
info,
buffer,
buffer_size,
491 WARN(
"unknown info level: %d\n",
info);
498 if (required_size) *required_size = 1;
523 TRACE(
"%p, %p, %s, %p, 0x%08x, %p\n", hinf,
context,
debugstr_a(
section),
buffer,
539 if (required_size) *required_size =
size;
566 static const WCHAR destination_dirs[] =
567 {
'D',
'e',
's',
't',
'i',
'n',
'a',
't',
'i',
'o',
'n',
'D',
'i',
'r',
's',0};
568 static const WCHAR default_dest_dir[] =
569 {
'D',
'e',
'f',
'a',
'u',
'l',
't',
'D',
'e',
's',
't',
'D',
'i',
'r',0};
576 TRACE(
"%p, %p, %s, %p, 0x%08x, %p\n", hinf,
context,
debugstr_w(
section),
buffer,
591 if (required_size) *required_size =
size;
619 TRACE(
"(%p, %d, %p, %p)\n", InfInformation, InfIndex,
620 AlternativePlatformInfo, OriginalFileInfo);
622 if (OriginalFileInfo->
cbSize !=
sizeof(*OriginalFileInfo))
624 WARN(
"incorrect OriginalFileInfo->cbSize of %d\n", OriginalFileInfo->
cbSize);
629 OriginalFileInfoW.
cbSize =
sizeof(OriginalFileInfoW);
631 AlternativePlatformInfo, &OriginalFileInfoW);
654 static const WCHAR wszVersion[] = {
'V',
'e',
'r',
's',
'i',
'o',
'n',0 };
655 static const WCHAR wszCatalogFile[] = {
'C',
'a',
't',
'a',
'l',
'o',
'g',
'F',
'i',
'l',
'e',0 };
657 FIXME(
"(%p, %d, %p, %p): semi-stub\n", InfInformation, InfIndex,
658 AlternativePlatformInfo, OriginalFileInfo);
660 if (OriginalFileInfo->
cbSize !=
sizeof(*OriginalFileInfo))
662 WARN(
"incorrect OriginalFileInfo->cbSize of %d\n", OriginalFileInfo->
cbSize);
688 inf_name =
strrchrW(inf_path,
'\\');
689 if (inf_name) inf_name++;
690 else inf_name = inf_path;
static const WCHAR infW[]
#define ERROR_NOT_ENOUGH_MEMORY
#define ERROR_INSUFFICIENT_BUFFER
static WCHAR * strdupAtoW(const char *str)
#define ERROR_INVALID_PARAMETER
#define INVALID_HANDLE_VALUE
#define HeapFree(x, y, z)
#define ERROR_INVALID_HANDLE
#define WideCharToMultiByte
#define MultiByteToWideChar
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
BOOL WINAPI SetupDiGetActualSectionToInstallW(HINF InfHandle, PCWSTR InfSectionName, PWSTR InfSectionWithExt, DWORD InfSectionWithExtSize, PDWORD RequiredSize, PWSTR *Extension)
const WCHAR * PARSER_get_inf_filename(HINF hinf)
HINF WINAPI SetupOpenInfFileW(PCWSTR name, PCWSTR class, DWORD style, UINT *error)
WCHAR * PARSER_get_dest_dir(INFCONTEXT *context)
BOOL WINAPI SetupGetLineTextW(PINFCONTEXT context, HINF hinf, PCWSTR section_name, PCWSTR key_name, PWSTR buffer, DWORD size, PDWORD required)
BOOL WINAPI SetupGetInfInformationA(LPCVOID InfSpec, DWORD SearchControl, PSP_INF_INFORMATION ReturnBuffer, DWORD ReturnBufferSize, PDWORD RequiredSize)
static const WCHAR source_disks_names[]
BOOL WINAPI SetupGetInfInformationW(LPCVOID InfSpec, DWORD SearchControl, PSP_INF_INFORMATION ReturnBuffer, DWORD ReturnBufferSize, PDWORD RequiredSize)
BOOL WINAPI SetupGetTargetPathW(HINF hinf, PINFCONTEXT context, PCWSTR section, PWSTR buffer, DWORD buffer_size, PDWORD required_size)
BOOL WINAPI SetupQueryInfFileInformationA(PSP_INF_INFORMATION InfInformation, UINT InfIndex, PSTR ReturnBuffer, DWORD ReturnBufferSize, PDWORD RequiredSize)
BOOL WINAPI SetupGetTargetPathA(HINF hinf, PINFCONTEXT context, PCSTR section, PSTR buffer, DWORD buffer_size, PDWORD required_size)
BOOL WINAPI SetupQueryInfOriginalFileInformationW(PSP_INF_INFORMATION InfInformation, UINT InfIndex, PSP_ALTPLATFORM_INFO AlternativePlatformInfo, PSP_ORIGINAL_FILE_INFO_W OriginalFileInfo)
static LPWSTR get_source_id(HINF hinf, PINFCONTEXT context, PCWSTR filename)
BOOL WINAPI SetupQueryInfOriginalFileInformationA(PSP_INF_INFORMATION InfInformation, UINT InfIndex, PSP_ALTPLATFORM_INFO AlternativePlatformInfo, PSP_ORIGINAL_FILE_INFO_A OriginalFileInfo)
static HINF search_for_inf(LPCVOID InfSpec, DWORD SearchControl)
static const WCHAR source_disks_files[]
BOOL WINAPI SetupQueryInfFileInformationW(PSP_INF_INFORMATION InfInformation, UINT InfIndex, PWSTR ReturnBuffer, DWORD ReturnBufferSize, PDWORD RequiredSize)
BOOL WINAPI SetupGetSourceFileLocationA(HINF hinf, PINFCONTEXT context, PCSTR filename, PUINT source_id, PSTR buffer, DWORD buffer_size, PDWORD required_size)
BOOL WINAPI SetupGetSourceFileLocationW(HINF hinf, PINFCONTEXT context, PCWSTR filename, PUINT source_id, PWSTR buffer, DWORD buffer_size, PDWORD required_size)
BOOL WINAPI SetupGetSourceInfoA(HINF hinf, UINT source_id, UINT info, PSTR buffer, DWORD buffer_size, LPDWORD required_size)
static BOOL fill_inf_info(HINF inf, PSP_INF_INFORMATION buffer, DWORD size, DWORD *required)
BOOL WINAPI SetupGetSourceInfoW(HINF hinf, UINT source_id, UINT info, PWSTR buffer, DWORD buffer_size, LPDWORD required_size)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define ERROR_FILE_NOT_FOUND
static const WCHAR filenameW[]
#define SRCINFO_DESCRIPTION
#define INFINFO_INF_NAME_IS_ABSOLUTE
#define INFINFO_DEFAULT_SEARCH
#define INFINFO_REVERSE_DEFAULT_SEARCH
#define INFINFO_INF_PATH_LIST_SEARCH
#define INFINFO_INF_SPEC_IS_HINF
_In_ DWORD _In_ DWORD ReturnBufferSize
CHAR OriginalCatalogName[MAX_PATH]
CHAR OriginalInfName[MAX_PATH]
WCHAR OriginalCatalogName[MAX_PATH]
WCHAR OriginalInfName[MAX_PATH]
static void buffer_size(GLcontext *ctx, GLuint *width, GLuint *height)
#define FIELD_OFFSET(t, f)
BOOL WINAPI SetupGetStringFieldW(IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT PWSTR ReturnBuffer, IN ULONG ReturnBufferSize, OUT PULONG RequiredSize)
BOOL WINAPI SetupFindFirstLineW(IN HINF InfHandle, IN PCWSTR Section, IN PCWSTR Key, IN OUT PINFCONTEXT Context)
VOID WINAPI SetupCloseInfFile(IN HINF InfHandle)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
#define ERROR_INVALID_USER_BUFFER