ReactOS 0.4.16-dev-297-gc569aee
data.c
Go to the documentation of this file.
1/*
2 * PROJECT: apphelp_apitest
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: Common data / functions for apphelp_apitest
5 * COPYRIGHT: Copyright 2015-2018 Mark Jansen (mark.jansen@reactos.org)
6 */
7
8#include <exdisp.h>
9#include <winbase.h>
10#include "wine/test.h"
11
12
14{
15 IMAGE_DOS_SIGNATURE, /* e_magic */
16 144, /* e_cblp */
17 3, /* e_cp */
18 0, /* e_crlc */
19 4, /* e_cparhdr */
20 0, /* e_minalloc */
21 65535, /* e_maxalloc */
22 0, /* e_ss */
23 184, /* e_sp */
24 0, /* e_csum */
25 0, /* e_ip */
26 0, /* e_cs */
27 64, /* e_lfarlc */
28 0, /* e_ovno */
29 { 0 }, /* e_res[4] */
30 0, /* e_oemid */
31 0, /* e_oeminfo */
32 { 0 }, /* e_res2[10] */
33 0x80 /* e_lfanew */
34};
35
37{
38 IMAGE_NT_SIGNATURE, /* Signature */
39 {
40 IMAGE_FILE_MACHINE_I386, /* Machine */
41 2, /* NumberOfSections */
42 0x12345, /* TimeDateStamp */
43 0, /* PointerToSymbolTable */
44 0, /* NumberOfSymbols */
45 sizeof(IMAGE_OPTIONAL_HEADER), /* SizeOfOptionalHeader */
47 },
48 {
50 6, /* MajorLinkerVersion */
51 3, /* MinorLinkerVersion */
52 0, /* SizeOfCode */
53 0, /* SizeOfInitializedData */
54 0, /* SizeOfUninitializedData */
55 0x1000, /* AddressOfEntryPoint */
56 0x1000, /* BaseOfCode */
57 0, /* BaseOfData */
58 0x400000, /* ImageBase */
59 0x1000, /* SectionAlignment */
60 0x200, /* FileAlignment */
61 4, /* MajorOperatingSystemVersion */
62 1, /* MinorOperatingSystemVersion */
63 4, /* MajorImageVersion */
64 2, /* MinorImageVersion */
65 4, /* MajorSubsystemVersion */
66 3, /* MinorSubsystemVersion */
67 0, /* Win32VersionValue */
68 0x3000, /* SizeOfImage */
69 0x200, /* SizeOfHeaders */
70 0xBAAD, /* CheckSum: This checksum is not the correct checksum, intentionally! */
71 IMAGE_SUBSYSTEM_WINDOWS_CUI, /* Subsystem */
72 0, /* DllCharacteristics */
73 0x100000, /* SizeOfStackReserve */
74 0x1000, /* SizeOfStackCommit */
75 0x100000, /* SizeOfHeapReserve */
76 0x1000, /* SizeOfHeapCommit */
77 0, /* LoaderFlags */
78 0x10, /* NumberOfRvaAndSizes */
79 {
80 /* IMAGE_DIRECTORY_ENTRY_EXPORT */
81 {
82 0x2370, /* VirtualAddress */
83 76, /* Size */
84 },
85 { 0 },
86 /* IMAGE_DIRECTORY_ENTRY_RESOURCE */
87 {
88 0x2000, /* VirtualAddress */
89 868, /* Size */
90 },
91 } /* DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES] */
92 }
93};
94
96{
97 {
98 { '.','t','e','x','t',0 }, /* Name */
99 { 24 }, /* VirtualSize */
100 0x1000, /* VirtualAddress */
101 0x200, /* SizeOfRawData */
102 0x200, /* PointerToRawData */
103 0, /* PointerToRelocations */
104 0, /* PointerToLinenumbers */
105 0, /* NumberOfRelocations */
106 0, /* NumberOfLinenumbers */
108 },
109 {
110 { '.','r','s','r','c',0 }, /* Name */
111 { 880 }, /* VirtualSize */
112 0x2000, /* VirtualAddress */
113 0x400, /* SizeOfRawData */
114 0x400, /* PointerToRawData */
115 0, /* PointerToRelocations */
116 0, /* PointerToLinenumbers */
117 0, /* NumberOfRelocations */
118 0, /* NumberOfLinenumbers */
120 }
121};
122
123static const unsigned char text_section[] =
124{
125 0x33, 0xc0, /* xor eax, eax */
126 0xc3 /* ret */
127};
128
129
130/* taken from fusionpriv.h */
131typedef struct
132{
133 WORD wLength;
134 WORD wValueLength;
135 WORD wType;
136 WCHAR szKey[17];
139
140typedef struct
141{
142 WORD wLength;
143 WORD wValueLength;
144 WORD wType;
145 WCHAR szKey[15];
147
148typedef struct
149{
150 WORD wLength;
151 WORD wValueLength;
152 WORD wType;
153 WCHAR szKey[9];
155
156typedef struct
157{
158 WORD wLength;
159 WORD wValueLength;
160 WORD wType;
161} STRINGHDR;
162
163typedef struct
164{
165 WORD wLength;
166 WORD wValueLength;
167 WORD wType;
168 WCHAR szKey[13];
170
171typedef struct
172{
173 WORD wLength;
174 WORD wValueLength;
175 WORD wType;
176 WCHAR szKey[13];
177 DWORD Value;
178} VAR;
179
180typedef struct rsrc_section_t
181{
189
193
197
201
205
209
213
217
221
225
229
233
234#define RT_VERSION_DW 16
236{
237 /* header */
238 {
239 0, /* Characteristics */
240 0x55FE8E21, /* TimeDateStamp, 20/09/2015 10:44:49 */
241 0, /* MajorVersion */
242 0, /* MinorVersion */
243 0, /* NumberOfNamedEntries */
244 1, /* NumberOfIdEntries */
245 },
246 /* file_info_id */
247 {
248 {{
249 RT_VERSION_DW, /* NameOffset:31 */
250 0 /* NameIsString:1 */
251 }},
252 {
253 0x80000018 /* OffsetToData */
254 }
255 },
256 /* file_info_header */
257 {
258 0, /* Characteristics */
259 0x55FE8E21, /* TimeDateStamp, 20/09/2015 10:44:49 */
260 0, /* MajorVersion */
261 0, /* MinorVersion */
262 0, /* NumberOfNamedEntries */
263 1, /* NumberOfIdEntries */
264 },
265 /* version_info_id */
266 {
267 {{
268 VS_VERSION_INFO, /* NameOffset:31 */
269 0 /* NameIsString:1 */
270 }},
271 {
272 0x80000030 /* OffsetToData */
273 },
274 },
275 /* version_info_header */
276 {
277 0, /* Characteristics */
278 0x55FE8E21, /* TimeDateStamp, 20/09/2015 10:44:49 */
279 0, /* MajorVersion */
280 0, /* MinorVersion */
281 0, /* NumberOfNamedEntries */
282 1, /* NumberOfIdEntries */
283 },
284 /* version_lang_id */
285 {
286 {{
287 1033, /* NameOffset:31 */
288 0 /* NameIsString:1 */
289 }},
290 {
291 0x48 /* OffsetToDirectory */
292 }
293 },
294 /* version_data_entry */
295 {
296 0x2058, /* OffsetToData */
297 0x30C, /* Size */
298 0, /* CodePage */
299 0, /* Reserved */
300 },
301
302 /* version_info */
303 {
304 0x30C, /* wLength */
305 0x34, /* wValueLength */
306 0, /* wType: Binary */
307 { 'V','S','_','V','E','R','S','I','O','N','_','I','N','F','O','\0','\0' }, /* szKey[17] */
308 /* Value */
309 {
310 0xFEEF04BD, /* dwSignature */
311 0x10000, /* dwStrucVersion */
312 0x10000, /* dwFileVersionMS */
313 0, /* dwFileVersionLS */
314 0x10000, /* dwProductVersionMS */
315 1, /* dwProductVersionLS */
316 0, /* dwFileFlagsMask */
317 0, /* dwFileFlags */
318 VOS__WINDOWS32, /* dwFileOS */
319 VFT_APP, /* dwFileType */
320 0, /* dwFileSubtype */
321 0x01d1a019, /* dwFileDateMS */
322 0xac754c50 /* dwFileDateLS */
323 },
324 },
325
326 /* string_file_info */
327 {
328 0x26C, /* wLength */
329 0, /* wValueLength */
330 1, /* wType: Text */
331 { 'S','t','r','i','n','g','F','i','l','e','I','n','f','o','\0' } /* szKey[15] */
332 },
333 /* string_table */
334 {
335 0x248, /* wLength */
336 0, /* wValueLength */
337 1, /* wType: Text */
338 { 'F','F','F','F','0','0','0','0','\0' } /* szKey[9] */
339 },
340
341 /* FileVersion */
342 {
343 48, /* wLength */
344 8, /* wValueLength */
345 1, /* wType: Text */
346 },
347 { 'F','i','l','e','V','e','r','s','i','o','n','\0' },
348 { '1','.','0','.','0','.','0','\0' },
349
350 /* ProductVersion */
351 {
352 52, /* wLength */
353 8, /* wValueLength */
354 1, /* wType: Text */
355 },
356 { 'P','r','o','d','u','c','t','V','e','r','s','i','o','n','\0' },
357 { '1','.','0','.','0','.','1','\0' },
358
359 /* CompanyName */
360 {
361 56, /* wLength */
362 12, /* wValueLength */
363 1, /* wType: Text */
364 },
365 { 'C','o','m','p','a','n','y','N','a','m','e','\0' },
366 { 'C','o','m','p','a','n','y','N','a','m','e','\0' },
367
368 /* FileDescription */
369 {
370 72, /* wLength */
371 16, /* wValueLength */
372 1, /* wType: Text */
373 },
374 { 'F','i','l','e','D','e','s','c','r','i','p','t','i','o','n','\0' },
375 { 'F','i','l','e','D','e','s','c','r','i','p','t','i','o','n','\0' },
376
377 /* InternalName */
378 {
379 58, /* wLength */
380 13, /* wValueLength */
381 1, /* wType: Text */
382 },
383 { 'I','n','t','e','r','n','a','l','N','a','m','e','\0' },
384 { 'I','n','t','e','r','n','a','l','N','a','m','e','\0' },
385
386 /* LegalCopyright */
387 {
388 66, /* wLength */
389 15, /* wValueLength */
390 1, /* wType: Text */
391 },
392 { 'L','e','g','a','l','C','o','p','y','r','i','g','h','t','\0' },
393 { 'L','e','g','a','l','C','o','p','y','r','i','g','h','t','\0' },
394
395 /* LegalTrademarks */
396 {
397 72, /* wLength */
398 16, /* wValueLength */
399 1, /* wType: Text */
400 },
401 { 'L','e','g','a','l','T','r','a','d','e','m','a','r','k','s','\0' },
402 { 'L','e','g','a','l','T','r','a','d','e','m','a','r','k','s','\0' },
403
404 /* OriginalFilename */
405 {
406 74, /* wLength */
407 17, /* wValueLength */
408 1, /* wType: Text */
409 },
410 { 'O','r','i','g','i','n','a','l','F','i','l','e','n','a','m','e','\0' },
411 { 'O','r','i','g','i','n','a','l','F','i','l','e','n','a','m','e','\0' },
412
413 /* ProductName */
414 {
415 56, /* wLength */
416 12, /* wValueLength */
417 1, /* wType: Text */
418 },
419 { 'P','r','o','d','u','c','t','N','a','m','e','\0' },
420 { 'P','r','o','d','u','c','t','N','a','m','e','\0' },
421
422
423 /* file_info */
424 {
425 0x44, /* wLength */
426 0, /* wValueLength */
427 1, /* wType: Text */
428 { 'V','a','r','F','i','l','e','I','n','f','o','\0' } /* szKey[13] */
429 },
430
431 /* translation */
432 {
433 0x24, /* wLength */
434 4, /* wValueLength */
435 0, /* wType: Binary */
436 { 'T','r','a','n','s','l','a','t','i','o','n','\0' }, /* szKey[13] */
437 0xffff /* Value */
438 }
439};
440
441typedef struct export_section_t
442{
444 char binary_name[10];
446
447/* This export section is not complete, but the Name RVA is only taken into account */
449{
450 {
451 0, /* Characteristics */
452 0, /* TimeDateStamp */
453 0, /* MajorVersion */
454 0, /* MinorVersion */
455 0x2398, /* Name (RVA) */
456 1, /* Base */
457 0, /* NumberOfFunctions */
458 0, /* NumberOfNames */
459 0, /* AddressOfFunctions (RVA) */
460 0, /* AddressOfNames (RVA) */
461 0, /* AddressOfNameOrdinals (RVA) */
462 },
463 { 'T','e','S','t','2','.','e','x','e',0 }, /* binary_name */
464};
465
466
467void test_create_exe_imp(const WCHAR* name, int skip_rsrc_exports)
468{
469 HANDLE file;
470 char *buf, *cur;
471 DWORD size = 0x800;
472
473 buf = malloc(size);
474 winetest_ok(buf != NULL, "malloc failed\n");
475 if (buf == NULL)
476 {
477 return;
478 }
479
481 winetest_ok(file != INVALID_HANDLE_VALUE, "can't create file\n");
483 {
484 free(buf);
485 return;
486 }
487
488 memset(buf, 0, size);
489 cur = memcpy(buf, &dos_header, sizeof(dos_header));
491
492 memcpy(cur, &nt_header, sizeof(nt_header));
493 if (skip_rsrc_exports)
494 {
495 ((IMAGE_NT_HEADERS32*)cur)->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress = 0;
496 ((IMAGE_NT_HEADERS32*)cur)->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress = 0;
497 }
498 cur += sizeof(nt_header);
500
501 /* write code section: */
504
505 if (!skip_rsrc_exports)
506 {
507 /* write resource section: */
510
511 /* write minimal export directory: */
512 cur += 0x370;
513 memcpy(cur, &export_dir, sizeof(export_dir));
514 }
515
517 free(buf);
519}
520
521
522/* Almost everything in this filetype is ignored, only e_lfanew, ne_restab and ne_nrestab are relevant */
523void test_create_ne_imp(const WCHAR* name, int skip_names)
524{
525 HANDLE file;
526 DWORD size;
529 static const BYTE NE_names[] =
530 {
531 /* Show that the length is used, not the nullterm*/
532 11,'T','E','S','T','M','O','D','.','h','X','x','x',0,0,0,
533 20,'M','O','D',' ','D','E','S','C','R','I','P','T','I','O','N',' ','H','E','R','E',0,0,0
534 };
535
537 winetest_ok(file != INVALID_HANDLE_VALUE, "can't create file\n");
539 return;
540
541 MZ_hdr.e_lfanew = sizeof(MZ_hdr);
542 if (!skip_names)
543 {
544 NE_hdr.ne_restab = sizeof(NE_hdr); /* First entry (pascal string + ordinal) = module name */
545 NE_hdr.ne_nrestab = sizeof(MZ_hdr) + sizeof(NE_hdr) + 16; /* First entry (pascal string + ordinal) = module description */
546 }
547
548 WriteFile(file, &MZ_hdr, sizeof(MZ_hdr), &size, NULL);
549 WriteFile(file, &NE_hdr, sizeof(NE_hdr), &size, NULL);
550 WriteFile(file, NE_names, sizeof(NE_names), &size, NULL);
551
553}
554
555void test_create_file_imp(const WCHAR* name, const char* contents, size_t len)
556{
558 winetest_ok(file != INVALID_HANDLE_VALUE, "can't create file\n");
560 {
561 if (contents && len)
562 {
563 DWORD size;
565 }
567 }
568}
569
570static unsigned char win10Header[8] = {
571 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
572};
573static unsigned char rawData[2356] = {
574 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x73, 0x64, 0x62, 0x66,
575 0x02, 0x78, 0x3E, 0x01, 0x00, 0x00, 0x03, 0x78, 0x44, 0x00, 0x00, 0x00,
576 0x02, 0x38, 0x07, 0x70, 0x03, 0x38, 0x01, 0x60, 0x16, 0x40, 0x01, 0x00,
577 0x00, 0x00, 0x01, 0x98, 0x30, 0x00, 0x00, 0x00, 0x4C, 0x4C, 0x41, 0x5F,
578 0x54, 0x53, 0x45, 0x54, 0xC6, 0x01, 0x00, 0x00, 0x53, 0x49, 0x44, 0x5F,
579 0x54, 0x53, 0x45, 0x54, 0x56, 0x02, 0x00, 0x00, 0x57, 0x45, 0x4E, 0x5F,
580 0x54, 0x53, 0x45, 0x54, 0xEC, 0x02, 0x00, 0x00, 0x4B, 0x32, 0x57, 0x5F,
581 0x54, 0x53, 0x45, 0x54, 0x7C, 0x03, 0x00, 0x00, 0x03, 0x78, 0x0E, 0x00,
582 0x00, 0x00, 0x02, 0x38, 0x07, 0x70, 0x03, 0x38, 0x0B, 0x60, 0x01, 0x98,
583 0x00, 0x00, 0x00, 0x00, 0x03, 0x78, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x38,
584 0x07, 0x70, 0x03, 0x38, 0x20, 0x60, 0x01, 0x98, 0x00, 0x00, 0x00, 0x00,
585 0x03, 0x78, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x38, 0x04, 0x70, 0x03, 0x38,
586 0x01, 0x60, 0x01, 0x98, 0x00, 0x00, 0x00, 0x00, 0x03, 0x78, 0x26, 0x00,
587 0x00, 0x00, 0x02, 0x38, 0x0D, 0x70, 0x03, 0x38, 0x15, 0x40, 0x01, 0x98,
588 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
589 0x74, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
590 0x50, 0x04, 0x00, 0x00, 0x03, 0x78, 0x14, 0x00, 0x00, 0x00, 0x02, 0x38,
591 0x10, 0x70, 0x03, 0x38, 0x01, 0x60, 0x16, 0x40, 0x01, 0x00, 0x00, 0x00,
592 0x01, 0x98, 0x00, 0x00, 0x00, 0x00, 0x03, 0x78, 0x0E, 0x00, 0x00, 0x00,
593 0x02, 0x38, 0x12, 0x70, 0x03, 0x38, 0x06, 0x90, 0x01, 0x98, 0x00, 0x00,
594 0x00, 0x00, 0x03, 0x78, 0x14, 0x00, 0x00, 0x00, 0x02, 0x38, 0x12, 0x70,
595 0x03, 0x38, 0x04, 0x90, 0x16, 0x40, 0x01, 0x00, 0x00, 0x00, 0x01, 0x98,
596 0x00, 0x00, 0x00, 0x00, 0x03, 0x78, 0x3E, 0x00, 0x00, 0x00, 0x02, 0x38,
597 0x07, 0x70, 0x03, 0x38, 0x04, 0x90, 0x01, 0x98, 0x30, 0x00, 0x00, 0x00,
598 0xED, 0xB4, 0x89, 0x50, 0xB1, 0xA4, 0x82, 0xA7, 0xEC, 0x02, 0x00, 0x00,
599 0x85, 0x2B, 0x88, 0x40, 0x97, 0x76, 0xA6, 0xC4, 0xC6, 0x01, 0x00, 0x00,
600 0x77, 0x7A, 0xBF, 0x48, 0x78, 0xB1, 0x69, 0xD2, 0x56, 0x02, 0x00, 0x00,
601 0xD0, 0x15, 0xE6, 0xCB, 0xE8, 0x90, 0x68, 0xFE, 0x7C, 0x03, 0x00, 0x00,
602 0x01, 0x70, 0x42, 0x03, 0x00, 0x00, 0x01, 0x50, 0x3E, 0xD6, 0xC0, 0x02,
603 0x1A, 0xB9, 0xD1, 0x01, 0x22, 0x60, 0x06, 0x00, 0x00, 0x00, 0x01, 0x60,
604 0x1C, 0x00, 0x00, 0x00, 0x23, 0x40, 0x01, 0x00, 0x00, 0x00, 0x07, 0x90,
605 0x10, 0x00, 0x00, 0x00, 0xB0, 0x0E, 0x9B, 0xE3, 0xDB, 0x55, 0x0B, 0x45,
606 0x9B, 0xD4, 0xD2, 0x0C, 0x94, 0x84, 0x26, 0x0F, 0x02, 0x70, 0x00, 0x00,
607 0x00, 0x00, 0x0B, 0x70, 0x32, 0x00, 0x00, 0x00, 0x01, 0x60, 0x3E, 0x00,
608 0x00, 0x00, 0x09, 0x70, 0x26, 0x00, 0x00, 0x00, 0x01, 0x60, 0x5C, 0x00,
609 0x00, 0x00, 0x08, 0x60, 0x82, 0x00, 0x00, 0x00, 0x03, 0x70, 0x06, 0x00,
610 0x00, 0x00, 0x03, 0x60, 0xA0, 0x00, 0x00, 0x00, 0x03, 0x70, 0x08, 0x00,
611 0x00, 0x00, 0x01, 0x10, 0x03, 0x60, 0xBE, 0x00, 0x00, 0x00, 0x07, 0x70,
612 0x8A, 0x00, 0x00, 0x00, 0x01, 0x60, 0xDC, 0x00, 0x00, 0x00, 0x06, 0x60,
613 0x00, 0x01, 0x00, 0x00, 0x05, 0x60, 0x2C, 0x01, 0x00, 0x00, 0x04, 0x90,
614 0x10, 0x00, 0x00, 0x00, 0x3F, 0xC9, 0x50, 0x4E, 0x63, 0xB8, 0xFA, 0x4D,
615 0xBA, 0xE2, 0xD8, 0x0E, 0xF4, 0xCE, 0x5C, 0x89, 0x0D, 0x70, 0x24, 0x00,
616 0x00, 0x00, 0x17, 0x40, 0x01, 0x00, 0x00, 0x00, 0x10, 0x40, 0x01, 0x00,
617 0x00, 0x00, 0x15, 0x40, 0x01, 0x00, 0x00, 0x00, 0x24, 0x40, 0x72, 0x00,
618 0x6F, 0x00, 0x25, 0x40, 0x67, 0x00, 0x72, 0x00, 0x26, 0x40, 0x00, 0x00,
619 0x00, 0x00, 0x08, 0x70, 0x32, 0x00, 0x00, 0x00, 0x01, 0x60, 0x5C, 0x01,
620 0x00, 0x00, 0x09, 0x60, 0x66, 0x01, 0x00, 0x00, 0x10, 0x60, 0x84, 0x01,
621 0x00, 0x00, 0x11, 0x60, 0xA2, 0x01, 0x00, 0x00, 0x13, 0x60, 0xB8, 0x01,
622 0x00, 0x00, 0x06, 0x50, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
623 0x0D, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x70,
624 0x90, 0x00, 0x00, 0x00, 0x01, 0x60, 0xCE, 0x01, 0x00, 0x00, 0x06, 0x60,
625 0xF8, 0x01, 0x00, 0x00, 0x05, 0x60, 0x2A, 0x02, 0x00, 0x00, 0x04, 0x90,
626 0x10, 0x00, 0x00, 0x00, 0xE1, 0x20, 0x67, 0x15, 0x98, 0xEF, 0x04, 0x4D,
627 0x96, 0x5A, 0xD8, 0x5D, 0xE0, 0x5E, 0x6D, 0x9F, 0x0D, 0x70, 0x24, 0x00,
628 0x00, 0x00, 0x17, 0x40, 0x01, 0x00, 0x00, 0x00, 0x10, 0x40, 0x02, 0x00,
629 0x00, 0x00, 0x15, 0x40, 0x02, 0x00, 0x00, 0x00, 0x24, 0x40, 0x20, 0x00,
630 0x32, 0x00, 0x25, 0x40, 0x2E, 0x00, 0x38, 0x00, 0x26, 0x40, 0x00, 0x00,
631 0x00, 0x00, 0x08, 0x70, 0x38, 0x00, 0x00, 0x00, 0x01, 0x60, 0x5C, 0x01,
632 0x00, 0x00, 0x09, 0x60, 0x66, 0x01, 0x00, 0x00, 0x10, 0x60, 0x84, 0x01,
633 0x00, 0x00, 0x11, 0x60, 0xA2, 0x01, 0x00, 0x00, 0x02, 0x50, 0x00, 0x00,
634 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x50, 0x01, 0x00, 0x00, 0x00,
635 0x00, 0x00, 0x01, 0x00, 0x0B, 0x40, 0xAD, 0xBA, 0x00, 0x00, 0x13, 0x60,
636 0xB8, 0x01, 0x00, 0x00, 0x07, 0x70, 0x8A, 0x00, 0x00, 0x00, 0x01, 0x60,
637 0x60, 0x02, 0x00, 0x00, 0x06, 0x60, 0x80, 0x02, 0x00, 0x00, 0x05, 0x60,
638 0x9E, 0x02, 0x00, 0x00, 0x04, 0x90, 0x10, 0x00, 0x00, 0x00, 0x69, 0xEF,
639 0x70, 0xCE, 0x1D, 0xA2, 0x8B, 0x40, 0x84, 0x5B, 0xF9, 0x9E, 0xAC, 0x06,
640 0x09, 0xE7, 0x08, 0x70, 0x32, 0x00, 0x00, 0x00, 0x01, 0x60, 0x5C, 0x01,
641 0x00, 0x00, 0x09, 0x60, 0x66, 0x01, 0x00, 0x00, 0x10, 0x60, 0x84, 0x01,
642 0x00, 0x00, 0x11, 0x60, 0xA2, 0x01, 0x00, 0x00, 0x02, 0x50, 0x00, 0x00,
643 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x50, 0x01, 0x00, 0x00, 0x00,
644 0x00, 0x00, 0x01, 0x00, 0x13, 0x60, 0xB8, 0x01, 0x00, 0x00, 0x08, 0x70,
645 0x12, 0x00, 0x00, 0x00, 0x01, 0x60, 0xC0, 0x02, 0x00, 0x00, 0x01, 0x40,
646 0x04, 0x00, 0x00, 0x00, 0x03, 0x40, 0xB0, 0xB0, 0xB0, 0xB0, 0x0B, 0x70,
647 0x0C, 0x00, 0x00, 0x00, 0x01, 0x60, 0x3E, 0x00, 0x00, 0x00, 0x1A, 0x40,
648 0x8E, 0x01, 0x00, 0x00, 0x07, 0x70, 0xCE, 0x00, 0x00, 0x00, 0x01, 0x60,
649 0xEC, 0x02, 0x00, 0x00, 0x06, 0x60, 0x0E, 0x03, 0x00, 0x00, 0x05, 0x60,
650 0x26, 0x03, 0x00, 0x00, 0x04, 0x90, 0x10, 0x00, 0x00, 0x00, 0x44, 0xD1,
651 0xEA, 0xB4, 0x40, 0xF6, 0x4B, 0x4E, 0x94, 0xC4, 0x0C, 0x7F, 0xA8, 0x66,
652 0x23, 0xB0, 0x08, 0x70, 0x94, 0x00, 0x00, 0x00, 0x01, 0x60, 0x5C, 0x01,
653 0x00, 0x00, 0x01, 0x40, 0x00, 0x08, 0x00, 0x00, 0x03, 0x40, 0x29, 0xD6,
654 0x8B, 0x17, 0x09, 0x60, 0x66, 0x01, 0x00, 0x00, 0x10, 0x60, 0x84, 0x01,
655 0x00, 0x00, 0x11, 0x60, 0xA2, 0x01, 0x00, 0x00, 0x12, 0x60, 0x42, 0x03,
656 0x00, 0x00, 0x02, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
657 0x03, 0x50, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x40,
658 0x03, 0x00, 0x00, 0x00, 0x09, 0x40, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x40,
659 0x01, 0x00, 0x00, 0x00, 0x0B, 0x40, 0xAD, 0xBA, 0x00, 0x00, 0x1C, 0x40,
660 0x02, 0x00, 0x04, 0x00, 0x13, 0x60, 0xB8, 0x01, 0x00, 0x00, 0x14, 0x60,
661 0x68, 0x03, 0x00, 0x00, 0x15, 0x60, 0x90, 0x03, 0x00, 0x00, 0x16, 0x60,
662 0xB0, 0x03, 0x00, 0x00, 0x06, 0x50, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
663 0x01, 0x00, 0x0D, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
664 0x1D, 0x40, 0x45, 0x23, 0x01, 0x00, 0x1E, 0x40, 0x45, 0x23, 0x01, 0x00,
665 0x0B, 0x70, 0x06, 0x00, 0x00, 0x00, 0x01, 0x60, 0xD4, 0x03, 0x00, 0x00,
666 0x0D, 0x70, 0x1E, 0x00, 0x00, 0x00, 0x15, 0x40, 0x02, 0x00, 0x00, 0x00,
667 0x0E, 0x70, 0x06, 0x00, 0x00, 0x00, 0x19, 0x60, 0xEC, 0x03, 0x00, 0x00,
668 0x1B, 0x60, 0xF8, 0x01, 0x00, 0x00, 0x18, 0x60, 0x2A, 0x04, 0x00, 0x00,
669 0x0D, 0x70, 0x1E, 0x00, 0x00, 0x00, 0x15, 0x40, 0x01, 0x00, 0x00, 0x00,
670 0x0E, 0x70, 0x06, 0x00, 0x00, 0x00, 0x19, 0x60, 0x4A, 0x04, 0x00, 0x00,
671 0x1B, 0x60, 0x00, 0x01, 0x00, 0x00, 0x18, 0x60, 0x82, 0x04, 0x00, 0x00,
672 0x01, 0x78, 0x96, 0x04, 0x00, 0x00, 0x01, 0x88, 0x10, 0x00, 0x00, 0x00,
673 0x32, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x2E, 0x00,
674 0x33, 0x00, 0x00, 0x00, 0x01, 0x88, 0x1C, 0x00, 0x00, 0x00, 0x61, 0x00,
675 0x70, 0x00, 0x70, 0x00, 0x68, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x70, 0x00,
676 0x5F, 0x00, 0x74, 0x00, 0x65, 0x00, 0x73, 0x00, 0x74, 0x00, 0x31, 0x00,
677 0x00, 0x00, 0x01, 0x88, 0x18, 0x00, 0x00, 0x00, 0x54, 0x00, 0x65, 0x00,
678 0x73, 0x00, 0x74, 0x00, 0x4E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x4D, 0x00,
679 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x00, 0x00, 0x01, 0x88, 0x20, 0x00,
680 0x00, 0x00, 0x56, 0x00, 0x69, 0x00, 0x72, 0x00, 0x74, 0x00, 0x75, 0x00,
681 0x61, 0x00, 0x6C, 0x00, 0x52, 0x00, 0x65, 0x00, 0x67, 0x00, 0x69, 0x00,
682 0x73, 0x00, 0x74, 0x00, 0x72, 0x00, 0x79, 0x00, 0x00, 0x00, 0x01, 0x88,
683 0x18, 0x00, 0x00, 0x00, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x6D, 0x00,
684 0x65, 0x00, 0x41, 0x00, 0x63, 0x00, 0x74, 0x00, 0x69, 0x00, 0x76, 0x00,
685 0x65, 0x00, 0x00, 0x00, 0x01, 0x88, 0x18, 0x00, 0x00, 0x00, 0x65, 0x00,
686 0x78, 0x00, 0x63, 0x00, 0x6C, 0x00, 0x75, 0x00, 0x64, 0x00, 0x65, 0x00,
687 0x2E, 0x00, 0x64, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x01, 0x88,
688 0x18, 0x00, 0x00, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x63, 0x00, 0x6C, 0x00,
689 0x75, 0x00, 0x64, 0x00, 0x65, 0x00, 0x2E, 0x00, 0x64, 0x00, 0x6C, 0x00,
690 0x6C, 0x00, 0x00, 0x00, 0x01, 0x88, 0x1E, 0x00, 0x00, 0x00, 0x74, 0x00,
691 0x65, 0x00, 0x73, 0x00, 0x74, 0x00, 0x5F, 0x00, 0x61, 0x00, 0x6C, 0x00,
692 0x6C, 0x00, 0x6F, 0x00, 0x77, 0x00, 0x2E, 0x00, 0x65, 0x00, 0x78, 0x00,
693 0x65, 0x00, 0x00, 0x00, 0x01, 0x88, 0x26, 0x00, 0x00, 0x00, 0x61, 0x00,
694 0x70, 0x00, 0x70, 0x00, 0x68, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x70, 0x00,
695 0x5F, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x5F, 0x00,
696 0x61, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x6F, 0x00, 0x77, 0x00, 0x00, 0x00,
697 0x01, 0x88, 0x2A, 0x00, 0x00, 0x00, 0x61, 0x00, 0x70, 0x00, 0x70, 0x00,
698 0x68, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x70, 0x00, 0x5F, 0x00, 0x76, 0x00,
699 0x65, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x5F, 0x00,
700 0x61, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x6F, 0x00, 0x77, 0x00, 0x00, 0x00,
701 0x01, 0x88, 0x04, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x01, 0x88,
702 0x18, 0x00, 0x00, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x70, 0x00,
703 0x61, 0x00, 0x6E, 0x00, 0x79, 0x00, 0x4E, 0x00, 0x61, 0x00, 0x6D, 0x00,
704 0x65, 0x00, 0x00, 0x00, 0x01, 0x88, 0x18, 0x00, 0x00, 0x00, 0x50, 0x00,
705 0x72, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x75, 0x00, 0x63, 0x00, 0x74, 0x00,
706 0x4E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00, 0x01, 0x88,
707 0x10, 0x00, 0x00, 0x00, 0x31, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x2E, 0x00,
708 0x30, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x88, 0x10, 0x00,
709 0x00, 0x00, 0x31, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x2E, 0x00, 0x30, 0x00,
710 0x2E, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x88, 0x24, 0x00, 0x00, 0x00,
711 0x74, 0x00, 0x65, 0x00, 0x73, 0x00, 0x74, 0x00, 0x5F, 0x00, 0x64, 0x00,
712 0x69, 0x00, 0x73, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x6F, 0x00,
713 0x77, 0x00, 0x2E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x65, 0x00, 0x00, 0x00,
714 0x01, 0x88, 0x2C, 0x00, 0x00, 0x00, 0x61, 0x00, 0x70, 0x00, 0x70, 0x00,
715 0x68, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x70, 0x00, 0x5F, 0x00, 0x6E, 0x00,
716 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x5F, 0x00, 0x64, 0x00, 0x69, 0x00,
717 0x73, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x6F, 0x00, 0x77, 0x00,
718 0x00, 0x00, 0x01, 0x88, 0x30, 0x00, 0x00, 0x00, 0x61, 0x00, 0x70, 0x00,
719 0x70, 0x00, 0x68, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x70, 0x00, 0x5F, 0x00,
720 0x76, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x6F, 0x00, 0x72, 0x00,
721 0x5F, 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x61, 0x00, 0x6C, 0x00,
722 0x6C, 0x00, 0x6F, 0x00, 0x77, 0x00, 0x00, 0x00, 0x01, 0x88, 0x1A, 0x00,
723 0x00, 0x00, 0x74, 0x00, 0x65, 0x00, 0x73, 0x00, 0x74, 0x00, 0x5F, 0x00,
724 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x2E, 0x00, 0x65, 0x00, 0x78, 0x00,
725 0x65, 0x00, 0x00, 0x00, 0x01, 0x88, 0x18, 0x00, 0x00, 0x00, 0x66, 0x00,
726 0x69, 0x00, 0x78, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x5F, 0x00,
727 0x6E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00, 0x01, 0x88,
728 0x1C, 0x00, 0x00, 0x00, 0x66, 0x00, 0x69, 0x00, 0x78, 0x00, 0x6E, 0x00,
729 0x65, 0x00, 0x77, 0x00, 0x5F, 0x00, 0x76, 0x00, 0x65, 0x00, 0x6E, 0x00,
730 0x64, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x00, 0x00, 0x01, 0x88, 0x26, 0x00,
731 0x00, 0x00, 0x74, 0x00, 0x65, 0x00, 0x73, 0x00, 0x74, 0x00, 0x5F, 0x00,
732 0x63, 0x00, 0x68, 0x00, 0x65, 0x00, 0x63, 0x00, 0x6B, 0x00, 0x66, 0x00,
733 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x2E, 0x00, 0x74, 0x00, 0x78, 0x00,
734 0x74, 0x00, 0x00, 0x00, 0x01, 0x88, 0x1C, 0x00, 0x00, 0x00, 0x74, 0x00,
735 0x65, 0x00, 0x73, 0x00, 0x74, 0x00, 0x5F, 0x00, 0x77, 0x00, 0x32, 0x00,
736 0x6B, 0x00, 0x33, 0x00, 0x2E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x65, 0x00,
737 0x00, 0x00, 0x01, 0x88, 0x12, 0x00, 0x00, 0x00, 0x66, 0x00, 0x69, 0x00,
738 0x78, 0x00, 0x5F, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00,
739 0x00, 0x00, 0x01, 0x88, 0x16, 0x00, 0x00, 0x00, 0x66, 0x00, 0x69, 0x00,
740 0x78, 0x00, 0x5F, 0x00, 0x76, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x64, 0x00,
741 0x6F, 0x00, 0x72, 0x00, 0x00, 0x00, 0x01, 0x88, 0x20, 0x00, 0x00, 0x00,
742 0x46, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x44, 0x00, 0x65, 0x00,
743 0x73, 0x00, 0x63, 0x00, 0x72, 0x00, 0x69, 0x00, 0x70, 0x00, 0x74, 0x00,
744 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x01, 0x88, 0x22, 0x00,
745 0x00, 0x00, 0x4F, 0x00, 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x69, 0x00,
746 0x6E, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x46, 0x00, 0x69, 0x00, 0x6C, 0x00,
747 0x65, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00,
748 0x01, 0x88, 0x1A, 0x00, 0x00, 0x00, 0x49, 0x00, 0x6E, 0x00, 0x74, 0x00,
749 0x65, 0x00, 0x72, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x4E, 0x00,
750 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00, 0x01, 0x88, 0x1E, 0x00,
751 0x00, 0x00, 0x4C, 0x00, 0x65, 0x00, 0x67, 0x00, 0x61, 0x00, 0x6C, 0x00,
752 0x43, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x79, 0x00, 0x72, 0x00, 0x69, 0x00,
753 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x00, 0x00, 0x01, 0x88, 0x12, 0x00,
754 0x00, 0x00, 0x57, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x53, 0x00, 0x72, 0x00,
755 0x76, 0x00, 0x30, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x88, 0x38, 0x00,
756 0x00, 0x00, 0x68, 0x00, 0x74, 0x00, 0x74, 0x00, 0x70, 0x00, 0x3A, 0x00,
757 0x2F, 0x00, 0x2F, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x63, 0x00,
758 0x74, 0x00, 0x6F, 0x00, 0x73, 0x00, 0x2E, 0x00, 0x6F, 0x00, 0x72, 0x00,
759 0x67, 0x00, 0x2F, 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x61, 0x00,
760 0x6C, 0x00, 0x6C, 0x00, 0x6F, 0x00, 0x77, 0x00, 0x00, 0x00, 0x01, 0x88,
761 0x1A, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00,
762 0x61, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x6F, 0x00, 0x77, 0x00, 0x65, 0x00,
763 0x64, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x88, 0x32, 0x00, 0x00, 0x00,
764 0x68, 0x00, 0x74, 0x00, 0x74, 0x00, 0x70, 0x00, 0x3A, 0x00, 0x2F, 0x00,
765 0x2F, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x63, 0x00, 0x74, 0x00,
766 0x6F, 0x00, 0x73, 0x00, 0x2E, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x67, 0x00,
767 0x2F, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x6F, 0x00, 0x77, 0x00,
768 0x00, 0x00, 0x01, 0x88, 0x14, 0x00, 0x00, 0x00, 0x41, 0x00, 0x6C, 0x00,
769 0x6C, 0x00, 0x6F, 0x00, 0x77, 0x00, 0x20, 0x00, 0x69, 0x00, 0x74, 0x00,
770 0x21, 0x00, 0x00, 0x00
771};
772
774{
775 return sizeof(rawData);
776}
777
779{
781 winetest_ok(file != INVALID_HANDLE_VALUE, "can't create file '%s'\n", wine_dbgstr_w(name));
783 {
784 DWORD size;
785 WriteFile(file, rawData, sizeof(rawData), &size, NULL);
786 if (win10)
787 {
790 }
792 }
793}
794
797{
798 if (!g_WinVersion)
799 {
800 RTL_OSVERSIONINFOEXW rtlinfo = {0};
801 void (__stdcall* pRtlGetVersion)(RTL_OSVERSIONINFOEXW*);
802 pRtlGetVersion = (void (__stdcall*)(RTL_OSVERSIONINFOEXW*))GetProcAddress(GetModuleHandleA("ntdll"), "RtlGetVersion");
803
804 rtlinfo.dwOSVersionInfoSize = sizeof(rtlinfo);
805 pRtlGetVersion(&rtlinfo);
806 g_WinVersion = (rtlinfo.dwMajorVersion << 8) | rtlinfo.dwMinorVersion;
807 }
808 return g_WinVersion;
809}
810
812{
813 DWORD dwVersion = 0;
815 DWORD dwSize = SizeofResource(mod, hResInfo);
816 if (hResInfo && dwSize)
817 {
818 VS_FIXEDFILEINFO *lpFfi;
819 UINT uLen;
820
821 HGLOBAL hResData = LoadResource(mod, hResInfo);
822 LPVOID pRes = LockResource(hResData);
823 HLOCAL pResCopy = LocalAlloc(LMEM_FIXED, dwSize);
824
825 CopyMemory(pResCopy, pRes, dwSize);
826 FreeResource(hResData);
827
828 if (VerQueryValueW(pResCopy, L"\\", (LPVOID*)&lpFfi, &uLen))
829 {
831 if (!dwVersion)
832 dwVersion = (HIWORD(lpFfi->dwFileVersionMS) << 8) | LOWORD(lpFfi->dwFileVersionMS);
833 }
834
835 LocalFree(pResCopy);
836 }
837
838 return dwVersion;
839}
840
842{
843 if (GetEnvironmentVariableA("SHIM_DEBUG_LEVEL", NULL, 0) == ERROR_ENVVAR_NOT_FOUND)
844 SetEnvironmentVariableA("SHIM_DEBUG_LEVEL", "0");
845 if (GetEnvironmentVariableA("SHIMENG_DEBUG_LEVEL", NULL, 0) == ERROR_ENVVAR_NOT_FOUND)
846 SetEnvironmentVariableA("SHIMENG_DEBUG_LEVEL", "0");
847}
848
std::map< E_MODULE, HMODULE > mod
Definition: LocaleTests.cpp:66
DWORD dwVersion
Definition: LocaleTests.cpp:63
#define free
Definition: debug_ros.c:5
#define malloc
Definition: debug_ros.c:4
#define NULL
Definition: types.h:112
#define CloseHandle
Definition: compat.h:739
#define IMAGE_DIRECTORY_ENTRY_EXPORT
Definition: compat.h:151
#define FILE_BEGIN
Definition: compat.h:761
#define SetFilePointer
Definition: compat.h:743
#define GetProcAddress(x, y)
Definition: compat.h:753
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define CreateFileW
Definition: compat.h:741
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:137
#define GetEnvironmentVariableA(x, y, z)
Definition: compat.h:754
BOOL WINAPI DECLSPEC_HOTPATCH SetEnvironmentVariableA(IN LPCSTR lpName, IN LPCSTR lpValue)
Definition: environ.c:218
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Definition: rw.c:24
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
Definition: loader.c:812
BOOL WINAPI FreeResource(HGLOBAL handle)
Definition: res.c:559
DWORD WINAPI SizeofResource(HINSTANCE hModule, HRSRC hRsrc)
Definition: res.c:568
LPVOID WINAPI LockResource(HGLOBAL handle)
Definition: res.c:550
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
Definition: res.c:532
BOOL WINAPI VerQueryValueW(LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen)
Definition: version.c:1057
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
FxCollectionEntry * cur
GLsizeiptr size
Definition: glext.h:5919
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
GLenum GLsizei len
Definition: glext.h:6722
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:1390
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1594
#define wine_dbgstr_w
Definition: kernel32.h:34
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define CREATE_ALWAYS
Definition: disk.h:72
DWORD get_host_winver(void)
Definition: data.c:796
static unsigned char rawData[2356]
Definition: data.c:573
void test_create_ne_imp(const WCHAR *name, int skip_names)
Definition: data.c:523
DWORD get_module_version(HMODULE mod)
Definition: data.c:811
static unsigned char win10Header[8]
Definition: data.c:570
void test_create_exe_imp(const WCHAR *name, int skip_rsrc_exports)
Definition: data.c:467
static IMAGE_DOS_HEADER dos_header
Definition: data.c:13
void silence_debug_output(void)
Definition: data.c:841
static IMAGE_SECTION_HEADER section_headers[]
Definition: data.c:95
static const unsigned char text_section[]
Definition: data.c:123
static const rsrc_section_t rsrc_section
Definition: data.c:235
DWORD g_WinVersion
Definition: data.c:795
void test_create_db_imp(const WCHAR *name, int win10)
Definition: data.c:778
static export_section_t export_dir
Definition: data.c:448
void test_create_file_imp(const WCHAR *name, const char *contents, size_t len)
Definition: data.c:555
static IMAGE_NT_HEADERS32 nt_header
Definition: data.c:36
#define RT_VERSION_DW
Definition: data.c:234
DWORD test_get_db_size()
Definition: data.c:773
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56
static BOOL win10
Definition: render.c:66
static const char * contents
Definition: parser.c:511
unsigned int UINT
Definition: ndis.h:50
#define GENERIC_WRITE
Definition: nt_native.h:90
#define IMAGE_SUBSYSTEM_WINDOWS_CUI
Definition: ntimage.h:438
#define IMAGE_SCN_CNT_INITIALIZED_DATA
Definition: ntimage.h:231
#define IMAGE_SCN_CNT_CODE
Definition: ntimage.h:230
#define IMAGE_SCN_MEM_EXECUTE
Definition: ntimage.h:239
#define IMAGE_SCN_MEM_READ
Definition: ntimage.h:240
#define IMAGE_NT_OPTIONAL_HDR_MAGIC
Definition: ntimage.h:387
#define L(x)
Definition: ntvdm.h:50
#define VS_VERSION_INFO
#define LOWORD(l)
Definition: pedump.c:82
#define IMAGE_FILE_EXECUTABLE_IMAGE
Definition: pedump.c:160
#define IMAGE_FILE_MACHINE_I386
Definition: pedump.c:174
struct _IMAGE_OPTIONAL_HEADER IMAGE_OPTIONAL_HEADER
#define IMAGE_NT_SIGNATURE
Definition: pedump.c:93
#define IMAGE_OS2_SIGNATURE
Definition: pedump.c:90
#define IMAGE_FILE_LINE_NUMS_STRIPPED
Definition: pedump.c:161
#define IMAGE_DOS_SIGNATURE
Definition: pedump.c:89
#define IMAGE_FILE_RELOCS_STRIPPED
Definition: pedump.c:159
#define IMAGE_FILE_32BIT_MACHINE
Definition: pedump.c:164
#define RT_VERSION
Definition: pedump.c:376
#define IMAGE_DIRECTORY_ENTRY_RESOURCE
Definition: pedump.c:261
void __winetest_cdecl winetest_ok(int condition, const char *msg,...)
#define memset(x, y, z)
Definition: compat.h:39
Definition: pedump.c:458
Definition: pedump.c:414
DWORD PointerToRawData
Definition: pedump.c:290
ULONG dwMajorVersion
Definition: rtltypes.h:270
ULONG dwMinorVersion
Definition: rtltypes.h:271
ULONG dwOSVersionInfoSize
Definition: rtltypes.h:269
char binary_name[10]
Definition: data.c:444
IMAGE_EXPORT_DIRECTORY desc
Definition: data.c:443
Definition: fci.c:127
Definition: name.c:39
WCHAR ProductVersion_val[8]
Definition: data.c:200
STRINGHDR OriginalFilename_hdr
Definition: data.c:222
WCHAR LegalCopyright_key[15]
Definition: data.c:215
STRINGHDR ProductVersion_hdr
Definition: data.c:198
STRINGHDR Productname_hdr
Definition: data.c:226
WCHAR FileDescription_val[16]
Definition: data.c:208
WCHAR Productname_key[13]
Definition: data.c:227
WCHAR ProductVersion_key[15]
Definition: data.c:199
VS_VERSIONINFO version_info
Definition: data.c:190
WCHAR LegalTrademarks_key[17]
Definition: data.c:219
WCHAR FileVersion_key[13]
Definition: data.c:195
STRINGHDR CompanyName_hdr
Definition: data.c:202
IMAGE_RESOURCE_DIRECTORY file_info_header
Definition: data.c:184
WCHAR FileVersion_val[8]
Definition: data.c:196
STRINGHDR LegalTrademarks_hdr
Definition: data.c:218
WCHAR FileDescription_key[17]
Definition: data.c:207
WCHAR Productname_val[12]
Definition: data.c:228
VAR translation
Definition: data.c:231
STRINGHDR FileDescription_hdr
Definition: data.c:206
IMAGE_RESOURCE_DATA_ENTRY version_data_entry
Definition: data.c:188
WCHAR LegalCopyright_val[16]
Definition: data.c:216
IMAGE_RESOURCE_DIRECTORY version_info_header
Definition: data.c:186
WCHAR OriginalFilename_key[17]
Definition: data.c:223
WCHAR LegalTrademarks_val[16]
Definition: data.c:220
STRINGTABLE string_table
Definition: data.c:192
WCHAR OriginalFilename_val[18]
Definition: data.c:224
WCHAR CompanyName_key[13]
Definition: data.c:203
VARFILEINFO file_info
Definition: data.c:230
IMAGE_RESOURCE_DIRECTORY_ENTRY version_info_id
Definition: data.c:185
STRINGHDR LegalCopyright_hdr
Definition: data.c:214
IMAGE_RESOURCE_DIRECTORY header
Definition: data.c:182
WCHAR InternalName_val[14]
Definition: data.c:212
WCHAR InternalName_key[13]
Definition: data.c:211
IMAGE_RESOURCE_DIRECTORY_ENTRY file_info_id
Definition: data.c:183
IMAGE_RESOURCE_DIRECTORY_ENTRY version_lang_id
Definition: data.c:187
STRINGHDR InternalName_hdr
Definition: data.c:210
STRINGHDR FileVersion_hdr
Definition: data.c:194
WCHAR CompanyName_val[12]
Definition: data.c:204
STRINGFILEINFO string_file_info
Definition: data.c:191
DWORD dwFileVersionMS
Definition: compat.h:902
DWORD dwProductVersionMS
Definition: compat.h:904
#define __stdcall
Definition: typedefs.h:25
#define HIWORD(l)
Definition: typedefs.h:247
#define VOS__WINDOWS32
Definition: verrsrc.h:64
#define VFT_APP
Definition: verrsrc.h:75
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
#define CopyMemory
Definition: winbase.h:1735
#define FindResource
Definition: winbase.h:3818
#define LMEM_FIXED
Definition: winbase.h:394
#define ERROR_ENVVAR_NOT_FOUND
Definition: winerror.h:261
#define MAKEINTRESOURCE
Definition: winuser.h:591
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned char BYTE
Definition: xxhash.c:193