Diff

Not logged in

Differences From Artifact [5400bf8ccf4a147f]:

To Artifact [217222ad3190ccc6]:


1 +/***********************************************************************\ 2 +* winnt.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Translated from MinGW API for MS-Windows 3.12 * 7 +* * 8 +* Placed into public domain * 9 +\***********************************************************************/ 1 10 module win32.winnt; 2 11 3 -// Translated from Microsoft Platform SDK August 2001 Edition 4 -// by Y.Tomino (demoonlit@inter7.jp) 5 - 6 -import win32.windef; 7 -alias void _TEB; 8 -alias void _EXCEPTION_REGISTRATION_RECORD; 9 -private extern(C) { 10 - int memcmp(void*, void*, uint); 11 - void* memmove(void*, void*, uint); 12 - void* memcpy(void*, void*, uint); 13 - void* memset(void*, uint, uint); 14 -} 15 - 16 -// #ifndef _WINNT_ 17 -// #define _WINNT_ 18 - 19 -// #ifdef __cplusplus 20 -// extern "C" { 21 -// #endif 22 - 23 -// #include <ctype.h> 24 -enum : uint { ANYSIZE_ARRAY = 1 } 25 - 26 -// #if defined(_M_MRX000) && !(defined(MIDL_PASS) || defined(RC_INVOKED)) && defined(ENABLE_RESTRICTED) 27 -// #... 28 -// #else 29 -// #define RESTRICTED_POINTER 30 -// #endif 31 - 32 -// #if defined(_M_MRX000) || defined(_M_ALPHA) || defined(_M_PPC) || defined(_M_IA64) || defined(_M_AMD64) 33 -// #... 34 -// #if defined(_WIN64) 35 -// #... 36 -// #else 37 -// #... 38 -// #endif 39 -// #else 40 -// #define UNALIGNED 41 -// #define UNALIGNED64 42 -// #endif 43 - 44 -// #if defined(_WIN64) || defined(_M_ALPHA) 45 -// #... 46 -// #... 47 -// #else 48 -const uint MAX_NATURAL_ALIGNMENT = DWORD.sizeof; 49 -enum : uint { MEMORY_ALLOCATION_ALIGNMENT = 8 } 50 -// #endif 51 - 52 -// #ifdef __cplusplus 53 -// #if _MSC_VER >= 1300 54 -// #define TYPE_ALIGNMENT( t ) __alignof(t) 55 -// #endif 56 -// #else 57 -// #... 58 -// ... 59 -// #endif 60 - 61 -// #if defined(_WIN64) 62 - 63 -// #... 64 -// ... 65 - 66 -// #... 67 - 68 -// #else 69 - 70 -// #define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD ) 71 - 72 -// #endif 73 - 74 -// #define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1] 75 - 76 -// #if !defined(_MAC) && (defined(_M_MRX000) || defined(_M_AMD64) || defined(_M_IA64)) && (_MSC_VER >= 1100) && !(defined(MIDL_PASS) || defined(RC_INVOKED)) 77 -// #... 78 -// ... 79 -// #if defined(_WIN64) 80 -// #... 81 -// #else 82 -// #... 83 -// #endif 84 -// #else 85 -// #if defined(_MAC) && defined(_MAC_INT_64) 86 -// #... 87 -// ... 88 -// #else 89 -// #define POINTER_64 90 -alias uint POINTER_64_INT; 91 -// #endif 92 -alias void* POINTER_32; 93 -// #endif 94 - 95 -// #if defined(_IA64_) || defined(_AMD64_) 96 -// #... 97 -// #else 98 -alias POINTER_32 FIRMWARE_PTR; 99 -// #endif 100 - 101 -// #include <basetsd.h> 102 - 103 -// #if (defined(_M_IX86) || defined(_M_IA64) || defined(_M_AMD64)) && !defined(MIDL_PASS) 104 -// #define DECLSPEC_IMPORT __declspec(dllimport) 105 -// #else 106 -// #... 107 -// #endif 108 - 109 -// #ifndef DECLSPEC_NORETURN 110 -// #if (_MSC_VER >= 1200) && !defined(MIDL_PASS) 111 -// #define DECLSPEC_NORETURN __declspec(noreturn) 112 -// #else 113 -// #... 114 -// #endif 115 -// #endif 116 - 117 -// #ifndef DECLSPEC_ALIGN 118 -// #if (_MSC_VER >= 1300) && !defined(MIDL_PASS) 119 -// #define DECLSPEC_ALIGN(x) __declspec(align(x)) 120 -// #else 121 -// #... 122 -// #endif 123 -// #endif 124 - 125 -// #ifndef DECLSPEC_CACHEALIGN 126 -// #define DECLSPEC_CACHEALIGN DECLSPEC_ALIGN(128) 127 -// #endif 128 - 129 -// #ifndef DECLSPEC_UUID 130 -// #if (_MSC_VER >= 1100) && defined (__cplusplus) 131 -// #define DECLSPEC_UUID(x) __declspec(uuid(x)) 132 -// #else 133 -// #... 134 -// #endif 135 -// #endif 136 - 137 -// #ifndef DECLSPEC_NOVTABLE 138 -// #if (_MSC_VER >= 1100) && defined(__cplusplus) 139 -// #define DECLSPEC_NOVTABLE __declspec(novtable) 140 -// #else 141 -// #... 142 -// #endif 143 -// #endif 144 - 145 -// #ifndef DECLSPEC_SELECTANY 146 -// #if (_MSC_VER >= 1100) 147 -// #define DECLSPEC_SELECTANY __declspec(selectany) 148 -// #else 149 -// #... 150 -// #endif 151 -// #endif 152 - 153 -// #ifndef NOP_FUNCTION 154 -// #if (_MSC_VER >= 1210) 155 -// #... 156 -// #else 157 -// #... 158 -// #endif 159 -// #endif 160 - 161 -// #ifndef DECLSPEC_ADDRSAFE 162 -// #if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64)) 163 -// #... 164 -// #else 165 -// #define DECLSPEC_ADDRSAFE 166 -// #endif 167 -// #endif 168 - 169 -// #ifndef FORCEINLINE 170 -// #if (_MSC_VER >= 1200) 171 -// #define FORCEINLINE __forceinline 172 -// #else 173 -// #... 174 -// #endif 175 -// #endif 176 - 177 -// #ifndef DECLSPEC_DEPRECATED 178 -// #if (_MSC_VER >= 1300) && !defined(MIDL_PASS) 179 -// #define DECLSPEC_DEPRECATED __declspec(deprecated) 180 -// #define DEPRECATE_SUPPORTED 181 -// #else 182 -// #... 183 -// #... 184 -// #endif 185 -// #endif 186 - 187 -alias void* PVOID; 188 -deprecated alias void* PVOID64; /* warning: 64-bit */ 189 - 190 -// #if ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)) && !defined(_M_AMD64) 191 -// #define NTAPI __stdcall 192 -// #else 193 -// #... 194 -// #... 195 -// #endif 196 - 197 -// #if !defined(_NTSYSTEM_) 198 -// #define NTSYSAPI DECLSPEC_IMPORT 199 -// #define NTSYSCALLAPI DECLSPEC_IMPORT 200 -// #else 201 -// #... 202 -// #if defined(_NTDLLBUILD_) 203 -// #... 204 -// #else 205 -// #... 206 -// #endif 207 - 208 -// #endif 209 - 210 -// #ifndef VOID 211 -alias void VOID; 212 -alias char CHAR; 213 -alias short SHORT; 214 -alias int LONG; 215 -// #endif 216 - 217 -// #ifndef _MAC 218 -alias wchar WCHAR; 219 -// #else 220 - 221 -// ... 222 -// #endif 223 - 224 -alias WCHAR* PWCHAR; 225 -alias WCHAR* LPWCH; 226 -alias WCHAR* PWCH; 227 -alias WCHAR* LPCWCH; 228 -alias WCHAR* PCWCH; 229 -alias WCHAR* NWPSTR; 230 -alias WCHAR* LPWSTR; 231 -alias WCHAR* PWSTR; 232 -alias WCHAR* LPUWSTR; 233 -alias WCHAR* PUWSTR; 234 - 235 -alias WCHAR* LPCWSTR; 236 -alias WCHAR* PCWSTR; 237 -alias WCHAR* LPCUWSTR; 238 -alias WCHAR* PCUWSTR; 239 - 240 -alias CHAR* PCHAR; 241 -alias CHAR* LPCH; 242 -alias CHAR* PCH; 243 - 244 -alias CHAR* LPCCH; 245 -alias CHAR* PCCH; 246 -alias CHAR* NPSTR; 247 -alias CHAR* LPSTR; 248 -alias CHAR* PSTR; 249 -alias CHAR* LPCSTR; 250 -alias CHAR* PCSTR; 251 - 252 -// #ifdef UNICODE // r_winnt 253 - 254 -// #ifndef _TCHAR_DEFINED 255 -alias WCHAR TCHAR; 256 -alias WCHAR* PTCHAR; 257 -alias WCHAR TBYTE; 258 -alias WCHAR* PTBYTE; 259 -// #define _TCHAR_DEFINED 260 -// #endif /* !_TCHAR_DEFINED */ 261 - 262 -alias LPWSTR LPTCH; 263 -alias LPWSTR PTCH; 264 -alias LPWSTR PTSTR; 265 -alias LPWSTR LPTSTR; 266 -alias LPCWSTR PCTSTR; 267 -alias LPCWSTR LPCTSTR; 268 -alias LPUWSTR PUTSTR; 269 -alias LPUWSTR LPUTSTR; 270 -alias LPCUWSTR PCUTSTR; 271 -alias LPCUWSTR LPCUTSTR; 272 -alias LPWSTR LP; 273 -// #define __TEXT(quote) L##quote 274 - 275 -// #else /* UNICODE */ // r_winnt 276 - 277 -// #ifndef _TCHAR_DEFINED 278 -// ... 279 -// #... 280 -// #endif /* !_TCHAR_DEFINED */ 281 - 282 -// ... 283 -// #... 284 - 285 -// #endif /* UNICODE */ // r_winnt 286 -TCHAR[] TEXT(TCHAR[] quote){ return quote; } 287 - 288 -alias SHORT* PSHORT; 289 -alias LONG* PLONG; 290 - 291 -// #ifdef STRICT 292 -alias void* HANDLE; 293 -// #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name 294 -// #else 295 -// ... 296 -// #... 297 -// #endif 298 -alias HANDLE* PHANDLE; 299 - 300 -alias BYTE FCHAR; 301 -alias WORD FSHORT; 302 -alias DWORD FLONG; 303 - 304 -// #ifndef _HRESULT_DEFINED 305 -// #define _HRESULT_DEFINED 306 -alias LONG HRESULT; 307 - 308 -// #endif // !_HRESULT_DEFINED 309 - 310 -// #ifdef __cplusplus 311 -// #define EXTERN_C extern "C" 312 -// #else 313 -// #... 314 -// #endif 315 - 316 -// #if defined(_WIN32) || defined(_MPPC_) 317 - 318 -// #ifdef _68K_ 319 -// #... 320 -// #else 321 -// #define STDMETHODCALLTYPE __stdcall 322 -// #endif 323 -// #define STDMETHODVCALLTYPE __cdecl 324 - 325 -// #define STDAPICALLTYPE __stdcall 326 -// #define STDAPIVCALLTYPE __cdecl 327 - 328 -// #else 329 - 330 -// #... 331 -// #... 332 - 333 -// #... 334 -// #... 335 - 336 -// #endif 337 - 338 -// #define STDAPI EXTERN_C HRESULT STDAPICALLTYPE 339 -// #define STDAPI_(type) EXTERN_C type STDAPICALLTYPE 340 - 341 -// #define STDMETHODIMP HRESULT STDMETHODCALLTYPE 342 -// #define STDMETHODIMP_(type) type STDMETHODCALLTYPE 343 - 344 -// #define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE 345 -// #define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE 346 - 347 -// #define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE 348 -// #define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE 349 - 350 -alias char CCHAR; 351 -alias DWORD LCID; 352 -alias PDWORD PLCID; 353 -alias WORD LANGID; 354 -enum : uint { APPLICATION_ERROR_MASK = 0x20000000 } 355 -enum : uint { ERROR_SEVERITY_SUCCESS = 0x00000000 } 356 -enum : uint { ERROR_SEVERITY_INFORMATIONAL = 0x40000000 } 357 -enum : uint { ERROR_SEVERITY_WARNING = 0x80000000 } 358 -enum : uint { ERROR_SEVERITY_ERROR = 0xC0000000 } 359 - 360 -// #if defined(_M_IA64) && !defined(MIDL_PASS) 361 -// ... 362 -// #endif 363 -struct _FLOAT128 { 364 - __int64 LowPart; 365 - __int64 HighPart; 366 -} 367 -alias _FLOAT128 FLOAT128; 368 - 369 -alias FLOAT128* PFLOAT128; 370 - 371 -// #define _ULONGLONG_ 372 -// #if (!defined (_MAC) && (!defined(MIDL_PASS) || defined(__midl)) && (!defined(_M_IX86) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64))) 373 -// ... 374 - 375 -// #... 376 -// #else 377 - 378 -// #if defined(_MAC) && defined(_MAC_INT_64) 379 -// ... 380 - 381 -// #... 382 -// #else 383 -alias double LONGLONG; 384 -alias double ULONGLONG; 385 -// #endif //_MAC and int64 386 - 387 -// #endif 388 - 389 -alias LONGLONG* PLONGLONG; 390 -alias ULONGLONG* PULONGLONG; 391 - 392 -alias LONGLONG USN; 393 - 394 -// #if defined(MIDL_PASS) 395 -// ... 396 -// #else // MIDL_PASS 397 -union _LARGE_INTEGER { 398 -struct _0 { 399 - DWORD LowPart; 400 - LONG HighPart; 401 -} 402 -_0 _; 403 - 404 -struct _1 { 405 - DWORD LowPart; 406 - LONG HighPart; 407 -} 408 -_1 u; 409 - 410 -// #endif //MIDL_PASS 411 - LONGLONG QuadPart; 412 -} 413 -alias _LARGE_INTEGER LARGE_INTEGER; 414 - 415 -alias LARGE_INTEGER* PLARGE_INTEGER; 416 - 417 -// #if defined(MIDL_PASS) 418 -// ... 419 -// #else // MIDL_PASS 420 -union _ULARGE_INTEGER { 421 -struct _2 { 422 - DWORD LowPart; 423 - DWORD HighPart; 424 -} 425 -_2 _; 426 - 427 -struct _3 { 428 - DWORD LowPart; 429 - DWORD HighPart; 430 -} 431 -_3 u; 432 - 433 -// #endif //MIDL_PASS 434 - ULONGLONG QuadPart; 435 -} 436 -alias _ULARGE_INTEGER ULARGE_INTEGER; 437 - 438 -alias ULARGE_INTEGER* PULARGE_INTEGER; 439 - 440 -struct _LUID { 441 - DWORD LowPart; 442 - LONG HighPart; 443 -} 444 -alias _LUID LUID; 445 -alias _LUID* PLUID; 446 - 447 -// #define _DWORDLONG_ 448 -alias ULONGLONG DWORDLONG; 449 -alias DWORDLONG* PDWORDLONG; 450 - 451 -// #if defined(MIDL_PASS) || defined(RC_INVOKED) 452 - 453 -// #... 454 -// #... 455 - 456 -// #... 457 -// #... 458 -// #... 459 - 460 -// #elif defined(_M_MRX000) 461 - 462 -// #... 463 -// #... 464 - 465 -// #... 466 -// #... 467 -// #... 468 - 469 -// #if defined (__cplusplus) 470 -// ... 471 -// #endif 472 - 473 -// ... 474 - 475 -// ... 476 - 477 -// ... 478 - 479 -// ... 480 - 481 -// ... 482 - 483 -// #if defined (__cplusplus) 484 -// ... 485 -// #endif 486 - 487 -// #... 488 -// #... 489 - 490 -// #... 491 -// #... 492 -// #... 493 - 494 -// #elif defined(_M_IX86) 495 - 496 -long Int32x32To64(int a, int b) { return (cast(long)a) * b; } 497 -ulong UInt32x32To64(uint a, uint b) { return (cast(ulong)a) * b; } 498 - 499 -extern(Windows) export ULONGLONG Int64ShllMod32( 500 - ULONGLONG Value, 501 - DWORD ShiftCount); 502 - 503 -extern(Windows) export LONGLONG Int64ShraMod32( 504 - LONGLONG Value, 505 - DWORD ShiftCount); 506 - 507 -extern(Windows) export ULONGLONG Int64ShrlMod32( 508 - ULONGLONG Value, 509 - DWORD ShiftCount); 510 - 511 -// #if _MSC_VER >= 1200 512 -// #pragma warning(push) 513 -// #endif 514 -// #pragma warning(disable:4035) // re-enable below 515 - 516 -// __inline ULONGLONG Int64ShllMod32( ULONGLONG Value, DWORD ShiftCount ); 517 - 518 -// __inline LONGLONG Int64ShraMod32( LONGLONG Value, DWORD ShiftCount ); 519 - 520 -// __inline ULONGLONG Int64ShrlMod32( ULONGLONG Value, DWORD ShiftCount ); 521 - 522 -// #if _MSC_VER >= 1200 523 -// #pragma warning(pop) 524 -// #else 525 -// #... 526 -// #endif 527 - 528 -// #elif defined(_M_ALPHA) 529 - 530 -// #... 531 -// #... 532 - 533 -// #... 534 -// #... 535 -// #... 536 - 537 -// #elif defined(_M_PPC) 538 - 539 -// #... 540 -// #... 541 - 542 -// #... 543 -// #... 544 -// #... 545 - 546 -// #elif defined(_68K_) || defined(_MPPC_) 547 - 548 -// #... 549 -// #... 550 - 551 -// #... 552 -// #... 553 -// #... 554 - 555 -// #elif defined(_M_IA64) || defined(_M_AMD64) 556 - 557 -// #... 558 -// #... 559 - 560 -// #... 561 -// #... 562 -// #... 563 - 564 -// #else 565 - 566 -// #... 567 - 568 -// #endif 569 - 570 -enum : CHAR { ANSI_NULL = 0 } 571 -enum : WCHAR { UNICODE_NULL = 0 } 572 -enum : WORD { UNICODE_STRING_MAX_BYTES = 65534 } 573 -enum : uint { UNICODE_STRING_MAX_CHARS = 32767 } 574 -alias BYTE BOOLEAN; 575 -alias BOOLEAN* PBOOLEAN; 576 - 577 -struct _LIST_ENTRY { 578 - _LIST_ENTRY *Flink; 579 - _LIST_ENTRY *Blink; 580 -} 581 -alias _LIST_ENTRY LIST_ENTRY; 582 -alias _LIST_ENTRY* PLIST_ENTRY; 583 -alias _LIST_ENTRY* RESTRICTED_POINTERPRLIST_ENTRY; 584 - 585 -struct _SINGLE_LIST_ENTRY { 586 - _SINGLE_LIST_ENTRY *Next; 587 -} 588 -alias _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY; 589 -alias _SINGLE_LIST_ENTRY* PSINGLE_LIST_ENTRY; 590 - 591 -struct LIST_ENTRY32 { 592 - DWORD Flink; 593 - DWORD Blink; 594 -} 595 - 596 -alias LIST_ENTRY32* PLIST_ENTRY32; 597 - 598 -struct LIST_ENTRY64 { 599 - ULONGLONG Flink; 600 - ULONGLONG Blink; 601 -} 602 - 603 -alias LIST_ENTRY64* PLIST_ENTRY64; 604 - 605 -import win32.guiddef; 606 - 607 -// #ifndef __OBJECTID_DEFINED 608 -// #define __OBJECTID_DEFINED 609 - 610 -struct _OBJECTID { 611 - GUID Lineage; 612 - DWORD Uniquifier; 613 -} 614 -alias _OBJECTID OBJECTID; 615 - 616 -// #endif // !_OBJECTID_DEFINED 617 - 618 -enum : uint { MINCHAR = 0x80 } 619 -enum : uint { MAXCHAR = 0x7f } 620 -enum : uint { MINSHORT = 0x8000 } 621 -enum : uint { MAXSHORT = 0x7fff } 622 -enum : uint { MINLONG = 0x80000000 } 623 -enum : uint { MAXLONG = 0x7fffffff } 624 -enum : uint { MAXBYTE = 0xff } 625 -enum : uint { MAXWORD = 0xffff } 626 -enum : uint { MAXDWORD = 0xffffffff } 627 - 628 -// #define FIELD_OFFSET(type, field) ((LONG)(LONG_PTR)&(((type *)0)->field)) 629 - 630 -// #if(_WIN32_WINNT > 0x0500) 631 - 632 -// #define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field)) 633 - 634 -// #define RTL_SIZEOF_THROUGH_FIELD(type, field) (FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field)) 635 - 636 -// #define RTL_CONTAINS_FIELD(Struct, Size, Field) ( (((PCHAR)(&(Struct)->Field)) + sizeof((Struct)->Field)) <= (((PCHAR)(Struct))+(Size)) ) 637 - 638 -// #define RTL_NUMBER_OF(A) (sizeof(A)/sizeof((A)[0])) 639 - 640 -// #define RTL_FIELD_TYPE(type, field) (((type*)0)->field) 641 - 642 -// #define RTL_NUMBER_OF_FIELD(type, field) (RTL_NUMBER_OF(RTL_FIELD_TYPE(type, field))) 643 - 644 -// #define RTL_PADDING_BETWEEN_FIELDS(T, F1, F2) ((FIELD_OFFSET(T, F2) > FIELD_OFFSET(T, F1)) ? (FIELD_OFFSET(T, F2) - FIELD_OFFSET(T, F1) - RTL_FIELD_SIZE(T, F1)) : (FIELD_OFFSET(T, F1) - FIELD_OFFSET(T, F2) - RTL_FIELD_SIZE(T, F2))) 645 - 646 -// #if defined(__cplusplus) 647 -// #define RTL_CONST_CAST(type) const_cast<type> 648 -// #else 649 -// #... 650 -// #endif 651 - 652 -// #define RTL_BITS_OF(sizeOfArg) (sizeof(sizeOfArg) * 8) 653 - 654 -// #define RTL_BITS_OF_FIELD(type, field) (RTL_BITS_OF(RTL_FIELD_TYPE(type, field))) 655 - 656 -// #endif /* _WIN32_WINNT > 0x0500 */ 657 - 658 -// #define CONTAINING_RECORD(address, type, field) ((type *)( (PCHAR)(address) - (ULONG_PTR)(&((type *)0)->field))) 659 - 660 -enum : uint { VER_SERVER_NT = 0x80000000 } 661 -enum : uint { VER_WORKSTATION_NT = 0x40000000 } 662 -enum : uint { VER_SUITE_SMALLBUSINESS = 0x00000001 } 663 -enum : uint { VER_SUITE_ENTERPRISE = 0x00000002 } 664 -enum : uint { VER_SUITE_BACKOFFICE = 0x00000004 } 665 -enum : uint { VER_SUITE_COMMUNICATIONS = 0x00000008 } 666 -enum : uint { VER_SUITE_TERMINAL = 0x00000010 } 667 -enum : uint { VER_SUITE_SMALLBUSINESS_RESTRICTED = 0x00000020 } 668 -enum : uint { VER_SUITE_EMBEDDEDNT = 0x00000040 } 669 -enum : uint { VER_SUITE_DATACENTER = 0x00000080 } 670 -enum : uint { VER_SUITE_SINGLEUSERTS = 0x00000100 } 671 -enum : uint { VER_SUITE_PERSONAL = 0x00000200 } 672 -enum : uint { VER_SUITE_BLADE = 0x00000400 } 673 - 674 -enum : uint { LANG_NEUTRAL = 0x00 } 675 -enum : uint { LANG_INVARIANT = 0x7f } 676 - 677 -enum : uint { LANG_AFRIKAANS = 0x36 } 678 -enum : uint { LANG_ALBANIAN = 0x1c } 679 -enum : uint { LANG_ARABIC = 0x01 } 680 -enum : uint { LANG_ARMENIAN = 0x2b } 681 -enum : uint { LANG_ASSAMESE = 0x4d } 682 -enum : uint { LANG_AZERI = 0x2c } 683 -enum : uint { LANG_BASQUE = 0x2d } 684 -enum : uint { LANG_BELARUSIAN = 0x23 } 685 -enum : uint { LANG_BENGALI = 0x45 } 686 -enum : uint { LANG_BULGARIAN = 0x02 } 687 -enum : uint { LANG_CATALAN = 0x03 } 688 -enum : uint { LANG_CHINESE = 0x04 } 689 -enum : uint { LANG_CROATIAN = 0x1a } 690 -enum : uint { LANG_CZECH = 0x05 } 691 -enum : uint { LANG_DANISH = 0x06 } 692 -enum : uint { LANG_DIVEHI = 0x65 } 693 -enum : uint { LANG_DUTCH = 0x13 } 694 -enum : uint { LANG_ENGLISH = 0x09 } 695 -enum : uint { LANG_ESTONIAN = 0x25 } 696 -enum : uint { LANG_FAEROESE = 0x38 } 697 -enum : uint { LANG_FARSI = 0x29 } 698 -enum : uint { LANG_FINNISH = 0x0b } 699 -enum : uint { LANG_FRENCH = 0x0c } 700 -enum : uint { LANG_GALICIAN = 0x56 } 701 -enum : uint { LANG_GEORGIAN = 0x37 } 702 -enum : uint { LANG_GERMAN = 0x07 } 703 -enum : uint { LANG_GREEK = 0x08 } 704 -enum : uint { LANG_GUJARATI = 0x47 } 705 -enum : uint { LANG_HEBREW = 0x0d } 706 -enum : uint { LANG_HINDI = 0x39 } 707 -enum : uint { LANG_HUNGARIAN = 0x0e } 708 -enum : uint { LANG_ICELANDIC = 0x0f } 709 -enum : uint { LANG_INDONESIAN = 0x21 } 710 -enum : uint { LANG_ITALIAN = 0x10 } 711 -enum : uint { LANG_JAPANESE = 0x11 } 712 -enum : uint { LANG_KANNADA = 0x4b } 713 -enum : uint { LANG_KASHMIRI = 0x60 } 714 -enum : uint { LANG_KAZAK = 0x3f } 715 -enum : uint { LANG_KONKANI = 0x57 } 716 -enum : uint { LANG_KOREAN = 0x12 } 717 -enum : uint { LANG_KYRGYZ = 0x40 } 718 -enum : uint { LANG_LATVIAN = 0x26 } 719 -enum : uint { LANG_LITHUANIAN = 0x27 } 720 -enum : uint { LANG_MACEDONIAN = 0x2f } 721 -enum : uint { LANG_MALAY = 0x3e } 722 -enum : uint { LANG_MALAYALAM = 0x4c } 723 -enum : uint { LANG_MANIPURI = 0x58 } 724 -enum : uint { LANG_MARATHI = 0x4e } 725 -enum : uint { LANG_MONGOLIAN = 0x50 } 726 -enum : uint { LANG_NEPALI = 0x61 } 727 -enum : uint { LANG_NORWEGIAN = 0x14 } 728 -enum : uint { LANG_ORIYA = 0x48 } 729 -enum : uint { LANG_POLISH = 0x15 } 730 -enum : uint { LANG_PORTUGUESE = 0x16 } 731 -enum : uint { LANG_PUNJABI = 0x46 } 732 -enum : uint { LANG_ROMANIAN = 0x18 } 733 -enum : uint { LANG_RUSSIAN = 0x19 } 734 -enum : uint { LANG_SANSKRIT = 0x4f } 735 -enum : uint { LANG_SERBIAN = 0x1a } 736 -enum : uint { LANG_SINDHI = 0x59 } 737 -enum : uint { LANG_SLOVAK = 0x1b } 738 -enum : uint { LANG_SLOVENIAN = 0x24 } 739 -enum : uint { LANG_SPANISH = 0x0a } 740 -enum : uint { LANG_SWAHILI = 0x41 } 741 -enum : uint { LANG_SWEDISH = 0x1d } 742 -enum : uint { LANG_SYRIAC = 0x5a } 743 -enum : uint { LANG_TAMIL = 0x49 } 744 -enum : uint { LANG_TATAR = 0x44 } 745 -enum : uint { LANG_TELUGU = 0x4a } 746 -enum : uint { LANG_THAI = 0x1e } 747 -enum : uint { LANG_TURKISH = 0x1f } 748 -enum : uint { LANG_UKRAINIAN = 0x22 } 749 -enum : uint { LANG_URDU = 0x20 } 750 -enum : uint { LANG_UZBEK = 0x43 } 751 -enum : uint { LANG_VIETNAMESE = 0x2a } 752 - 753 -enum : uint { SUBLANG_NEUTRAL = 0x00 } 754 -enum : uint { SUBLANG_DEFAULT = 0x01 } 755 -enum : uint { SUBLANG_SYS_DEFAULT = 0x02 } 756 - 757 -enum : uint { SUBLANG_ARABIC_SAUDI_ARABIA = 0x01 } 758 -enum : uint { SUBLANG_ARABIC_IRAQ = 0x02 } 759 -enum : uint { SUBLANG_ARABIC_EGYPT = 0x03 } 760 -enum : uint { SUBLANG_ARABIC_LIBYA = 0x04 } 761 -enum : uint { SUBLANG_ARABIC_ALGERIA = 0x05 } 762 -enum : uint { SUBLANG_ARABIC_MOROCCO = 0x06 } 763 -enum : uint { SUBLANG_ARABIC_TUNISIA = 0x07 } 764 -enum : uint { SUBLANG_ARABIC_OMAN = 0x08 } 765 -enum : uint { SUBLANG_ARABIC_YEMEN = 0x09 } 766 -enum : uint { SUBLANG_ARABIC_SYRIA = 0x0a } 767 -enum : uint { SUBLANG_ARABIC_JORDAN = 0x0b } 768 -enum : uint { SUBLANG_ARABIC_LEBANON = 0x0c } 769 -enum : uint { SUBLANG_ARABIC_KUWAIT = 0x0d } 770 -enum : uint { SUBLANG_ARABIC_UAE = 0x0e } 771 -enum : uint { SUBLANG_ARABIC_BAHRAIN = 0x0f } 772 -enum : uint { SUBLANG_ARABIC_QATAR = 0x10 } 773 -enum : uint { SUBLANG_AZERI_LATIN = 0x01 } 774 -enum : uint { SUBLANG_AZERI_CYRILLIC = 0x02 } 775 -enum : uint { SUBLANG_CHINESE_TRADITIONAL = 0x01 } 776 -enum : uint { SUBLANG_CHINESE_SIMPLIFIED = 0x02 } 777 -enum : uint { SUBLANG_CHINESE_HONGKONG = 0x03 } 778 -enum : uint { SUBLANG_CHINESE_SINGAPORE = 0x04 } 779 -enum : uint { SUBLANG_CHINESE_MACAU = 0x05 } 780 -enum : uint { SUBLANG_DUTCH = 0x01 } 781 -enum : uint { SUBLANG_DUTCH_BELGIAN = 0x02 } 782 -enum : uint { SUBLANG_ENGLISH_US = 0x01 } 783 -enum : uint { SUBLANG_ENGLISH_UK = 0x02 } 784 -enum : uint { SUBLANG_ENGLISH_AUS = 0x03 } 785 -enum : uint { SUBLANG_ENGLISH_CAN = 0x04 } 786 -enum : uint { SUBLANG_ENGLISH_NZ = 0x05 } 787 -enum : uint { SUBLANG_ENGLISH_EIRE = 0x06 } 788 -enum : uint { SUBLANG_ENGLISH_SOUTH_AFRICA = 0x07 } 789 -enum : uint { SUBLANG_ENGLISH_JAMAICA = 0x08 } 790 -enum : uint { SUBLANG_ENGLISH_CARIBBEAN = 0x09 } 791 -enum : uint { SUBLANG_ENGLISH_BELIZE = 0x0a } 792 -enum : uint { SUBLANG_ENGLISH_TRINIDAD = 0x0b } 793 -enum : uint { SUBLANG_ENGLISH_ZIMBABWE = 0x0c } 794 -enum : uint { SUBLANG_ENGLISH_PHILIPPINES = 0x0d } 795 -enum : uint { SUBLANG_FRENCH = 0x01 } 796 -enum : uint { SUBLANG_FRENCH_BELGIAN = 0x02 } 797 -enum : uint { SUBLANG_FRENCH_CANADIAN = 0x03 } 798 -enum : uint { SUBLANG_FRENCH_SWISS = 0x04 } 799 -enum : uint { SUBLANG_FRENCH_LUXEMBOURG = 0x05 } 800 -enum : uint { SUBLANG_FRENCH_MONACO = 0x06 } 801 -enum : uint { SUBLANG_GERMAN = 0x01 } 802 -enum : uint { SUBLANG_GERMAN_SWISS = 0x02 } 803 -enum : uint { SUBLANG_GERMAN_AUSTRIAN = 0x03 } 804 -enum : uint { SUBLANG_GERMAN_LUXEMBOURG = 0x04 } 805 -enum : uint { SUBLANG_GERMAN_LIECHTENSTEIN = 0x05 } 806 -enum : uint { SUBLANG_ITALIAN = 0x01 } 807 -enum : uint { SUBLANG_ITALIAN_SWISS = 0x02 } 808 -// #if _WIN32_WINNT >= 0x0501 809 -enum : uint { SUBLANG_KASHMIRI_SASIA = 0x02 } 810 -// #endif 811 -enum : uint { SUBLANG_KASHMIRI_INDIA = 0x02 } 812 -enum : uint { SUBLANG_KOREAN = 0x01 } 813 -enum : uint { SUBLANG_LITHUANIAN = 0x01 } 814 -enum : uint { SUBLANG_MALAY_MALAYSIA = 0x01 } 815 -enum : uint { SUBLANG_MALAY_BRUNEI_DARUSSALAM = 0x02 } 816 -enum : uint { SUBLANG_NEPALI_INDIA = 0x02 } 817 -enum : uint { SUBLANG_NORWEGIAN_BOKMAL = 0x01 } 818 -enum : uint { SUBLANG_NORWEGIAN_NYNORSK = 0x02 } 819 -enum : uint { SUBLANG_PORTUGUESE = 0x02 } 820 -enum : uint { SUBLANG_PORTUGUESE_BRAZILIAN = 0x01 } 821 -enum : uint { SUBLANG_SERBIAN_LATIN = 0x02 } 822 -enum : uint { SUBLANG_SERBIAN_CYRILLIC = 0x03 } 823 -enum : uint { SUBLANG_SPANISH = 0x01 } 824 -enum : uint { SUBLANG_SPANISH_MEXICAN = 0x02 } 825 -enum : uint { SUBLANG_SPANISH_MODERN = 0x03 } 826 -enum : uint { SUBLANG_SPANISH_GUATEMALA = 0x04 } 827 -enum : uint { SUBLANG_SPANISH_COSTA_RICA = 0x05 } 828 -enum : uint { SUBLANG_SPANISH_PANAMA = 0x06 } 829 -enum : uint { SUBLANG_SPANISH_DOMINICAN_REPUBLIC = 0x07 } 830 -enum : uint { SUBLANG_SPANISH_VENEZUELA = 0x08 } 831 -enum : uint { SUBLANG_SPANISH_COLOMBIA = 0x09 } 832 -enum : uint { SUBLANG_SPANISH_PERU = 0x0a } 833 -enum : uint { SUBLANG_SPANISH_ARGENTINA = 0x0b } 834 -enum : uint { SUBLANG_SPANISH_ECUADOR = 0x0c } 835 -enum : uint { SUBLANG_SPANISH_CHILE = 0x0d } 836 -enum : uint { SUBLANG_SPANISH_URUGUAY = 0x0e } 837 -enum : uint { SUBLANG_SPANISH_PARAGUAY = 0x0f } 838 -enum : uint { SUBLANG_SPANISH_BOLIVIA = 0x10 } 839 -enum : uint { SUBLANG_SPANISH_EL_SALVADOR = 0x11 } 840 -enum : uint { SUBLANG_SPANISH_HONDURAS = 0x12 } 841 -enum : uint { SUBLANG_SPANISH_NICARAGUA = 0x13 } 842 -enum : uint { SUBLANG_SPANISH_PUERTO_RICO = 0x14 } 843 -enum : uint { SUBLANG_SWEDISH = 0x01 } 844 -enum : uint { SUBLANG_SWEDISH_FINLAND = 0x02 } 845 -enum : uint { SUBLANG_URDU_PAKISTAN = 0x01 } 846 -enum : uint { SUBLANG_URDU_INDIA = 0x02 } 847 -enum : uint { SUBLANG_UZBEK_LATIN = 0x01 } 848 -enum : uint { SUBLANG_UZBEK_CYRILLIC = 0x02 } 849 - 850 -enum : uint { SORT_DEFAULT = 0x0 } 851 - 852 -enum : uint { SORT_JAPANESE_XJIS = 0x0 } 853 -enum : uint { SORT_JAPANESE_UNICODE = 0x1 } 854 - 855 -enum : uint { SORT_CHINESE_BIG5 = 0x0 } 856 -enum : uint { SORT_CHINESE_PRCP = 0x0 } 857 -enum : uint { SORT_CHINESE_UNICODE = 0x1 } 858 -enum : uint { SORT_CHINESE_PRC = 0x2 } 859 -enum : uint { SORT_CHINESE_BOPOMOFO = 0x3 } 860 - 861 -enum : uint { SORT_KOREAN_KSC = 0x0 } 862 -enum : uint { SORT_KOREAN_UNICODE = 0x1 } 863 - 864 -enum : uint { SORT_GERMAN_PHONE_BOOK = 0x1 } 865 - 866 -enum : uint { SORT_HUNGARIAN_DEFAULT = 0x0 } 867 -enum : uint { SORT_HUNGARIAN_TECHNICAL = 0x1 } 868 - 869 -enum : uint { SORT_GEORGIAN_TRADITIONAL = 0x0 } 870 -enum : uint { SORT_GEORGIAN_MODERN = 0x1 } 871 - 872 -WORD MAKELANGID(USHORT p, USHORT s) { return (((cast(WORD)(s)) << 10) | cast(WORD)(p)); } 873 -WORD PRIMARYLANGID(WORD lgid) { return lgid & 0x3ff; } 874 -WORD SUBLANGID(WORD lgid) { return lgid >>> 10; } 875 - 876 -enum : uint { NLS_VALID_LOCALE_MASK = 0x000fffff } 877 - 878 -DWORD MAKELCID(WORD lgid, WORD srtid) { return ((cast(DWORD)srtid) << 16) | (cast(DWORD)lgid); } 879 -DWORD MAKESORTLCID(WORD lgid, WORD srtid, WORD ver) { return (MAKELCID(lgid, srtid)) | ((cast(DWORD)ver) << 20); } 880 -WORD LANGIDFROMLCID(LCID lcid) { return lcid; } 881 -WORD SORTIDFROMLCID(LCID lcid) { return (cast(DWORD)lcid >>> 16) & 0xf; } 882 -WORD SORTVERSIONFROMLCID(LCID lcid) { return (cast(DWORD)lcid >>> 20) & 0xf; } 883 - 884 -enum : uint { LANG_SYSTEM_DEFAULT = (SUBLANG_SYS_DEFAULT << 10) | LANG_NEUTRAL } 885 -enum : uint { LANG_USER_DEFAULT = (SUBLANG_DEFAULT << 10) | LANG_NEUTRAL } 886 - 887 -enum : uint { LOCALE_SYSTEM_DEFAULT = (SORT_DEFAULT << 16) | LANG_SYSTEM_DEFAULT } 888 -enum : uint { LOCALE_USER_DEFAULT = (SORT_DEFAULT << 16) | LANG_USER_DEFAULT } 889 - 890 -enum : uint { LOCALE_NEUTRAL = (SORT_DEFAULT << 16) | (SUBLANG_NEUTRAL << 10) | LANG_NEUTRAL } 891 - 892 -enum : uint { LOCALE_INVARIANT = (SORT_DEFAULT << 16) | (SUBLANG_NEUTRAL << 10) | LANG_INVARIANT } 893 - 894 -// #if ! defined(lint) 895 -// #... 896 -// #... 897 -// #... 898 - 899 -// #else // lint 900 - 901 -// #define UNREFERENCED_PARAMETER(P) { (P) = (P); } 902 -// #define DBG_UNREFERENCED_PARAMETER(P) { (P) = (P); } 903 -// #define DBG_UNREFERENCED_LOCAL_VARIABLE(V) { (V) = (V); } 904 - 905 -// #endif // lint 906 - 907 -// #if (_MSC_VER > 1200) 908 -// #define DEFAULT_UNREACHABLE default: __assume(0) 909 -// #else 910 - 911 -// #... 912 - 913 -// #endif 914 - 915 -// #ifndef WIN32_NO_STATUS 916 - 917 -enum : DWORD { STATUS_WAIT_0 = 0x00000000 } 918 -enum : DWORD { STATUS_ABANDONED_WAIT_0 = 0x00000080 } 919 -enum : DWORD { STATUS_USER_APC = 0x000000C0 } 920 -enum : DWORD { STATUS_TIMEOUT = 0x00000102 } 921 -enum : DWORD { STATUS_PENDING = 0x00000103 } 922 -enum : DWORD { DBG_EXCEPTION_HANDLED = 0x00010001 } 923 -enum : DWORD { DBG_CONTINUE = 0x00010002 } 924 -enum : DWORD { STATUS_SEGMENT_NOTIFICATION = 0x40000005 } 925 -enum : DWORD { DBG_TERMINATE_THREAD = 0x40010003 } 926 -enum : DWORD { DBG_TERMINATE_PROCESS = 0x40010004 } 927 -enum : DWORD { DBG_CONTROL_C = 0x40010005 } 928 -enum : DWORD { DBG_CONTROL_BREAK = 0x40010008 } 929 -enum : DWORD { STATUS_GUARD_PAGE_VIOLATION = 0x80000001 } 930 -enum : DWORD { STATUS_DATATYPE_MISALIGNMENT = 0x80000002 } 931 -enum : DWORD { STATUS_BREAKPOINT = 0x80000003 } 932 -enum : DWORD { STATUS_SINGLE_STEP = 0x80000004 } 933 -enum : DWORD { DBG_EXCEPTION_NOT_HANDLED = 0x80010001 } 934 -enum : DWORD { STATUS_ACCESS_VIOLATION = 0xC0000005 } 935 -enum : DWORD { STATUS_IN_PAGE_ERROR = 0xC0000006 } 936 -enum : DWORD { STATUS_INVALID_HANDLE = 0xC0000008 } 937 -enum : DWORD { STATUS_NO_MEMORY = 0xC0000017 } 938 -enum : DWORD { STATUS_ILLEGAL_INSTRUCTION = 0xC000001D } 939 -enum : DWORD { STATUS_NONCONTINUABLE_EXCEPTION = 0xC0000025 } 940 -enum : DWORD { STATUS_INVALID_DISPOSITION = 0xC0000026 } 941 -enum : DWORD { STATUS_ARRAY_BOUNDS_EXCEEDED = 0xC000008C } 942 -enum : DWORD { STATUS_FLOAT_DENORMAL_OPERAND = 0xC000008D } 943 -enum : DWORD { STATUS_FLOAT_DIVIDE_BY_ZERO = 0xC000008E } 944 -enum : DWORD { STATUS_FLOAT_INEXACT_RESULT = 0xC000008F } 945 -enum : DWORD { STATUS_FLOAT_INVALID_OPERATION = 0xC0000090 } 946 -enum : DWORD { STATUS_FLOAT_OVERFLOW = 0xC0000091 } 947 -enum : DWORD { STATUS_FLOAT_STACK_CHECK = 0xC0000092 } 948 -enum : DWORD { STATUS_FLOAT_UNDERFLOW = 0xC0000093 } 949 -enum : DWORD { STATUS_INTEGER_DIVIDE_BY_ZERO = 0xC0000094 } 950 -enum : DWORD { STATUS_INTEGER_OVERFLOW = 0xC0000095 } 951 -enum : DWORD { STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096 } 952 -enum : DWORD { STATUS_STACK_OVERFLOW = 0xC00000FD } 953 -enum : DWORD { STATUS_CONTROL_C_EXIT = 0xC000013A } 954 -enum : DWORD { STATUS_FLOAT_MULTIPLE_FAULTS = 0xC00002B4 } 955 -enum : DWORD { STATUS_FLOAT_MULTIPLE_TRAPS = 0xC00002B5 } 956 -enum : DWORD { STATUS_REG_NAT_CONSUMPTION = 0xC00002C9 } 957 -// #if defined(STATUS_SUCCESS) || (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) 958 -enum : DWORD { STATUS_SXS_EARLY_DEACTIVATION = 0xC015000F } 959 -enum : DWORD { STATUS_SXS_INVALID_DEACTIVATION = 0xC0150010 } 960 -// #endif 961 - 962 -// #endif 963 -enum : uint { MAXIMUM_WAIT_OBJECTS = 64 } 964 - 965 -alias MAXCHAR MAXIMUM_SUSPEND_COUNT; 966 - 967 -alias ULONG_PTR KSPIN_LOCK; 968 -alias KSPIN_LOCK* PKSPIN_LOCK; 969 - 970 -// #if defined(_AMD64_) 971 - 972 -// #if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) 973 - 974 -// #... 975 - 976 -// ... 977 - 978 -// #... 979 - 980 -// #... 981 - 982 -// ... 983 - 984 -// #... 985 - 986 -// ... 987 - 988 -// ... 989 - 990 -// ... 991 - 992 -// ... 993 - 994 -// #... 995 -// #... 996 -// #... 997 -// #... 998 - 999 -// #... 1000 -// #... 1001 - 1002 -// ... 1003 - 1004 -// ... 1005 - 1006 -// #... 1007 -// #... 1008 - 1009 -// ... 1010 - 1011 -// ... 1012 - 1013 -// ... 1014 - 1015 -// ... 1016 - 1017 -// ... 1018 - 1019 -// ... 1020 - 1021 -// ... 1022 - 1023 -// ... 1024 - 1025 -// #... 1026 -// #... 1027 -// #... 1028 -// #... 1029 -// #... 1030 -// #... 1031 -// #... 1032 -// #... 1033 - 1034 -// #endif // defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) 1035 - 1036 -// #if !defined(RC_INVOKED) 1037 - 1038 -// #... 1039 - 1040 -// #... 1041 -// #... 1042 -// #... 1043 -// #... 1044 -// #... 1045 - 1046 -// #... 1047 - 1048 -// #endif // !defined(RC_INVOKED) 1049 - 1050 -// ... 1051 - 1052 -// ... 1053 - 1054 -// #... 1055 - 1056 -// ... 1057 - 1058 -// ... 1059 - 1060 -// ... 1061 - 1062 -// ... 1063 - 1064 -// ... 1065 - 1066 -// ... 1067 - 1068 -// ... 1069 - 1070 -// ... 1071 - 1072 -// ... 1073 - 1074 -// #endif // _AMD64_ 1075 - 1076 -// #ifdef _ALPHA_ // winnt 1077 -// ... 1078 -// #if defined(_M_ALPHA) // winnt 1079 -// #... 1080 -// #endif // winnt 1081 -// #endif // winnt 1082 - 1083 -// #if defined(_M_ALPHA) 1084 -// #... 1085 -// #else 1086 -extern(Windows) export _TEB NtCurrentTeb(); 1087 -// #endif 1088 - 1089 -// #ifdef _ALPHA_ 1090 - 1091 -// #... 1092 -// #... 1093 - 1094 -// #if !defined(RC_INVOKED) 1095 - 1096 -// #... 1097 - 1098 -// #... 1099 -// #... 1100 -// #... 1101 - 1102 -// #... 1103 - 1104 -// #endif 1105 - 1106 -// #ifndef _PORTABLE_32BIT_CONTEXT 1107 - 1108 -// ... 1109 - 1110 -// ... 1111 - 1112 -// ... 1113 - 1114 -// ... 1115 - 1116 -// ... 1117 - 1118 -// ... 1119 - 1120 -// ... 1121 - 1122 -// #else 1123 - 1124 -// #... 1125 - 1126 -// #endif // _PORTABLE_32BIT_CONTEXT 1127 - 1128 -// #endif // _ALPHA_ 1129 - 1130 -// #ifdef _ALPHA_ 1131 - 1132 -// ... 1133 - 1134 -// #endif // _ALPHA_ 1135 - 1136 -// #ifdef _X86_ 1137 - 1138 -// #if !defined(MIDL_PASS) 1139 -// #if !defined(RC_INVOKED) 1140 - 1141 -// #if _MSC_VER >= 1200 1142 -// #pragma warning(push) 1143 -// #endif 1144 -// #pragma warning(disable:4164) // disable C4164 warning so that apps that 1145 - 1146 -// #ifdef _M_IX86 1147 -// #pragma function(_enable) 1148 -// #pragma function(_disable) 1149 -// #endif 1150 - 1151 -// #if _MSC_VER >= 1200 1152 -// #pragma warning(pop) 1153 -// #else 1154 -// #... 1155 -// #endif 1156 - 1157 -// #endif 1158 -// #endif 1159 - 1160 -// #if !defined(MIDL_PASS) && defined(_M_IX86) 1161 -// #if _MSC_VER >= 1200 1162 -// #pragma warning(push) 1163 -// #endif 1164 -// #pragma warning (disable:4035) // disable 4035 (function must return something) 1165 -PVOID GetFiberData() { asm { mov EAX, FS:[0x10]; mov EAX, [EAX]; } } 1166 -PVOID GetCurrentFiber() { asm { mov EAX, FS:[0x10]; } } 1167 - 1168 -// #if _MSC_VER >= 1200 1169 -// #pragma warning(pop) 1170 -// #else 1171 -// #... 1172 -// #endif 1173 -// #endif 1174 - 1175 -enum : uint { SIZE_OF_80387_REGISTERS = 80 } 1176 - 1177 -// #if !defined(RC_INVOKED) 1178 - 1179 -enum : uint { CONTEXT_i386 = 0x00010000 } 1180 -enum : uint { CONTEXT_i486 = 0x00010000 } 1181 - 1182 -enum : uint { CONTEXT_CONTROL = CONTEXT_i386 | 0x00000001L } 1183 -enum : uint { CONTEXT_INTEGER = CONTEXT_i386 | 0x00000002L } 1184 -enum : uint { CONTEXT_SEGMENTS = CONTEXT_i386 | 0x00000004L } 1185 -enum : uint { CONTEXT_FLOATING_POINT = CONTEXT_i386 | 0x00000008L } 1186 -enum : uint { CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 | 0x00000010L } 1187 -enum : uint { CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 | 0x00000020L } 1188 - 1189 -enum : uint { CONTEXT_FULL = CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS } 1190 - 1191 -// #endif 1192 - 1193 -enum : uint { MAXIMUM_SUPPORTED_EXTENSION = 512 } 1194 - 1195 -struct _FLOATING_SAVE_AREA { 1196 - DWORD ControlWord; 1197 - DWORD StatusWord; 1198 - DWORD TagWord; 1199 - DWORD ErrorOffset; 1200 - DWORD ErrorSelector; 1201 - DWORD DataOffset; 1202 - DWORD DataSelector; 1203 - BYTE RegisterArea[SIZE_OF_80387_REGISTERS]; 1204 - DWORD Cr0NpxState; 1205 -} 1206 -alias _FLOATING_SAVE_AREA FLOATING_SAVE_AREA; 1207 - 1208 -alias FLOATING_SAVE_AREA* PFLOATING_SAVE_AREA; 1209 - 1210 -struct _CONTEXT { 1211 - 1212 - DWORD ContextFlags; 1213 - 1214 - DWORD Dr0; 1215 - DWORD Dr1; 1216 - DWORD Dr2; 1217 - DWORD Dr3; 1218 - DWORD Dr6; 1219 - DWORD Dr7; 1220 - 1221 - FLOATING_SAVE_AREA FloatSave; 1222 - 1223 - DWORD SegGs; 1224 - DWORD SegFs; 1225 - DWORD SegEs; 1226 - DWORD SegDs; 1227 - 1228 - DWORD Edi; 1229 - DWORD Esi; 1230 - DWORD Ebx; 1231 - DWORD Edx; 1232 - DWORD Ecx; 1233 - DWORD Eax; 1234 - 1235 - DWORD Ebp; 1236 - DWORD Eip; 1237 - DWORD SegCs; 1238 - DWORD EFlags; 1239 - DWORD Esp; 1240 - DWORD SegSs; 1241 - 1242 - BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION]; 1243 -} 1244 -alias _CONTEXT CONTEXT; 1245 - 1246 -alias CONTEXT* PCONTEXT; 1247 - 1248 -// #endif //_X86_ 1249 - 1250 -// #ifndef _LDT_ENTRY_DEFINED 1251 -// #define _LDT_ENTRY_DEFINED 1252 - 1253 -struct _LDT_ENTRY { 1254 - WORD LimitLow; 1255 - WORD BaseLow; 1256 -union { 1257 -struct { 1258 - BYTE BaseMid; 1259 - BYTE Flags1; 1260 - BYTE Flags2; 1261 - BYTE BaseHi; 1262 -} 1263 - 1264 -struct { 1265 -// DWORD BaseMid : 8; 1266 -// DWORD Type : 5; 1267 -// DWORD Dpl : 2; 1268 -// DWORD Pres : 1; 1269 -// DWORD LimitHi : 4; 1270 -// DWORD Sys : 1; 1271 -// DWORD Reserved_0 : 1; 1272 -// DWORD Default_Big : 1; 1273 -// DWORD Granularity : 1; 1274 -// DWORD BaseHi : 8; 1275 -} 1276 - 1277 -} 1278 - 1279 -} 1280 -alias _LDT_ENTRY LDT_ENTRY; 1281 -alias _LDT_ENTRY* PLDT_ENTRY; 1282 - 1283 -// #endif 1284 - 1285 -// #if defined(_MIPS_) 1286 - 1287 -// #... 1288 -// #... 1289 - 1290 -// #if !defined(RC_INVOKED) 1291 - 1292 -// #... 1293 - 1294 -// #... 1295 -// #... 1296 -// #... 1297 -// #... 1298 -// #... 1299 - 1300 -// #... 1301 -// ... 1302 - 1303 -// #endif 1304 - 1305 -// ... 1306 - 1307 -// ... 1308 - 1309 -// ... 1310 - 1311 -// ... 1312 - 1313 -// ... 1314 - 1315 -// ... 1316 - 1317 -// ... 1318 - 1319 -// ... 1320 - 1321 -// ... 1322 - 1323 -// ... 1324 - 1325 -// ... 1326 - 1327 -// ... 1328 - 1329 -// ... 1330 - 1331 -// ... 1332 - 1333 -// ... 1334 - 1335 -// ... 1336 - 1337 -// #... 1338 - 1339 -// #endif // MIPS 1340 - 1341 -// #if defined(_MIPS_) 1342 - 1343 -// ... 1344 - 1345 -// #endif // MIPS 1346 - 1347 -// #if defined(_PPC_) 1348 - 1349 -// #if defined(_M_PPC) && defined(_MSC_VER) && (_MSC_VER>=1000) 1350 -// ... 1351 -// #... 1352 -// #elif defined(_M_PPC) 1353 -// ... 1354 -// #... 1355 -// #endif 1356 - 1357 -// #... 1358 -// #... 1359 - 1360 -// #if !defined(RC_INVOKED) 1361 - 1362 -// #... 1363 -// #... 1364 -// #... 1365 -// #... 1366 - 1367 -// #... 1368 - 1369 -// #endif 1370 - 1371 -// ... 1372 - 1373 -// ... 1374 - 1375 -// ... 1376 - 1377 -// ... 1378 - 1379 -// ... 1380 - 1381 -// ... 1382 - 1383 -// ... 1384 - 1385 -// ... 1386 - 1387 -// ... 1388 - 1389 -// ... 1390 - 1391 -// ... 1392 - 1393 -// ... 1394 - 1395 -// ... 1396 - 1397 -// #endif // defined(_PPC_) 1398 - 1399 -// #if defined(_MPPC_) 1400 - 1401 -// #if defined(_M_PPC) && defined(_MSC_VER) && (_MSC_VER>=1000) 1402 -// ... 1403 -// #... 1404 -// #elif defined(_M_PPC) 1405 -// ... 1406 -// #... 1407 -// #endif 1408 - 1409 -// #... 1410 -// #... 1411 - 1412 -// #if !defined(RC_INVOKED) 1413 - 1414 -// #... 1415 -// #... 1416 -// #... 1417 -// #... 1418 - 1419 -// #... 1420 - 1421 -// #endif 1422 - 1423 -// ... 1424 - 1425 -// ... 1426 - 1427 -// ... 1428 - 1429 -// ... 1430 - 1431 -// ... 1432 - 1433 -// ... 1434 - 1435 -// ... 1436 - 1437 -// ... 1438 - 1439 -// ... 1440 - 1441 -// ... 1442 - 1443 -// ... 1444 - 1445 -// ... 1446 - 1447 -// ... 1448 - 1449 -// #endif // defined(_MPPC_) 1450 - 1451 -// #if !defined(__midl) && !defined(GENUTIL) && !defined(_GENIA64_) && defined(_IA64_) 1452 - 1453 -// ... 1454 -// #if defined(_M_IA64) // winnt 1455 -// #... 1456 -// #endif // winnt 1457 - 1458 -// #if defined(_M_IA64) 1459 -// #... 1460 -// #else 1461 -// ... 1462 -// #endif 1463 - 1464 -// #... 1465 -// #... 1466 - 1467 -// #endif // !defined(__midl) && !defined(GENUTIL) && !defined(_GENIA64_) && defined(_M_IA64) 1468 - 1469 -// #ifdef _IA64_ 1470 - 1471 -// #if !defined(RC_INVOKED) 1472 - 1473 -// #... 1474 - 1475 -// #... 1476 -// #... 1477 -// #... 1478 -// #... 1479 -// #... 1480 -// #... 1481 - 1482 -// #... 1483 -// #... 1484 - 1485 -// #endif // !defined(RC_INVOKED) 1486 - 1487 -// ... 1488 - 1489 -// ... 1490 - 1491 -// ... 1492 - 1493 -// ... 1494 - 1495 -// ... 1496 - 1497 -// ... 1498 - 1499 -// ... 1500 - 1501 -// ... 1502 - 1503 -// ... 1504 - 1505 -// ... 1506 - 1507 -// ... 1508 - 1509 -// ... 1510 - 1511 -// ... 1512 - 1513 -// ... 1514 - 1515 -// ... 1516 - 1517 -// ... 1518 - 1519 -// ... 1520 - 1521 -// ... 1522 - 1523 -// ... 1524 - 1525 -// ... 1526 - 1527 -// ... 1528 - 1529 -// ... 1530 - 1531 -// ... 1532 - 1533 -// ... 1534 - 1535 -// ... 1536 - 1537 -// ... 1538 - 1539 -// ... 1540 - 1541 -// #endif // _IA64_ 1542 - 1543 -// #ifdef _IA64_ 1544 - 1545 -// ... 1546 - 1547 -// #endif // _IA64_ 1548 - 1549 -enum : uint { EXCEPTION_NONCONTINUABLE = 0x1 } 1550 -enum : uint { EXCEPTION_MAXIMUM_PARAMETERS = 15 } 1551 - 1552 -struct _EXCEPTION_RECORD { 1553 - DWORD ExceptionCode; 1554 - DWORD ExceptionFlags; 1555 - _EXCEPTION_RECORD *ExceptionRecord; 1556 - PVOID ExceptionAddress; 1557 - DWORD NumberParameters; 1558 - ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; 1559 -} 1560 -alias _EXCEPTION_RECORD EXCEPTION_RECORD; 1561 - 1562 -alias EXCEPTION_RECORD* PEXCEPTION_RECORD; 1563 - 1564 -struct _EXCEPTION_RECORD32 { 1565 - DWORD ExceptionCode; 1566 - DWORD ExceptionFlags; 1567 - DWORD ExceptionRecord; 1568 - DWORD ExceptionAddress; 1569 - DWORD NumberParameters; 1570 - DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; 1571 -} 1572 -alias _EXCEPTION_RECORD32 EXCEPTION_RECORD32; 1573 -alias _EXCEPTION_RECORD32* PEXCEPTION_RECORD32; 1574 - 1575 -struct _EXCEPTION_RECORD64 { 1576 - DWORD ExceptionCode; 1577 - DWORD ExceptionFlags; 1578 - DWORD64 ExceptionRecord; 1579 - DWORD64 ExceptionAddress; 1580 - DWORD NumberParameters; 1581 - DWORD __unusedAlignment; 1582 - DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; 1583 -} 1584 -alias _EXCEPTION_RECORD64 EXCEPTION_RECORD64; 1585 -alias _EXCEPTION_RECORD64* PEXCEPTION_RECORD64; 1586 - 1587 -struct _EXCEPTION_POINTERS { 1588 - PEXCEPTION_RECORD ExceptionRecord; 1589 - PCONTEXT ContextRecord; 1590 -} 1591 -alias _EXCEPTION_POINTERS EXCEPTION_POINTERS; 1592 -alias _EXCEPTION_POINTERS* PEXCEPTION_POINTERS; 1593 - 1594 -alias PVOID PACCESS_TOKEN; 1595 -alias PVOID PSECURITY_DESCRIPTOR; 1596 -alias PVOID PSID; 1597 - 1598 -alias DWORD ACCESS_MASK; 1599 -alias ACCESS_MASK* PACCESS_MASK; 1600 - 1601 -enum : uint { DELETE = 0x00010000 } 1602 -enum : uint { READ_CONTROL = 0x00020000 } 1603 -enum : uint { WRITE_DAC = 0x00040000 } 1604 -enum : uint { WRITE_OWNER = 0x00080000 } 1605 -enum : uint { SYNCHRONIZE = 0x00100000 } 1606 - 1607 -enum : uint { STANDARD_RIGHTS_REQUIRED = 0x000F0000 } 1608 - 1609 -enum : uint { STANDARD_RIGHTS_READ = READ_CONTROL } 1610 -enum : uint { STANDARD_RIGHTS_WRITE = READ_CONTROL } 1611 -enum : uint { STANDARD_RIGHTS_EXECUTE = READ_CONTROL } 1612 - 1613 -enum : uint { STANDARD_RIGHTS_ALL = 0x001F0000 } 1614 - 1615 -enum : uint { SPECIFIC_RIGHTS_ALL = 0x0000FFFF } 1616 - 1617 -enum : uint { ACCESS_SYSTEM_SECURITY = 0x01000000 } 1618 - 1619 -enum : uint { MAXIMUM_ALLOWED = 0x02000000 } 1620 - 1621 -enum : uint { GENERIC_READ = 0x80000000 } 1622 -enum : uint { GENERIC_WRITE = 0x40000000 } 1623 -enum : uint { GENERIC_EXECUTE = 0x20000000 } 1624 -enum : uint { GENERIC_ALL = 0x10000000 } 1625 - 1626 -struct _GENERIC_MAPPING { 1627 - ACCESS_MASK GenericRead; 1628 - ACCESS_MASK GenericWrite; 1629 - ACCESS_MASK GenericExecute; 1630 - ACCESS_MASK GenericAll; 1631 -} 1632 -alias _GENERIC_MAPPING GENERIC_MAPPING; 1633 - 1634 -alias GENERIC_MAPPING* PGENERIC_MAPPING; 1635 - 1636 -align(4): 1637 - 1638 -struct _LUID_AND_ATTRIBUTES { 1639 - LUID Luid; 1640 - DWORD Attributes; 1641 -} 1642 -alias _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES; 1643 -alias _LUID_AND_ATTRIBUTES* PLUID_AND_ATTRIBUTES; 1644 - 1645 -alias LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; 1646 -alias LUID_AND_ATTRIBUTES_ARRAY* PLUID_AND_ATTRIBUTES_ARRAY; 1647 - 1648 -align: 1649 - 1650 -// #ifndef SID_IDENTIFIER_AUTHORITY_DEFINED 1651 -// #define SID_IDENTIFIER_AUTHORITY_DEFINED 1652 -struct _SID_IDENTIFIER_AUTHORITY { 1653 - BYTE Value[6]; 1654 -} 1655 -alias _SID_IDENTIFIER_AUTHORITY SID_IDENTIFIER_AUTHORITY; 1656 -alias _SID_IDENTIFIER_AUTHORITY* PSID_IDENTIFIER_AUTHORITY; 1657 - 1658 -// #endif 1659 - 1660 -// #ifndef SID_DEFINED 1661 -// #define SID_DEFINED 1662 -struct _SID { 1663 - BYTE Revision; 1664 - BYTE SubAuthorityCount; 1665 - SID_IDENTIFIER_AUTHORITY IdentifierAuthority; 1666 -// #ifdef MIDL_PASS 1667 -// ... 1668 -// #else // MIDL_PASS 1669 - DWORD SubAuthority[ANYSIZE_ARRAY]; 1670 -// #endif // MIDL_PASS 1671 -} 1672 -alias _SID SID; 1673 -alias _SID* PISID; 1674 - 1675 -// #endif 1676 - 1677 -enum : uint { SID_REVISION = 1 } 1678 -enum : uint { SID_MAX_SUB_AUTHORITIES = 15 } 1679 -enum : uint { SID_RECOMMENDED_SUB_AUTHORITIES = 1 } 1680 - 1681 -// #ifndef MIDL_PASS 1682 -const uint SECURITY_MAX_SID_SIZE = SID.sizeof - DWORD.sizeof + (SID_MAX_SUB_AUTHORITIES * DWORD.sizeof); 1683 -// #endif // MIDL_PASS 1684 - 1685 -alias int _SID_NAME_USE; 12 +public import win32.basetsd, win32.windef, win32.winerror; 13 +private import win32.w32api; 14 + 15 +/* Translation Notes: 16 +The following macros are unneeded for D: 17 +FIELD_OFFSET(t,f), CONTAINING_RECORD(address, type, field) 18 +*/ 19 + 20 +alias void VOID; 21 +alias char CHAR, CCHAR; 22 +alias wchar WCHAR; 23 +alias bool BOOLEAN; 24 +alias byte FCHAR; 25 +alias ubyte UCHAR; 26 +alias short SHORT; 27 +alias ushort LANGID, FSHORT; 28 +alias uint LCID, FLONG, ACCESS_MASK; 29 +alias long LONGLONG, USN; 30 +alias ulong DWORDLONG, ULONGLONG; 31 + 32 +alias void* PVOID, LPVOID; 33 +alias char* PSZ, PCHAR, PCCHAR, LPCH, PCH, LPSTR, PSTR; 34 +alias wchar* PWCHAR, LPWCH, PWCH, LPWSTR, PWSTR; 35 +alias bool* PBOOLEAN; 36 +alias ubyte* PUCHAR; 37 +alias short* PSHORT; 38 +alias int* PLONG; 39 +alias uint* PLCID, PACCESS_MASK; 40 +alias long* PLONGLONG; 41 +alias ulong* PDWORDLONG, PULONGLONG; 42 + 43 +// FIXME(MinGW) for __WIN64 44 +alias void* PVOID64; 45 + 46 +// const versions 47 +alias CPtr!(char) LPCCH, PCSTR, LPCSTR; 48 +alias CPtr!(wchar) LPCWCH, PCWCH, LPCWSTR, PCWSTR; 49 + 50 +version (Unicode) { 51 + alias WCHAR TCHAR, _TCHAR; 52 +} else { 53 + alias CHAR TCHAR, _TCHAR; 54 +} 55 + 56 +alias TCHAR TBYTE; 57 +alias TCHAR* PTCH, PTBYTE, LPTCH, PTSTR, LPTSTR, LP, PTCHAR; 58 +alias CPtr!(TCHAR) LPCTSTR; 59 + 60 +const char ANSI_NULL = '\0'; 61 +const wchar UNICODE_NULL = '\0'; 62 + 63 +const APPLICATION_ERROR_MASK = 0x20000000; 64 +const ERROR_SEVERITY_SUCCESS = 0x00000000; 65 +const ERROR_SEVERITY_INFORMATIONAL = 0x40000000; 66 +const ERROR_SEVERITY_WARNING = 0x80000000; 67 +const ERROR_SEVERITY_ERROR = 0xC0000000; 68 + 69 +// MinGW: also in ddk/ntifs.h 70 +enum : USHORT { 71 + COMPRESSION_FORMAT_NONE = 0x0000, 72 + COMPRESSION_FORMAT_DEFAULT = 0x0001, 73 + COMPRESSION_FORMAT_LZNT1 = 0x0002, 74 + COMPRESSION_ENGINE_STANDARD = 0x0000, 75 + COMPRESSION_ENGINE_MAXIMUM = 0x0100, 76 + COMPRESSION_ENGINE_HIBER = 0x0200 77 +} 78 + 79 +// ACCESS_DENIED_OBJECT_ACE, etc 80 +const DWORD 81 + ACE_OBJECT_TYPE_PRESENT = 0x00000001, 82 + ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x00000002; 83 + 84 +// ACE_HEADER.AceType 85 +// also in ddk/ntifs.h 86 +enum : BYTE { 87 + ACCESS_ALLOWED_ACE_TYPE, 88 + ACCESS_DENIED_ACE_TYPE, 89 + SYSTEM_AUDIT_ACE_TYPE, 90 + SYSTEM_ALARM_ACE_TYPE 91 +} 92 + 93 +// ACE_HEADER.AceFlags 94 +const BYTE 95 + OBJECT_INHERIT_ACE = 0x01, 96 + CONTAINER_INHERIT_ACE = 0x02, 97 + NO_PROPAGATE_INHERIT_ACE = 0x04, 98 + INHERIT_ONLY_ACE = 0x08, 99 + INHERITED_ACE = 0x10, 100 + VALID_INHERIT_FLAGS = 0x1F, 101 + SUCCESSFUL_ACCESS_ACE_FLAG = 0x40, 102 + FAILED_ACCESS_ACE_FLAG = 0x80; 103 + 104 +// Access Mask Format 105 +const ACCESS_MASK 106 + DELETE = 0x00010000, 107 + READ_CONTROL = 0x00020000, 108 + WRITE_DAC = 0x00040000, 109 + WRITE_OWNER = 0x00080000, 110 + SYNCHRONIZE = 0x00100000, 111 + ACCESS_SYSTEM_SECURITY = 0x01000000, 112 + MAXIMUM_ALLOWED = 0x02000000, 113 + GENERIC_READ = 0x80000000, 114 + GENERIC_WRITE = 0x40000000, 115 + GENERIC_EXECUTE = 0x20000000, 116 + GENERIC_ALL = 0x10000000, 117 + STANDARD_RIGHTS_REQUIRED = 0x000F0000, 118 + STANDARD_RIGHTS_READ = 0x00020000, 119 + STANDARD_RIGHTS_WRITE = 0x00020000, 120 + STANDARD_RIGHTS_EXECUTE = 0x00020000, 121 + STANDARD_RIGHTS_ALL = 0x001F0000, 122 + SPECIFIC_RIGHTS_ALL = 0x0000FFFF; 123 + 124 + 125 +const DWORD INVALID_FILE_ATTRIBUTES = -1; 126 + 127 +// MinGW: Also in ddk/winddk.h 128 +const DWORD 129 + FILE_LIST_DIRECTORY = 0x00000001, 130 + FILE_READ_DATA = 0x00000001, 131 + FILE_ADD_FILE = 0x00000002, 132 + FILE_WRITE_DATA = 0x00000002, 133 + FILE_ADD_SUBDIRECTORY = 0x00000004, 134 + FILE_APPEND_DATA = 0x00000004, 135 + FILE_CREATE_PIPE_INSTANCE = 0x00000004, 136 + FILE_READ_EA = 0x00000008, 137 + FILE_READ_PROPERTIES = 0x00000008, 138 + FILE_WRITE_EA = 0x00000010, 139 + FILE_WRITE_PROPERTIES = 0x00000010, 140 + FILE_EXECUTE = 0x00000020, 141 + FILE_TRAVERSE = 0x00000020, 142 + FILE_DELETE_CHILD = 0x00000040, 143 + FILE_READ_ATTRIBUTES = 0x00000080, 144 + FILE_WRITE_ATTRIBUTES = 0x00000100; 145 + 146 +const DWORD 147 + FILE_SHARE_READ = 0x00000001, 148 + FILE_SHARE_WRITE = 0x00000002, 149 + FILE_SHARE_DELETE = 0x00000004, 150 + FILE_SHARE_VALID_FLAGS = 0x00000007; 151 + 152 +const DWORD 153 + FILE_ATTRIBUTE_READONLY = 0x00000001, 154 + FILE_ATTRIBUTE_HIDDEN = 0x00000002, 155 + FILE_ATTRIBUTE_SYSTEM = 0x00000004, 156 + FILE_ATTRIBUTE_DIRECTORY = 0x00000010, 157 + FILE_ATTRIBUTE_ARCHIVE = 0x00000020, 158 + FILE_ATTRIBUTE_DEVICE = 0x00000040, 159 + FILE_ATTRIBUTE_NORMAL = 0x00000080, 160 + FILE_ATTRIBUTE_TEMPORARY = 0x00000100, 161 + FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200, 162 + FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400, 163 + FILE_ATTRIBUTE_COMPRESSED = 0x00000800, 164 + FILE_ATTRIBUTE_OFFLINE = 0x00001000, 165 + FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000, 166 + FILE_ATTRIBUTE_ENCRYPTED = 0x00004000, 167 + FILE_ATTRIBUTE_VALID_FLAGS = 0x00007fb7, 168 + FILE_ATTRIBUTE_VALID_SET_FLAGS = 0x000031a7; 169 + 170 +// These are not documented on MSDN 171 +const FILE_COPY_STRUCTURED_STORAGE = 0x00000041; 172 +const FILE_STRUCTURED_STORAGE = 0x00000441; 173 + 174 +// Nor are these 175 +const FILE_VALID_OPTION_FLAGS = 0x00ffffff; 176 +const FILE_VALID_PIPE_OPTION_FLAGS = 0x00000032; 177 +const FILE_VALID_MAILSLOT_OPTION_FLAGS = 0x00000032; 178 +const FILE_VALID_SET_FLAGS = 0x00000036; 179 + 180 +const ULONG 181 + FILE_SUPERSEDE = 0x00000000, 182 + FILE_OPEN = 0x00000001, 183 + FILE_CREATE = 0x00000002, 184 + FILE_OPEN_IF = 0x00000003, 185 + FILE_OVERWRITE = 0x00000004, 186 + FILE_OVERWRITE_IF = 0x00000005, 187 + FILE_MAXIMUM_DISPOSITION = 0x00000005; 188 + 189 +const ULONG 190 + FILE_DIRECTORY_FILE = 0x00000001, 191 + FILE_WRITE_THROUGH = 0x00000002, 192 + FILE_SEQUENTIAL_ONLY = 0x00000004, 193 + FILE_NO_INTERMEDIATE_BUFFERING = 0x00000008, 194 + FILE_SYNCHRONOUS_IO_ALERT = 0x00000010, 195 + FILE_SYNCHRONOUS_IO_NONALERT = 0x00000020, 196 + FILE_NON_DIRECTORY_FILE = 0x00000040, 197 + FILE_CREATE_TREE_CONNECTION = 0x00000080, 198 + FILE_COMPLETE_IF_OPLOCKED = 0x00000100, 199 + FILE_NO_EA_KNOWLEDGE = 0x00000200, 200 + FILE_OPEN_FOR_RECOVERY = 0x00000400, 201 + FILE_RANDOM_ACCESS = 0x00000800, 202 + FILE_DELETE_ON_CLOSE = 0x00001000, 203 + FILE_OPEN_BY_FILE_ID = 0x00002000, 204 + FILE_OPEN_FOR_BACKUP_INTENT = 0x00004000, 205 + FILE_NO_COMPRESSION = 0x00008000, 206 + FILE_RESERVE_OPFILTER = 0x00100000, 207 + FILE_OPEN_REPARSE_POINT = 0x00200000, 208 + FILE_OPEN_NO_RECALL = 0x00400000, 209 + FILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000; 210 + 211 + 212 +const ACCESS_MASK 213 + FILE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x01FF, 214 + FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES 215 + | FILE_EXECUTE | SYNCHRONIZE, 216 + FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA 217 + | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE, 218 + FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA 219 + | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA 220 + | SYNCHRONIZE; 221 + 222 +// MinGW: end winddk.h 223 +// MinGW: also in ddk/ntifs.h 224 +const DWORD 225 + FILE_NOTIFY_CHANGE_FILE_NAME = 0x00000001, 226 + FILE_NOTIFY_CHANGE_DIR_NAME = 0x00000002, 227 + FILE_NOTIFY_CHANGE_NAME = 0x00000003, 228 + FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x00000004, 229 + FILE_NOTIFY_CHANGE_SIZE = 0x00000008, 230 + FILE_NOTIFY_CHANGE_LAST_WRITE = 0x00000010, 231 + FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x00000020, 232 + FILE_NOTIFY_CHANGE_CREATION = 0x00000040, 233 + FILE_NOTIFY_CHANGE_EA = 0x00000080, 234 + FILE_NOTIFY_CHANGE_SECURITY = 0x00000100, 235 + FILE_NOTIFY_CHANGE_STREAM_NAME = 0x00000200, 236 + FILE_NOTIFY_CHANGE_STREAM_SIZE = 0x00000400, 237 + FILE_NOTIFY_CHANGE_STREAM_WRITE = 0x00000800, 238 + FILE_NOTIFY_VALID_MASK = 0x00000fff; 239 + 240 +const DWORD 241 + FILE_CASE_SENSITIVE_SEARCH = 0x00000001, 242 + FILE_CASE_PRESERVED_NAMES = 0x00000002, 243 + FILE_UNICODE_ON_DISK = 0x00000004, 244 + FILE_PERSISTENT_ACLS = 0x00000008, 245 + FILE_FILE_COMPRESSION = 0x00000010, 246 + FILE_VOLUME_QUOTAS = 0x00000020, 247 + FILE_SUPPORTS_SPARSE_FILES = 0x00000040, 248 + FILE_SUPPORTS_REPARSE_POINTS = 0x00000080, 249 + FILE_SUPPORTS_REMOTE_STORAGE = 0x00000100, 250 + FS_LFN_APIS = 0x00004000, 251 + FILE_VOLUME_IS_COMPRESSED = 0x00008000, 252 + FILE_SUPPORTS_OBJECT_IDS = 0x00010000, 253 + FILE_SUPPORTS_ENCRYPTION = 0x00020000, 254 + FILE_NAMED_STREAMS = 0x00040000, 255 + FILE_READ_ONLY_VOLUME = 0x00080000, 256 + FILE_SEQUENTIAL_WRITE_ONCE = 0x00100000, 257 + FILE_SUPPORTS_TRANSACTIONS = 0x00200000; 258 + 259 +// These are not documented on MSDN 260 +const ACCESS_MASK 261 + IO_COMPLETION_QUERY_STATE = 1, 262 + IO_COMPLETION_MODIFY_STATE = 2, 263 + IO_COMPLETION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 3; 264 +// MinGW: end ntifs.h 265 + 266 +// MinGW: also in ddk/winddk.h 267 +const DWORD 268 + DUPLICATE_CLOSE_SOURCE = 1, 269 + DUPLICATE_SAME_ACCESS = 2, 270 + DUPLICATE_SAME_ATTRIBUTES = 4; 271 +// MinGW: end winddk.k 272 + 273 +const DWORD 274 + MAILSLOT_NO_MESSAGE = -1, 275 + MAILSLOT_WAIT_FOREVER = -1; 276 + 277 +const ACCESS_MASK 278 + PROCESS_TERMINATE = 0x0001, 279 + PROCESS_CREATE_THREAD = 0x0002, 280 + PROCESS_SET_SESSIONID = 0x0004, 281 + PROCESS_VM_OPERATION = 0x0008, 282 + PROCESS_VM_READ = 0x0010, 283 + PROCESS_VM_WRITE = 0x0020, 284 + PROCESS_DUP_HANDLE = 0x0040, 285 + PROCESS_CREATE_PROCESS = 0x0080, 286 + PROCESS_SET_QUOTA = 0x0100, 287 + PROCESS_SET_INFORMATION = 0x0200, 288 + PROCESS_QUERY_INFORMATION = 0x0400, 289 + PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x0FFF; 290 + 291 +const ACCESS_MASK 292 + THREAD_TERMINATE = 0x0001, 293 + THREAD_SUSPEND_RESUME = 0x0002, 294 + THREAD_GET_CONTEXT = 0x0008, 295 + THREAD_SET_CONTEXT = 0x0010, 296 + THREAD_SET_INFORMATION = 0x0020, 297 + THREAD_QUERY_INFORMATION = 0x0040, 298 + THREAD_SET_THREAD_TOKEN = 0x0080, 299 + THREAD_IMPERSONATE = 0x0100, 300 + THREAD_DIRECT_IMPERSONATION = 0x0200, 301 + THREAD_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3FF; 302 + 303 +// These are not documented on MSDN 304 +const THREAD_BASE_PRIORITY_LOWRT = 15; 305 +const THREAD_BASE_PRIORITY_MAX = 2; 306 +const THREAD_BASE_PRIORITY_MIN = -2; 307 +const THREAD_BASE_PRIORITY_IDLE = -15; 308 + 309 +const DWORD EXCEPTION_NONCONTINUABLE = 1; 310 +const size_t EXCEPTION_MAXIMUM_PARAMETERS = 15; 311 + 312 +// These are not documented on MSDN 313 +const ACCESS_MASK 314 + MUTANT_QUERY_STATE = 1, 315 + MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE; 316 + 317 +const ACCESS_MASK 318 + TIMER_QUERY_STATE = 1, 319 + TIMER_MODIFY_STATE = 2, 320 + TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUERY_STATE 321 + | TIMER_MODIFY_STATE; 322 + 323 +const SID_IDENTIFIER_AUTHORITY 324 + SECURITY_NULL_SID_AUTHORITY = {[5: 0]}, 325 + SECURITY_WORLD_SID_AUTHORITY = {[5: 1]}, 326 + SECURITY_LOCAL_SID_AUTHORITY = {[5: 2]}, 327 + SECURITY_CREATOR_SID_AUTHORITY = {[5: 3]}, 328 + SECURITY_NON_UNIQUE_AUTHORITY = {[5: 4]}, 329 + SECURITY_NT_AUTHORITY = {[5: 5]}, 330 + SECURITY_MANDATORY_LABEL_AUTHORITY = {[5: 6]}; 331 + 332 +const DWORD 333 + SECURITY_NULL_RID = 0, 334 + SECURITY_WORLD_RID = 0, 335 + SECURITY_LOCAL_RID = 0, 336 + SECURITY_CREATOR_OWNER_RID = 0, 337 + SECURITY_CREATOR_GROUP_RID = 1, 338 + SECURITY_DIALUP_RID = 1, 339 + SECURITY_NETWORK_RID = 2, 340 + SECURITY_BATCH_RID = 3, 341 + SECURITY_INTERACTIVE_RID = 4, 342 + SECURITY_LOGON_IDS_RID = 5, 343 + SECURITY_SERVICE_RID = 6, 344 + SECURITY_LOCAL_SYSTEM_RID = 18, 345 + SECURITY_BUILTIN_DOMAIN_RID = 32, 346 + SECURITY_PRINCIPAL_SELF_RID = 10, 347 + SECURITY_CREATOR_OWNER_SERVER_RID = 2, 348 + SECURITY_CREATOR_GROUP_SERVER_RID = 3, 349 + SECURITY_LOGON_IDS_RID_COUNT = 3, 350 + SECURITY_ANONYMOUS_LOGON_RID = 7, 351 + SECURITY_PROXY_RID = 8, 352 + SECURITY_ENTERPRISE_CONTROLLERS_RID = 9, 353 + SECURITY_SERVER_LOGON_RID = SECURITY_ENTERPRISE_CONTROLLERS_RID, 354 + SECURITY_AUTHENTICATED_USER_RID = 11, 355 + SECURITY_RESTRICTED_CODE_RID = 12, 356 + SECURITY_NT_NON_UNIQUE_RID = 21, 357 + SID_REVISION = 1; 358 + 359 +enum : DWORD { 360 + DOMAIN_USER_RID_ADMIN = 0x01F4, 361 + DOMAIN_USER_RID_GUEST = 0x01F5, 362 + DOMAIN_GROUP_RID_ADMINS = 0x0200, 363 + DOMAIN_GROUP_RID_USERS = 0x0201, 364 + DOMAIN_ALIAS_RID_ADMINS = 0x0220, 365 + DOMAIN_ALIAS_RID_USERS = 0x0221, 366 + DOMAIN_ALIAS_RID_GUESTS = 0x0222, 367 + DOMAIN_ALIAS_RID_POWER_USERS = 0x0223, 368 + DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x0224, 369 + DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x0225, 370 + DOMAIN_ALIAS_RID_PRINT_OPS = 0x0226, 371 + DOMAIN_ALIAS_RID_BACKUP_OPS = 0x0227, 372 + DOMAIN_ALIAS_RID_REPLICATOR = 0x0228 373 +} 374 + 375 +enum : WORD { 376 + SECURITY_MANDATORY_UNTRUSTED_RID = 0, 377 + SECURITY_MANDATORY_LOW_RID = 0x1000, 378 + SECURITY_MANDATORY_MEDIUM_RID = 0x2000, 379 + SECURITY_MANDATORY_HIGH_RID = 0x3000, 380 + SECURITY_MANDATORY_SYSTEM_RID = 0x4000, 381 + SECURITY_MANDATORY_PROTECTED_PROCESS_RID = 0x5000, 382 + SECURITY_MANDATORY_MAXIMUM_USER_RID = SECURITY_MANDATORY_SYSTEM_RID 383 +} 384 + 385 +const TCHAR[] 386 + SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege", 387 + SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege", 388 + SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege", 389 + SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege", 390 + SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege", 391 + SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege", 392 + SE_TCB_NAME = "SeTcbPrivilege", 393 + SE_SECURITY_NAME = "SeSecurityPrivilege", 394 + SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege", 395 + SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege", 396 + SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege", 397 + SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege", 398 + SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege", 399 + SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege", 400 + SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege", 401 + SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege", 402 + SE_BACKUP_NAME = "SeBackupPrivilege", 403 + SE_RESTORE_NAME = "SeRestorePrivilege", 404 + SE_SHUTDOWN_NAME = "SeShutdownPrivilege", 405 + SE_DEBUG_NAME = "SeDebugPrivilege", 406 + SE_AUDIT_NAME = "SeAuditPrivilege", 407 + SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege", 408 + SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege", 409 + SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege", 410 + SE_CREATE_GLOBAL_NAME = "SeCreateGlobalPrivilege", 411 + SE_UNDOCK_NAME = "SeUndockPrivilege", 412 + SE_MANAGE_VOLUME_NAME = "SeManageVolumePrivilege", 413 + SE_IMPERSONATE_NAME = "SeImpersonatePrivilege", 414 + SE_ENABLE_DELEGATION_NAME = "SeEnableDelegationPrivilege", 415 + SE_SYNC_AGENT_NAME = "SeSyncAgentPrivilege", 416 + SE_TRUSTED_CREDMAN_ACCESS_NAME = "SeTrustedCredManAccessPrivilege", 417 + SE_RELABEL_NAME = "SeRelabelPrivilege", 418 + SE_INCREASE_WORKING_SET_NAME = "SeIncreaseWorkingSetPrivilege", 419 + SE_TIME_ZONE_NAME = "SeTimeZonePrivilege", 420 + SE_CREATE_SYMBOLIC_LINK_NAME = "SeCreateSymbolicLinkPrivilege"; 421 + 422 +const DWORD 423 + SE_GROUP_MANDATORY = 0x00000001, 424 + SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002, 425 + SE_GROUP_ENABLED = 0x00000004, 426 + SE_GROUP_OWNER = 0x00000008, 427 + SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010, 428 + SE_GROUP_INTEGRITY = 0x00000020, 429 + SE_GROUP_INTEGRITY_ENABLED = 0x00000040, 430 + SE_GROUP_RESOURCE = 0x20000000, 431 + SE_GROUP_LOGON_ID = 0xC0000000; 432 + 433 +// Primary language identifiers 434 +enum : USHORT { 435 + LANG_NEUTRAL, 436 + LANG_ARABIC, 437 + LANG_BULGARIAN, 438 + LANG_CATALAN, 439 + LANG_CHINESE, 440 + LANG_CZECH, 441 + LANG_DANISH, 442 + LANG_GERMAN, 443 + LANG_GREEK, 444 + LANG_ENGLISH, 445 + LANG_SPANISH, 446 + LANG_FINNISH, 447 + LANG_FRENCH, 448 + LANG_HEBREW, 449 + LANG_HUNGARIAN, 450 + LANG_ICELANDIC, 451 + LANG_ITALIAN, 452 + LANG_JAPANESE, 453 + LANG_KOREAN, 454 + LANG_DUTCH, 455 + LANG_NORWEGIAN, 456 + LANG_POLISH, 457 + LANG_PORTUGUESE, // = 0x16 458 + LANG_ROMANIAN = 0x18, 459 + LANG_RUSSIAN, 460 + LANG_CROATIAN, // = 0x1A 461 + LANG_SERBIAN = 0x1A, 462 + LANG_BOSNIAN = 0x1A, 463 + LANG_SLOVAK, 464 + LANG_ALBANIAN, 465 + LANG_SWEDISH, 466 + LANG_THAI, 467 + LANG_TURKISH, 468 + LANG_URDU, 469 + LANG_INDONESIAN, 470 + LANG_UKRAINIAN, 471 + LANG_BELARUSIAN, 472 + LANG_SLOVENIAN, 473 + LANG_ESTONIAN, 474 + LANG_LATVIAN, 475 + LANG_LITHUANIAN, // = 0x27 476 + LANG_FARSI = 0x29, 477 + LANG_PERSIAN = 0x29, 478 + LANG_VIETNAMESE, 479 + LANG_ARMENIAN, 480 + LANG_AZERI, 481 + LANG_BASQUE, 482 + LANG_LOWER_SORBIAN, // = 0x2E 483 + LANG_UPPER_SORBIAN = 0x2E, 484 + LANG_MACEDONIAN, // = 0x2F 485 + LANG_TSWANA = 0x32, 486 + LANG_XHOSA = 0x34, 487 + LANG_ZULU, 488 + LANG_AFRIKAANS, 489 + LANG_GEORGIAN, 490 + LANG_FAEROESE, 491 + LANG_HINDI, 492 + LANG_MALTESE, 493 + LANG_SAMI, 494 + LANG_IRISH, // = 0x3C 495 + LANG_MALAY = 0x3E, 496 + LANG_KAZAK, 497 + LANG_KYRGYZ, 498 + LANG_SWAHILI, // = 0x41 499 + LANG_UZBEK = 0x43, 500 + LANG_TATAR, 501 + LANG_BENGALI, 502 + LANG_PUNJABI, 503 + LANG_GUJARATI, 504 + LANG_ORIYA, 505 + LANG_TAMIL, 506 + LANG_TELUGU, 507 + LANG_KANNADA, 508 + LANG_MALAYALAM, 509 + LANG_ASSAMESE, 510 + LANG_MARATHI, 511 + LANG_SANSKRIT, 512 + LANG_MONGOLIAN, 513 + LANG_TIBETAN, 514 + LANG_WELSH, 515 + LANG_KHMER, 516 + LANG_LAO, // = 0x54 517 + LANG_GALICIAN = 0x56, 518 + LANG_KONKANI, 519 + LANG_MANIPURI, 520 + LANG_SINDHI, 521 + LANG_SYRIAC, 522 + LANG_SINHALESE, // = 0x5B 523 + LANG_INUKTITUT = 0x5D, 524 + LANG_AMHARIC, 525 + LANG_TAMAZIGHT, 526 + LANG_KASHMIRI, 527 + LANG_NEPALI, 528 + LANG_FRISIAN, 529 + LANG_PASHTO, 530 + LANG_FILIPINO, 531 + LANG_DIVEHI, // = 0x65 532 + LANG_HAUSA = 0x68, 533 + LANG_YORUBA = 0x6A, 534 + LANG_QUECHUA, 535 + LANG_SOTHO, 536 + LANG_BASHKIR, 537 + LANG_LUXEMBOURGISH, 538 + LANG_GREENLANDIC, 539 + LANG_IGBO, // = 0x70 540 + LANG_TIGRIGNA = 0x73, 541 + LANG_YI = 0x78, 542 + LANG_MAPUDUNGUN = 0x7A, 543 + LANG_MOHAWK = 0x7C, 544 + LANG_BRETON = 0x7E, 545 + LANG_UIGHUR = 0x80, 546 + LANG_MAORI, 547 + LANG_OCCITAN, 548 + LANG_CORSICAN, 549 + LANG_ALSATIAN, 550 + LANG_YAKUT, 551 + LANG_KICHE, 552 + LANG_KINYARWANDA, 553 + LANG_WOLOF, // = 0x88 554 + LANG_DARI = 0x8C, 555 + LANG_MALAGASY, // = 0x8D 556 + 557 + LANG_SERBIAN_NEUTRAL = 0x7C1A, 558 + LANG_BOSNIAN_NEUTRAL = 0x781A, 559 + 560 + LANG_INVARIANT = 0x7F 561 +} 562 + 563 + 564 +// Sublanguage identifiers 565 +enum : USHORT { 566 + SUBLANG_NEUTRAL, 567 + SUBLANG_DEFAULT, 568 + SUBLANG_SYS_DEFAULT, 569 + SUBLANG_CUSTOM_DEFAULT, // = 3 570 + SUBLANG_UI_CUSTOM_DEFAULT = 3, 571 + SUBLANG_CUSTOM_UNSPECIFIED, // = 4 572 + 573 + SUBLANG_AFRIKAANS_SOUTH_AFRICA = 1, 574 + SUBLANG_ALBANIAN_ALBANIA = 1, 575 + SUBLANG_ALSATIAN_FRANCE = 1, 576 + SUBLANG_AMHARIC_ETHIOPIA = 1, 577 + 578 + SUBLANG_ARABIC_SAUDI_ARABIA = 1, 579 + SUBLANG_ARABIC_IRAQ, 580 + SUBLANG_ARABIC_EGYPT, 581 + SUBLANG_ARABIC_LIBYA, 582 + SUBLANG_ARABIC_ALGERIA, 583 + SUBLANG_ARABIC_MOROCCO, 584 + SUBLANG_ARABIC_TUNISIA, 585 + SUBLANG_ARABIC_OMAN, 586 + SUBLANG_ARABIC_YEMEN, 587 + SUBLANG_ARABIC_SYRIA, 588 + SUBLANG_ARABIC_JORDAN, 589 + SUBLANG_ARABIC_LEBANON, 590 + SUBLANG_ARABIC_KUWAIT, 591 + SUBLANG_ARABIC_UAE, 592 + SUBLANG_ARABIC_BAHRAIN, 593 + SUBLANG_ARABIC_QATAR, // = 16 594 + 595 + SUBLANG_ARMENIAN_ARMENIA = 1, 596 + SUBLANG_ASSAMESE_INDIA = 1, 597 + 598 + SUBLANG_AZERI_LATIN = 1, 599 + SUBLANG_AZERI_CYRILLIC, // = 2 600 + 601 + SUBLANG_BASHKIR_RUSSIA = 1, 602 + SUBLANG_BASQUE_BASQUE = 1, 603 + SUBLANG_BELARUSIAN_BELARUS = 1, 604 + SUBLANG_BENGALI_INDIA = 1, 605 + 606 + SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN = 5, 607 + SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC = 8, 608 + 609 + SUBLANG_BRETON_FRANCE = 1, 610 + SUBLANG_BULGARIAN_BULGARIA = 1, 611 + SUBLANG_CATALAN_CATALAN = 1, 612 + 613 + SUBLANG_CHINESE_TRADITIONAL = 1, 614 + SUBLANG_CHINESE_SIMPLIFIED, 615 + SUBLANG_CHINESE_HONGKONG, 616 + SUBLANG_CHINESE_SINGAPORE, 617 + SUBLANG_CHINESE_MACAU, // = 5 618 + 619 + SUBLANG_CORSICAN_FRANCE = 1, 620 + 621 + SUBLANG_CROATIAN_CROATIA = 1, 622 + SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN = 4, 623 + 624 + SUBLANG_CZECH_CZECH_REPUBLIC = 1, 625 + SUBLANG_DANISH_DENMARK = 1, 626 + SUBLANG_DIVEHI_MALDIVES = 1, 627 + 628 + SUBLANG_DUTCH = 1, 629 + SUBLANG_DUTCH_BELGIAN, // = 2 630 + 631 + SUBLANG_ENGLISH_US = 1, 632 + SUBLANG_ENGLISH_UK, 633 + SUBLANG_ENGLISH_AUS, 634 + SUBLANG_ENGLISH_CAN, 635 + SUBLANG_ENGLISH_NZ, 636 + SUBLANG_ENGLISH_EIRE, // = 6 637 + SUBLANG_ENGLISH_IRELAND = 6, 638 + SUBLANG_ENGLISH_SOUTH_AFRICA, 639 + SUBLANG_ENGLISH_JAMAICA, 640 + SUBLANG_ENGLISH_CARIBBEAN, 641 + SUBLANG_ENGLISH_BELIZE, 642 + SUBLANG_ENGLISH_TRINIDAD, 643 + SUBLANG_ENGLISH_ZIMBABWE, 644 + SUBLANG_ENGLISH_PHILIPPINES, // = 13 645 + SUBLANG_ENGLISH_INDIA = 16, 646 + SUBLANG_ENGLISH_MALAYSIA, 647 + SUBLANG_ENGLISH_SINGAPORE, // = 18 648 + 649 + SUBLANG_ESTONIAN_ESTONIA = 1, 650 + SUBLANG_FAEROESE_FAROE_ISLANDS = 1, 651 + SUBLANG_FILIPINO_PHILIPPINES = 1, 652 + SUBLANG_FINNISH_FINLAND = 1, 653 + 654 + SUBLANG_FRENCH = 1, 655 + SUBLANG_FRENCH_BELGIAN, 656 + SUBLANG_FRENCH_CANADIAN, 657 + SUBLANG_FRENCH_SWISS, 658 + SUBLANG_FRENCH_LUXEMBOURG, 659 + SUBLANG_FRENCH_MONACO, // = 6 660 + 661 + SUBLANG_FRISIAN_NETHERLANDS = 1, 662 + SUBLANG_GALICIAN_GALICIAN = 1, 663 + SUBLANG_GEORGIAN_GEORGIA = 1, 664 + 665 + SUBLANG_GERMAN = 1, 666 + SUBLANG_GERMAN_SWISS, 667 + SUBLANG_GERMAN_AUSTRIAN, 668 + SUBLANG_GERMAN_LUXEMBOURG, 669 + SUBLANG_GERMAN_LIECHTENSTEIN, // = 5 670 + 671 + SUBLANG_GREEK_GREECE = 1, 672 + SUBLANG_GREENLANDIC_GREENLAND = 1, 673 + SUBLANG_GUJARATI_INDIA = 1, 674 + SUBLANG_HAUSA_NIGERIA = 1, 675 + SUBLANG_HEBREW_ISRAEL = 1, 676 + SUBLANG_HINDI_INDIA = 1, 677 + SUBLANG_HUNGARIAN_HUNGARY = 1, 678 + SUBLANG_ICELANDIC_ICELAND = 1, 679 + SUBLANG_IGBO_NIGERIA = 1, 680 + SUBLANG_INDONESIAN_INDONESIA = 1, 681 + 682 + SUBLANG_INUKTITUT_CANADA = 1, 683 + SUBLANG_INUKTITUT_CANADA_LATIN = 1, 684 + 685 + SUBLANG_IRISH_IRELAND = 1, 686 + 687 + SUBLANG_ITALIAN = 1, 688 + SUBLANG_ITALIAN_SWISS, // = 2 689 + 690 + SUBLANG_JAPANESE_JAPAN = 1, 691 + 692 + SUBLANG_KASHMIRI_INDIA = 2, 693 + SUBLANG_KASHMIRI_SASIA = 2, 694 + 695 + SUBLANG_KAZAK_KAZAKHSTAN = 1, 696 + SUBLANG_KHMER_CAMBODIA = 1, 697 + SUBLANG_KICHE_GUATEMALA = 1, 698 + SUBLANG_KINYARWANDA_RWANDA = 1, 699 + SUBLANG_KONKANI_INDIA = 1, 700 + SUBLANG_KOREAN = 1, 701 + SUBLANG_KYRGYZ_KYRGYZSTAN = 1, 702 + SUBLANG_LAO_LAO_PDR = 1, 703 + SUBLANG_LATVIAN_LATVIA = 1, 704 + 705 + SUBLANG_LITHUANIAN = 1, 706 + SUBLANG_LITHUANIAN_LITHUANIA = 1, 707 + 708 + SUBLANG_LOWER_SORBIAN_GERMANY = 1, 709 + SUBLANG_LUXEMBOURGISH_LUXEMBOURG = 1, 710 + SUBLANG_MACEDONIAN_MACEDONIA = 1, 711 + SUBLANG_MALAYALAM_INDIA = 1, 712 + SUBLANG_MALTESE_MALTA = 1, 713 + SUBLANG_MAORI_NEW_ZEALAND = 1, 714 + SUBLANG_MAPUDUNGUN_CHILE = 1, 715 + SUBLANG_MARATHI_INDIA = 1, 716 + SUBLANG_MOHAWK_MOHAWK = 1, 717 + 718 + SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA = 1, 719 + SUBLANG_MONGOLIAN_PRC, // = 2 720 + 721 + SUBLANG_MALAY_MALAYSIA = 1, 722 + SUBLANG_MALAY_BRUNEI_DARUSSALAM, // = 2 723 + 724 + SUBLANG_NEPALI_NEPAL = 1, 725 + SUBLANG_NEPALI_INDIA, // = 2 726 + 727 + SUBLANG_NORWEGIAN_BOKMAL = 1, 728 + SUBLANG_NORWEGIAN_NYNORSK, // = 2 729 + 730 + SUBLANG_OCCITAN_FRANCE = 1, 731 + SUBLANG_ORIYA_INDIA = 1, 732 + SUBLANG_PASHTO_AFGHANISTAN = 1, 733 + SUBLANG_PERSIAN_IRAN = 1, 734 + SUBLANG_POLISH_POLAND = 1, 735 + 736 + SUBLANG_PORTUGUESE_BRAZILIAN = 1, 737 + SUBLANG_PORTUGUESE = 2, 738 + SUBLANG_PORTUGUESE_PORTUGAL, // = 2 739 + 740 + SUBLANG_PUNJABI_INDIA = 1, 741 + 742 + SUBLANG_QUECHUA_BOLIVIA = 1, 743 + SUBLANG_QUECHUA_ECUADOR, 744 + SUBLANG_QUECHUA_PERU, // = 3 745 + 746 + SUBLANG_ROMANIAN_ROMANIA = 1, 747 + SUBLANG_ROMANSH_SWITZERLAND = 1, 748 + SUBLANG_RUSSIAN_RUSSIA = 1, 749 + 750 + SUBLANG_SAMI_NORTHERN_NORWAY = 1, 751 + SUBLANG_SAMI_NORTHERN_SWEDEN, 752 + SUBLANG_SAMI_NORTHERN_FINLAND, // = 3 753 + SUBLANG_SAMI_SKOLT_FINLAND = 3, 754 + SUBLANG_SAMI_INARI_FINLAND = 3, 755 + SUBLANG_SAMI_LULE_NORWAY, 756 + SUBLANG_SAMI_LULE_SWEDEN, 757 + SUBLANG_SAMI_SOUTHERN_NORWAY, 758 + SUBLANG_SAMI_SOUTHERN_SWEDEN, // = 7 759 + 760 + SUBLANG_SANSKRIT_INDIA = 1, 761 + 762 + SUBLANG_SERBIAN_LATIN = 2, 763 + SUBLANG_SERBIAN_CYRILLIC, // = 3 764 + SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN = 6, 765 + SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC = 7, 766 + 767 + SUBLANG_SINDHI_AFGHANISTAN = 2, 768 + SUBLANG_SINHALESE_SRI_LANKA = 1, 769 + SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA = 1, 770 + SUBLANG_SLOVAK_SLOVAKIA = 1, 771 + SUBLANG_SLOVENIAN_SLOVENIA = 1, 772 + 773 + SUBLANG_SPANISH = 1, 774 + SUBLANG_SPANISH_MEXICAN, 775 + SUBLANG_SPANISH_MODERN, 776 + SUBLANG_SPANISH_GUATEMALA, 777 + SUBLANG_SPANISH_COSTA_RICA, 778 + SUBLANG_SPANISH_PANAMA, 779 + SUBLANG_SPANISH_DOMINICAN_REPUBLIC, 780 + SUBLANG_SPANISH_VENEZUELA, 781 + SUBLANG_SPANISH_COLOMBIA, 782 + SUBLANG_SPANISH_PERU, 783 + SUBLANG_SPANISH_ARGENTINA, 784 + SUBLANG_SPANISH_ECUADOR, 785 + SUBLANG_SPANISH_CHILE, 786 + SUBLANG_SPANISH_URUGUAY, 787 + SUBLANG_SPANISH_PARAGUAY, 788 + SUBLANG_SPANISH_BOLIVIA, 789 + SUBLANG_SPANISH_EL_SALVADOR, 790 + SUBLANG_SPANISH_HONDURAS, 791 + SUBLANG_SPANISH_NICARAGUA, 792 + SUBLANG_SPANISH_PUERTO_RICO, 793 + SUBLANG_SPANISH_US, // = 21 794 + 795 + SUBLANG_SWEDISH = 1, 796 + SUBLANG_SWEDISH_SWEDEN = 1, 797 + SUBLANG_SWEDISH_FINLAND, // = 2 798 + 799 + SUBLANG_SYRIAC = 1, 800 + SUBLANG_TAJIK_TAJIKISTAN = 1, 801 + SUBLANG_TAMAZIGHT_ALGERIA_LATIN = 2, 802 + SUBLANG_TAMIL_INDIA = 1, 803 + SUBLANG_TATAR_RUSSIA = 1, 804 + SUBLANG_TELUGU_INDIA = 1, 805 + SUBLANG_THAI_THAILAND = 1, 806 + SUBLANG_TIBETAN_PRC = 1, 807 + SUBLANG_TIBETAN_BHUTAN = 2, 808 + SUBLANG_TIGRIGNA_ERITREA = 1, 809 + SUBLANG_TSWANA_SOUTH_AFRICA = 1, 810 + SUBLANG_TURKISH_TURKEY = 1, 811 + SUBLANG_TURKMEN_TURKMENISTAN = 1, 812 + SUBLANG_UIGHUR_PRC = 1, 813 + SUBLANG_UKRAINIAN_UKRAINE = 1, 814 + SUBLANG_UPPER_SORBIAN_GERMANY = 1, 815 + 816 + SUBLANG_URDU_PAKISTAN = 1, 817 + SUBLANG_URDU_INDIA, // = 2 818 + 819 + SUBLANG_UZBEK_LATIN = 1, 820 + SUBLANG_UZBEK_CYRILLIC, // = 2 821 + 822 + SUBLANG_VIETNAMESE_VIETNAM = 1, 823 + SUBLANG_WELSH_UNITED_KINGDOM = 1, 824 + SUBLANG_WOLOF_SENEGAL = 1, 825 + SUBLANG_YORUBA_NIGERIA = 1, 826 + SUBLANG_XHOSA_SOUTH_AFRICA = 1, 827 + SUBLANG_YAKUT_RUSSIA = 1, 828 + SUBLANG_YI_PRC = 1, 829 + SUBLANG_ZULU_SOUTH_AFRICA = 1 830 +} 831 + 832 +// This is not documented on MSDN 833 +const NLS_VALID_LOCALE_MASK = 1048575; 834 + 835 +// Sorting identifiers 836 +enum : WORD { 837 + SORT_DEFAULT = 0, 838 + SORT_JAPANESE_XJIS = 0, 839 + SORT_JAPANESE_UNICODE = 1, 840 + SORT_CHINESE_BIG5 = 0, 841 + SORT_CHINESE_PRCP = 0, 842 + SORT_CHINESE_UNICODE = 1, 843 + SORT_CHINESE_PRC = 2, 844 + SORT_CHINESE_BOPOMOFO = 3, 845 + SORT_KOREAN_KSC = 0, 846 + SORT_KOREAN_UNICODE = 1, 847 + SORT_GERMAN_PHONE_BOOK = 1, 848 + SORT_HUNGARIAN_DEFAULT = 0, 849 + SORT_HUNGARIAN_TECHNICAL = 1, 850 + SORT_GEORGIAN_TRADITIONAL = 0, 851 + SORT_GEORGIAN_MODERN = 1 852 +} 853 + 854 +WORD MAKELANGID(USHORT p, USHORT s) { return cast(WORD)((s << 10) | p); } 855 +WORD PRIMARYLANGID(WORD lgid) { return cast(WORD)(lgid & 0x3FF); } 856 +WORD SUBLANGID(WORD lgid) { return cast(WORD)(lgid >>> 10); } 857 + 858 +DWORD MAKELCID(WORD lgid, WORD srtid) { return (cast(DWORD) srtid << 16) | cast(DWORD) lgid; } 859 +// ??? 860 +//DWORD MAKESORTLCID(WORD lgid, WORD srtid, WORD ver) { return (MAKELCID(lgid, srtid)) | ((cast(DWORD)ver) << 20); } 861 +WORD LANGIDFROMLCID(LCID lcid) { return cast(WORD) lcid; } 862 +WORD SORTIDFROMLCID(LCID lcid) { return cast(WORD) ((lcid >>> 16) & 0x0F); } 863 +WORD SORTVERSIONFROMLCID(LCID lcid) { return cast(WORD) ((lcid >>> 20) & 0x0F); } 864 + 865 +const WORD LANG_SYSTEM_DEFAULT = (SUBLANG_SYS_DEFAULT << 10) | LANG_NEUTRAL; 866 +const WORD LANG_USER_DEFAULT = (SUBLANG_DEFAULT << 10) | LANG_NEUTRAL; 867 +const DWORD LOCALE_NEUTRAL = (SORT_DEFAULT << 16) 868 + | (SUBLANG_NEUTRAL << 10) | LANG_NEUTRAL; 869 + 870 +// --- 871 +enum : BYTE { 872 + ACL_REVISION = 2, 873 + ACL_REVISION_DS = 4 874 +} 875 + 876 +// These are not documented on MSDN 877 +enum : BYTE { 878 + ACL_REVISION1 = 1, 879 + ACL_REVISION2, 880 + ACL_REVISION3, 881 + ACL_REVISION4 // = 4 882 +} 883 + 884 +const BYTE 885 + MIN_ACL_REVISION = 2, 886 + MAX_ACL_REVISION = 4; 887 + 888 +/+ 889 +// These aren't necessary for D. 890 +const MINCHAR=0x80; 891 +const MAXCHAR=0x7f; 892 +const MINSHORT=0x8000; 893 +const MAXSHORT=0x7fff; 894 +const MINLONG=0x80000000; 895 +const MAXLONG=0x7fffffff; 896 +const MAXBYTE=0xff; 897 +const MAXWORD=0xffff; 898 +const MAXDWORD=0xffffffff; 899 ++/ 900 + 901 +// SYSTEM_INFO.dwProcessorType 902 +enum : DWORD { 903 + PROCESSOR_INTEL_386 = 386, 904 + PROCESSOR_INTEL_486 = 486, 905 + PROCESSOR_INTEL_PENTIUM = 586, 906 + PROCESSOR_MIPS_R4000 = 4000, 907 + PROCESSOR_ALPHA_21064 = 21064, 908 + PROCESSOR_INTEL_IA64 = 2200 909 +} 910 + 911 +// SYSTEM_INFO.wProcessorArchitecture 912 +enum : WORD { 913 + PROCESSOR_ARCHITECTURE_INTEL, 914 + PROCESSOR_ARCHITECTURE_MIPS, 915 + PROCESSOR_ARCHITECTURE_ALPHA, 916 + PROCESSOR_ARCHITECTURE_PPC, 917 + PROCESSOR_ARCHITECTURE_SHX, 918 + PROCESSOR_ARCHITECTURE_ARM, 919 + PROCESSOR_ARCHITECTURE_IA64, 920 + PROCESSOR_ARCHITECTURE_ALPHA64, 921 + PROCESSOR_ARCHITECTURE_MSIL, 922 + PROCESSOR_ARCHITECTURE_AMD64, 923 + PROCESSOR_ARCHITECTURE_IA32_ON_WIN64, // = 10 924 + PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF 925 +} 926 + 927 +// IsProcessorFeaturePresent() 928 +enum : DWORD { 929 + PF_FLOATING_POINT_PRECISION_ERRATA, 930 + PF_FLOATING_POINT_EMULATED, 931 + PF_COMPARE_EXCHANGE_DOUBLE, 932 + PF_MMX_INSTRUCTIONS_AVAILABLE, 933 + PF_PPC_MOVEMEM_64BIT_OK, 934 + PF_ALPHA_BYTE_INSTRUCTIONS, 935 + PF_XMMI_INSTRUCTIONS_AVAILABLE, 936 + PF_3DNOW_INSTRUCTIONS_AVAILABLE, 937 + PF_RDTSC_INSTRUCTION_AVAILABLE, 938 + PF_PAE_ENABLED, 939 + PF_XMMI64_INSTRUCTIONS_AVAILABLE 940 +} 941 + 942 +// MinGW: also in ddk/ntifs.h 943 +enum : DWORD { 944 + FILE_ACTION_ADDED = 1, 945 + FILE_ACTION_REMOVED, 946 + FILE_ACTION_MODIFIED, 947 + FILE_ACTION_RENAMED_OLD_NAME, 948 + FILE_ACTION_RENAMED_NEW_NAME, 949 + FILE_ACTION_ADDED_STREAM, 950 + FILE_ACTION_REMOVED_STREAM, 951 + FILE_ACTION_MODIFIED_STREAM, 952 + FILE_ACTION_REMOVED_BY_DELETE, 953 + FILE_ACTION_ID_NOT_TUNNELLED, 954 + FILE_ACTION_TUNNELLED_ID_COLLISION // = 11 955 +} 956 +// MinGW: end ntifs.h 957 + 958 +const DWORD 959 + HEAP_NO_SERIALIZE = 0x01, 960 + HEAP_GROWABLE = 0x02, 961 + HEAP_GENERATE_EXCEPTIONS = 0x04, 962 + HEAP_ZERO_MEMORY = 0x08, 963 + HEAP_REALLOC_IN_PLACE_ONLY = 0x10, 964 + HEAP_TAIL_CHECKING_ENABLED = 0x20, 965 + HEAP_FREE_CHECKING_ENABLED = 0x40, 966 + HEAP_DISABLE_COALESCE_ON_FREE = 0x80; 967 + 968 +// These are not documented on MSDN 969 +const HEAP_CREATE_ALIGN_16 = 0; 970 +const HEAP_CREATE_ENABLE_TRACING = 0x020000; 971 +const HEAP_MAXIMUM_TAG = 0x000FFF; 972 +const HEAP_PSEUDO_TAG_FLAG = 0x008000; 973 +const HEAP_TAG_SHIFT = 16; 974 +// ??? 975 +//MACRO #define HEAP_MAKE_TAG_FLAGS(b,o) ((DWORD)((b)+(o)<<16))) 976 + 977 +const ACCESS_MASK 978 + KEY_QUERY_VALUE = 0x000001, 979 + KEY_SET_VALUE = 0x000002, 980 + KEY_CREATE_SUB_KEY = 0x000004, 981 + KEY_ENUMERATE_SUB_KEYS = 0x000008, 982 + KEY_NOTIFY = 0x000010, 983 + KEY_CREATE_LINK = 0x000020, 984 + KEY_WRITE = 0x020006, 985 + KEY_EXECUTE = 0x020019, 986 + KEY_READ = 0x020019, 987 + KEY_ALL_ACCESS = 0x0F003F; 988 + 989 +static if (WINVER >= 0x502) { 990 + const ACCESS_MASK 991 + KEY_WOW64_64KEY = 0x000100, 992 + KEY_WOW64_32KEY = 0x000200; 993 +} 994 + 995 +const DWORD 996 + REG_WHOLE_HIVE_VOLATILE = 1, 997 + REG_REFRESH_HIVE = 2, 998 + REG_NO_LAZY_FLUSH = 4; 999 + 1000 +const DWORD 1001 + REG_OPTION_RESERVED = 0, 1002 + REG_OPTION_NON_VOLATILE = 0, 1003 + REG_OPTION_VOLATILE = 1, 1004 + REG_OPTION_CREATE_LINK = 2, 1005 + REG_OPTION_BACKUP_RESTORE = 4, 1006 + REG_OPTION_OPEN_LINK = 8, 1007 + REG_LEGAL_OPTION = 15; 1008 + 1009 +const SECURITY_INFORMATION 1010 + OWNER_SECURITY_INFORMATION = 0x00000001, 1011 + GROUP_SECURITY_INFORMATION = 0x00000002, 1012 + DACL_SECURITY_INFORMATION = 0x00000004, 1013 + SACL_SECURITY_INFORMATION = 0x00000008, 1014 + LABEL_SECURITY_INFORMATION = 0x00000010, 1015 + UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000, 1016 + UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000, 1017 + PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000, 1018 + PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000; 1019 + 1020 +const DWORD MAXIMUM_PROCESSORS = 32; 1021 + 1022 +// VirtualAlloc(), etc 1023 +// ------------------- 1024 + 1025 +enum : DWORD { 1026 + PAGE_NOACCESS = 0x0001, 1027 + PAGE_READONLY = 0x0002, 1028 + PAGE_READWRITE = 0x0004, 1029 + PAGE_WRITECOPY = 0x0008, 1030 + PAGE_EXECUTE = 0x0010, 1031 + PAGE_EXECUTE_READ = 0x0020, 1032 + PAGE_EXECUTE_READWRITE = 0x0040, 1033 + PAGE_EXECUTE_WRITECOPY = 0x0080, 1034 + PAGE_GUARD = 0x0100, 1035 + PAGE_NOCACHE = 0x0200 1036 +} 1037 + 1038 +enum : DWORD { 1039 + MEM_COMMIT = 0x00001000, 1040 + MEM_RESERVE = 0x00002000, 1041 + MEM_DECOMMIT = 0x00004000, 1042 + MEM_RELEASE = 0x00008000, 1043 + MEM_FREE = 0x00010000, 1044 + MEM_PRIVATE = 0x00020000, 1045 + MEM_MAPPED = 0x00040000, 1046 + MEM_RESET = 0x00080000, 1047 + MEM_TOP_DOWN = 0x00100000, 1048 + MEM_WRITE_WATCH = 0x00200000, // MinGW (???): 98/Me 1049 + MEM_PHYSICAL = 0x00400000, 1050 + MEM_4MB_PAGES = 0x80000000 1051 +} 1052 + 1053 +// MinGW: also in ddk/ntifs.h 1054 +// CreateFileMapping() 1055 +const DWORD 1056 + SEC_BASED = 0x00200000, 1057 + SEC_NO_CHANGE = 0x00400000, 1058 + SEC_FILE = 0x00800000, 1059 + SEC_IMAGE = 0x01000000, 1060 + SEC_VLM = 0x02000000, 1061 + SEC_RESERVE = 0x04000000, 1062 + SEC_COMMIT = 0x08000000, 1063 + SEC_NOCACHE = 0x10000000, 1064 + MEM_IMAGE = SEC_IMAGE; 1065 +// MinGW: end ntifs.h 1066 + 1067 +// ??? 1068 +const ACCESS_MASK 1069 + SECTION_QUERY = 0x000001, 1070 + SECTION_MAP_WRITE = 0x000002, 1071 + SECTION_MAP_READ = 0x000004, 1072 + SECTION_MAP_EXECUTE = 0x000008, 1073 + SECTION_EXTEND_SIZE = 0x000010, 1074 + SECTION_ALL_ACCESS = 0x0F001F; 1075 + 1076 +// These are not documented on MSDN 1077 +const MESSAGE_RESOURCE_UNICODE = 1; 1078 +const RTL_CRITSECT_TYPE = 0; 1079 +const RTL_RESOURCE_TYPE = 1; 1080 + 1081 +// COFF file format 1082 +// ---------------- 1083 + 1084 +// IMAGE_FILE_HEADER.Characteristics 1085 +const WORD 1086 + IMAGE_FILE_RELOCS_STRIPPED = 0x0001, 1087 + IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002, 1088 + IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004, 1089 + IMAGE_FILE_LOCAL_SYMS_STRIPPED = 0x0008, 1090 + IMAGE_FILE_AGGRESIVE_WS_TRIM = 0x0010, 1091 + IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020, 1092 + IMAGE_FILE_BYTES_REVERSED_LO = 0x0080, 1093 + IMAGE_FILE_32BIT_MACHINE = 0x0100, 1094 + IMAGE_FILE_DEBUG_STRIPPED = 0x0200, 1095 + IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400, 1096 + IMAGE_FILE_NET_RUN_FROM_SWAP = 0x0800, 1097 + IMAGE_FILE_SYSTEM = 0x1000, 1098 + IMAGE_FILE_DLL = 0x2000, 1099 + IMAGE_FILE_UP_SYSTEM_ONLY = 0x4000, 1100 + IMAGE_FILE_BYTES_REVERSED_HI = 0x8000; 1101 + 1102 +// IMAGE_FILE_HEADER.Machine 1103 +enum : WORD { 1104 + IMAGE_FILE_MACHINE_UNKNOWN = 0x0000, 1105 + IMAGE_FILE_MACHINE_I386 = 0x014C, 1106 + IMAGE_FILE_MACHINE_R3000 = 0x0162, 1107 + IMAGE_FILE_MACHINE_R4000 = 0x0166, 1108 + IMAGE_FILE_MACHINE_R10000 = 0x0168, 1109 + IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x0169, 1110 + IMAGE_FILE_MACHINE_ALPHA = 0x0184, 1111 + IMAGE_FILE_MACHINE_SH3 = 0x01A2, 1112 + IMAGE_FILE_MACHINE_SH3DSP = 0x01A3, 1113 + IMAGE_FILE_MACHINE_SH4 = 0x01A6, 1114 + IMAGE_FILE_MACHINE_SH5 = 0x01A8, 1115 + IMAGE_FILE_MACHINE_ARM = 0x01C0, 1116 + IMAGE_FILE_MACHINE_THUMB = 0x01C2, 1117 + IMAGE_FILE_MACHINE_AM33 = 0x01D3, 1118 + IMAGE_FILE_MACHINE_POWERPC = 0x01F0, 1119 + IMAGE_FILE_MACHINE_POWERPCFP = 0x01F1, 1120 + IMAGE_FILE_MACHINE_IA64 = 0x0200, 1121 + IMAGE_FILE_MACHINE_MIPS16 = 0x0266, 1122 + IMAGE_FILE_MACHINE_MIPSFPU = 0x0366, 1123 + IMAGE_FILE_MACHINE_MIPSFPU16 = 0x0466, 1124 + IMAGE_FILE_MACHINE_EBC = 0x0EBC, 1125 + IMAGE_FILE_MACHINE_AMD64 = 0x8664, 1126 + IMAGE_FILE_MACHINE_M32R = 0x9041 1127 +} 1128 + 1129 +// ??? 1130 +enum { 1131 + IMAGE_DOS_SIGNATURE = 0x5A4D, 1132 + IMAGE_OS2_SIGNATURE = 0x454E, 1133 + IMAGE_OS2_SIGNATURE_LE = 0x454C, 1134 + IMAGE_VXD_SIGNATURE = 0x454C, 1135 + IMAGE_NT_SIGNATURE = 0x4550 1136 +} 1137 + 1138 +// IMAGE_OPTIONAL_HEADER.Magic 1139 +enum : WORD { 1140 + IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x010B, 1141 + IMAGE_ROM_OPTIONAL_HDR_MAGIC = 0x0107, 1142 + IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x020B 1143 +} 1144 + 1145 +// IMAGE_OPTIONAL_HEADER.Subsystem 1146 +enum : WORD { 1147 + IMAGE_SUBSYSTEM_UNKNOWN = 0, 1148 + IMAGE_SUBSYSTEM_NATIVE, 1149 + IMAGE_SUBSYSTEM_WINDOWS_GUI, 1150 + IMAGE_SUBSYSTEM_WINDOWS_CUI, // = 3 1151 + IMAGE_SUBSYSTEM_OS2_CUI = 5, 1152 + IMAGE_SUBSYSTEM_POSIX_CUI = 7, 1153 + IMAGE_SUBSYSTEM_NATIVE_WINDOWS, 1154 + IMAGE_SUBSYSTEM_WINDOWS_CE_GUI, 1155 + IMAGE_SUBSYSTEM_EFI_APPLICATION, 1156 + IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER, 1157 + IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER, 1158 + IMAGE_SUBSYSTEM_EFI_ROM, 1159 + IMAGE_SUBSYSTEM_XBOX, // = 14 1160 + IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION = 16 1161 +} 1162 + 1163 +// IMAGE_OPTIONAL_HEADER.DllCharacteristics 1164 +const WORD 1165 + IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE = 0x0040, 1166 + IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY = 0x0080, 1167 + IMAGE_DLL_CHARACTERISTICS_NX_COMPAT = 0x0100, 1168 + IMAGE_DLLCHARACTERISTICS_NO_ISOLATION = 0x0200, 1169 + IMAGE_DLLCHARACTERISTICS_NO_SEH = 0x0400, 1170 + IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800, 1171 + IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000, 1172 + IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000; 1173 + 1174 +// ??? 1175 +const IMAGE_SEPARATE_DEBUG_SIGNATURE = 0x4944; 1176 + 1177 +const size_t 1178 + IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16, 1179 + IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = 56, 1180 + IMAGE_SIZEOF_STD_OPTIONAL_HEADER = 28, 1181 + IMAGE_SIZEOF_NT_OPTIONAL_HEADER = 224, 1182 + IMAGE_SIZEOF_SHORT_NAME = 8, 1183 + IMAGE_SIZEOF_SECTION_HEADER = 40, 1184 + IMAGE_SIZEOF_SYMBOL = 18, 1185 + IMAGE_SIZEOF_AUX_SYMBOL = 18, 1186 + IMAGE_SIZEOF_RELOCATION = 10, 1187 + IMAGE_SIZEOF_BASE_RELOCATION = 8, 1188 + IMAGE_SIZEOF_LINENUMBER = 6, 1189 + IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60, 1190 + SIZEOF_RFPO_DATA = 16; 1191 + 1192 +PIMAGE_SECTION_HEADER IMAGE_FIRST_SECTION(PIMAGE_NT_HEADERS h) { 1193 + return cast(PIMAGE_SECTION_HEADER) 1194 + (&h.OptionalHeader + h.FileHeader.SizeOfOptionalHeader); 1195 +} 1196 + 1197 +// ImageDirectoryEntryToDataEx() 1198 +enum : USHORT { 1199 + IMAGE_DIRECTORY_ENTRY_EXPORT = 0, 1200 + IMAGE_DIRECTORY_ENTRY_IMPORT, 1201 + IMAGE_DIRECTORY_ENTRY_RESOURCE, 1202 + IMAGE_DIRECTORY_ENTRY_EXCEPTION, 1203 + IMAGE_DIRECTORY_ENTRY_SECURITY, 1204 + IMAGE_DIRECTORY_ENTRY_BASERELOC, 1205 + IMAGE_DIRECTORY_ENTRY_DEBUG, 1206 + IMAGE_DIRECTORY_ENTRY_COPYRIGHT, // = 7 1207 + IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7, 1208 + IMAGE_DIRECTORY_ENTRY_GLOBALPTR, 1209 + IMAGE_DIRECTORY_ENTRY_TLS, 1210 + IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG, 1211 + IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT, 1212 + IMAGE_DIRECTORY_ENTRY_IAT, 1213 + IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT, 1214 + IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR, // = 14 1215 +} 1216 + 1217 +// IMAGE_SECTION_HEADER.Characteristics 1218 +const DWORD 1219 + IMAGE_SCN_TYPE_REG = 0x00000000, 1220 + IMAGE_SCN_TYPE_DSECT = 0x00000001, 1221 + IMAGE_SCN_TYPE_NOLOAD = 0x00000002, 1222 + IMAGE_SCN_TYPE_GROUP = 0x00000004, 1223 + IMAGE_SCN_TYPE_NO_PAD = 0x00000008, 1224 + IMAGE_SCN_TYPE_COPY = 0x00000010, 1225 + IMAGE_SCN_CNT_CODE = 0x00000020, 1226 + IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040, 1227 + IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080, 1228 + IMAGE_SCN_LNK_OTHER = 0x00000100, 1229 + IMAGE_SCN_LNK_INFO = 0x00000200, 1230 + IMAGE_SCN_TYPE_OVER = 0x00000400, 1231 + IMAGE_SCN_LNK_REMOVE = 0x00000800, 1232 + IMAGE_SCN_LNK_COMDAT = 0x00001000, 1233 + IMAGE_SCN_MEM_FARDATA = 0x00008000, 1234 + IMAGE_SCN_GPREL = 0x00008000, 1235 + IMAGE_SCN_MEM_PURGEABLE = 0x00020000, 1236 + IMAGE_SCN_MEM_16BIT = 0x00020000, 1237 + IMAGE_SCN_MEM_LOCKED = 0x00040000, 1238 + IMAGE_SCN_MEM_PRELOAD = 0x00080000, 1239 + IMAGE_SCN_ALIGN_1BYTES = 0x00100000, 1240 + IMAGE_SCN_ALIGN_2BYTES = 0x00200000, 1241 + IMAGE_SCN_ALIGN_4BYTES = 0x00300000, 1242 + IMAGE_SCN_ALIGN_8BYTES = 0x00400000, 1243 + IMAGE_SCN_ALIGN_16BYTES = 0x00500000, 1244 + IMAGE_SCN_ALIGN_32BYTES = 0x00600000, 1245 + IMAGE_SCN_ALIGN_64BYTES = 0x00700000, 1246 + IMAGE_SCN_ALIGN_128BYTES = 0x00800000, 1247 + IMAGE_SCN_ALIGN_256BYTES = 0x00900000, 1248 + IMAGE_SCN_ALIGN_512BYTES = 0x00A00000, 1249 + IMAGE_SCN_ALIGN_1024BYTES = 0x00B00000, 1250 + IMAGE_SCN_ALIGN_2048BYTES = 0x00C00000, 1251 + IMAGE_SCN_ALIGN_4096BYTES = 0x00D00000, 1252 + IMAGE_SCN_ALIGN_8192BYTES = 0x00E00000, 1253 + IMAGE_SCN_LNK_NRELOC_OVFL = 0x01000000, 1254 + IMAGE_SCN_MEM_DISCARDABLE = 0x02000000, 1255 + IMAGE_SCN_MEM_NOT_CACHED = 0x04000000, 1256 + IMAGE_SCN_MEM_NOT_PAGED = 0x08000000, 1257 + IMAGE_SCN_MEM_SHARED = 0x10000000, 1258 + IMAGE_SCN_MEM_EXECUTE = 0x20000000, 1259 + IMAGE_SCN_MEM_READ = 0x40000000, 1260 + IMAGE_SCN_MEM_WRITE = 0x80000000; 1261 + 1262 +/* The following constants are mostlydocumented at 1263 + * http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/pecoff.doc 1264 + * but don't seem to be defined in the HTML docs. 1265 + */ 1266 +enum : SHORT { 1267 + IMAGE_SYM_UNDEFINED = 0, 1268 + IMAGE_SYM_ABSOLUTE = -1, 1269 + IMAGE_SYM_DEBUG = -2 1270 +} 1271 + 1272 +enum : ubyte { 1273 + IMAGE_SYM_TYPE_NULL, 1274 + IMAGE_SYM_TYPE_VOID, 1275 + IMAGE_SYM_TYPE_CHAR, 1276 + IMAGE_SYM_TYPE_SHORT, 1277 + IMAGE_SYM_TYPE_INT, 1278 + IMAGE_SYM_TYPE_LONG, 1279 + IMAGE_SYM_TYPE_FLOAT, 1280 + IMAGE_SYM_TYPE_DOUBLE, 1281 + IMAGE_SYM_TYPE_STRUCT, 1282 + IMAGE_SYM_TYPE_UNION, 1283 + IMAGE_SYM_TYPE_ENUM, 1284 + IMAGE_SYM_TYPE_MOE, 1285 + IMAGE_SYM_TYPE_BYTE, 1286 + IMAGE_SYM_TYPE_WORD, 1287 + IMAGE_SYM_TYPE_UINT, 1288 + IMAGE_SYM_TYPE_DWORD // = 15 1289 +} 1290 +const IMAGE_SYM_TYPE_PCODE = 32768; // ??? 1291 + 1292 +enum : ubyte { 1293 + IMAGE_SYM_DTYPE_NULL, 1294 + IMAGE_SYM_DTYPE_POINTER, 1295 + IMAGE_SYM_DTYPE_FUNCTION, 1296 + IMAGE_SYM_DTYPE_ARRAY 1297 +} 1298 + 1299 +enum : BYTE { 1300 + IMAGE_SYM_CLASS_END_OF_FUNCTION = 0xFF, 1301 + IMAGE_SYM_CLASS_NULL = 0, 1302 + IMAGE_SYM_CLASS_AUTOMATIC, 1303 + IMAGE_SYM_CLASS_EXTERNAL, 1304 + IMAGE_SYM_CLASS_STATIC, 1305 + IMAGE_SYM_CLASS_REGISTER, 1306 + IMAGE_SYM_CLASS_EXTERNAL_DEF, 1307 + IMAGE_SYM_CLASS_LABEL, 1308 + IMAGE_SYM_CLASS_UNDEFINED_LABEL, 1309 + IMAGE_SYM_CLASS_MEMBER_OF_STRUCT, 1310 + IMAGE_SYM_CLASS_ARGUMENT, 1311 + IMAGE_SYM_CLASS_STRUCT_TAG, 1312 + IMAGE_SYM_CLASS_MEMBER_OF_UNION, 1313 + IMAGE_SYM_CLASS_UNION_TAG, 1314 + IMAGE_SYM_CLASS_TYPE_DEFINITION, 1315 + IMAGE_SYM_CLASS_UNDEFINED_STATIC, 1316 + IMAGE_SYM_CLASS_ENUM_TAG, 1317 + IMAGE_SYM_CLASS_MEMBER_OF_ENUM, 1318 + IMAGE_SYM_CLASS_REGISTER_PARAM, 1319 + IMAGE_SYM_CLASS_BIT_FIELD, // = 18 1320 + IMAGE_SYM_CLASS_FAR_EXTERNAL = 68, 1321 + IMAGE_SYM_CLASS_BLOCK = 100, 1322 + IMAGE_SYM_CLASS_FUNCTION, 1323 + IMAGE_SYM_CLASS_END_OF_STRUCT, 1324 + IMAGE_SYM_CLASS_FILE, 1325 + IMAGE_SYM_CLASS_SECTION, 1326 + IMAGE_SYM_CLASS_WEAK_EXTERNAL,// = 105 1327 + IMAGE_SYM_CLASS_CLR_TOKEN = 107 1328 +} 1329 + 1330 +enum : BYTE { 1331 + IMAGE_COMDAT_SELECT_NODUPLICATES = 1, 1332 + IMAGE_COMDAT_SELECT_ANY, 1333 + IMAGE_COMDAT_SELECT_SAME_SIZE, 1334 + IMAGE_COMDAT_SELECT_EXACT_MATCH, 1335 + IMAGE_COMDAT_SELECT_ASSOCIATIVE, 1336 + IMAGE_COMDAT_SELECT_LARGEST, 1337 + IMAGE_COMDAT_SELECT_NEWEST // = 7 1338 +} 1339 + 1340 +enum : DWORD { 1341 + IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1, 1342 + IMAGE_WEAK_EXTERN_SEARCH_LIBRARY, 1343 + IMAGE_WEAK_EXTERN_SEARCH_ALIAS 1344 +} 1345 + 1346 +enum : WORD { 1347 + IMAGE_REL_I386_ABSOLUTE = 0x0000, 1348 + IMAGE_REL_I386_DIR16 = 0x0001, 1349 + IMAGE_REL_I386_REL16 = 0x0002, 1350 + IMAGE_REL_I386_DIR32 = 0x0006, 1351 + IMAGE_REL_I386_DIR32NB = 0x0007, 1352 + IMAGE_REL_I386_SEG12 = 0x0009, 1353 + IMAGE_REL_I386_SECTION = 0x000A, 1354 + IMAGE_REL_I386_SECREL = 0x000B, 1355 + IMAGE_REL_I386_TOKEN = 0x000C, 1356 + IMAGE_REL_I386_SECREL7 = 0x000D, 1357 + IMAGE_REL_I386_REL32 = 0x0014 1358 +} 1359 + 1360 +enum : WORD { 1361 + IMAGE_REL_AMD64_ABSOLUTE = 0x0000, 1362 + IMAGE_REL_AMD64_ADDR64 = 0x0001, 1363 + IMAGE_REL_AMD64_ADDR32 = 0x0002, 1364 + IMAGE_REL_AMD64_ADDR32NB = 0x0003, 1365 + IMAGE_REL_AMD64_REL32 = 0x0004, 1366 + IMAGE_REL_AMD64_REL32_1 = 0x0005, 1367 + IMAGE_REL_AMD64_REL32_2 = 0x0006, 1368 + IMAGE_REL_AMD64_REL32_3 = 0x0007, 1369 + IMAGE_REL_AMD64_REL32_4 = 0x0008, 1370 + IMAGE_REL_AMD64_REL32_5 = 0x0009, 1371 + IMAGE_REL_AMD64_SECTION = 0x000A, 1372 + IMAGE_REL_AMD64_SECREL = 0x000B, 1373 + IMAGE_REL_AMD64_SECREL7 = 0x000C, 1374 + IMAGE_REL_AMD64_TOKEN = 0x000D, 1375 + IMAGE_REL_AMD64_SREL32 = 0x000E, 1376 + IMAGE_REL_AMD64_PAIR = 0x000F, 1377 + IMAGE_REL_AMD64_SSPAN32 = 0x0010 1378 +} 1379 + 1380 +enum : WORD { 1381 + IMAGE_REL_IA64_ABSOLUTE = 0x0000, 1382 + IMAGE_REL_IA64_IMM14 = 0x0001, 1383 + IMAGE_REL_IA64_IMM22 = 0x0002, 1384 + IMAGE_REL_IA64_IMM64 = 0x0003, 1385 + IMAGE_REL_IA64_DIR32 = 0x0004, 1386 + IMAGE_REL_IA64_DIR64 = 0x0005, 1387 + IMAGE_REL_IA64_PCREL21B = 0x0006, 1388 + IMAGE_REL_IA64_PCREL21M = 0x0007, 1389 + IMAGE_REL_IA64_PCREL21F = 0x0008, 1390 + IMAGE_REL_IA64_GPREL22 = 0x0009, 1391 + IMAGE_REL_IA64_LTOFF22 = 0x000A, 1392 + IMAGE_REL_IA64_SECTION = 0x000B, 1393 + IMAGE_REL_IA64_SECREL22 = 0x000C, 1394 + IMAGE_REL_IA64_SECREL64I = 0x000D, 1395 + IMAGE_REL_IA64_SECREL32 = 0x000E, 1396 + IMAGE_REL_IA64_DIR32NB = 0x0010, 1397 + IMAGE_REL_IA64_SREL14 = 0x0011, 1398 + IMAGE_REL_IA64_SREL22 = 0x0012, 1399 + IMAGE_REL_IA64_SREL32 = 0x0013, 1400 + IMAGE_REL_IA64_UREL32 = 0x0014, 1401 + IMAGE_REL_IA64_PCREL60X = 0x0015, 1402 + IMAGE_REL_IA64_PCREL60B = 0x0016, 1403 + IMAGE_REL_IA64_PCREL60F = 0x0017, 1404 + IMAGE_REL_IA64_PCREL60I = 0x0018, 1405 + IMAGE_REL_IA64_PCREL60M = 0x0019, 1406 + IMAGE_REL_IA64_IMMGPREL64 = 0x001A, 1407 + IMAGE_REL_IA64_TOKEN = 0x001B, 1408 + IMAGE_REL_IA64_GPREL32 = 0x001C, 1409 + IMAGE_REL_IA64_ADDEND = 0x001F 1410 +} 1411 + 1412 +enum : WORD { 1413 + IMAGE_REL_SH3_ABSOLUTE = 0x0000, 1414 + IMAGE_REL_SH3_DIRECT16 = 0x0001, 1415 + IMAGE_REL_SH3_DIRECT32 = 0x0002, 1416 + IMAGE_REL_SH3_DIRECT8 = 0x0003, 1417 + IMAGE_REL_SH3_DIRECT8_WORD = 0x0004, 1418 + IMAGE_REL_SH3_DIRECT8_LONG = 0x0005, 1419 + IMAGE_REL_SH3_DIRECT4 = 0x0006, 1420 + IMAGE_REL_SH3_DIRECT4_WORD = 0x0007, 1421 + IMAGE_REL_SH3_DIRECT4_LONG = 0x0008, 1422 + IMAGE_REL_SH3_PCREL8_WORD = 0x0009, 1423 + IMAGE_REL_SH3_PCREL8_LONG = 0x000A, 1424 + IMAGE_REL_SH3_PCREL12_WORD = 0x000B, 1425 + IMAGE_REL_SH3_STARTOF_SECTION = 0x000C, 1426 + IMAGE_REL_SH3_SIZEOF_SECTION = 0x000D, 1427 + IMAGE_REL_SH3_SECTION = 0x000E, 1428 + IMAGE_REL_SH3_SECREL = 0x000F, 1429 + IMAGE_REL_SH3_DIRECT32_NB = 0x0010, 1430 + IMAGE_REL_SH3_GPREL4_LONG = 0x0011, 1431 + IMAGE_REL_SH3_TOKEN = 0x0012, 1432 + IMAGE_REL_SHM_PCRELPT = 0x0013, 1433 + IMAGE_REL_SHM_REFLO = 0x0014, 1434 + IMAGE_REL_SHM_REFHALF = 0x0015, 1435 + IMAGE_REL_SHM_RELLO = 0x0016, 1436 + IMAGE_REL_SHM_RELHALF = 0x0017, 1437 + IMAGE_REL_SHM_PAIR = 0x0018, 1438 + IMAGE_REL_SHM_NOMODE = 0x8000 1439 +} 1440 + 1441 +enum : WORD { 1442 + IMAGE_REL_M32R_ABSOLUTE = 0x0000, 1443 + IMAGE_REL_M32R_ADDR32 = 0x0001, 1444 + IMAGE_REL_M32R_ADDR32NB = 0x0002, 1445 + IMAGE_REL_M32R_ADDR24 = 0x0003, 1446 + IMAGE_REL_M32R_GPREL16 = 0x0004, 1447 + IMAGE_REL_M32R_PCREL24 = 0x0005, 1448 + IMAGE_REL_M32R_PCREL16 = 0x0006, 1449 + IMAGE_REL_M32R_PCREL8 = 0x0007, 1450 + IMAGE_REL_M32R_REFHALF = 0x0008, 1451 + IMAGE_REL_M32R_REFHI = 0x0009, 1452 + IMAGE_REL_M32R_REFLO = 0x000A, 1453 + IMAGE_REL_M32R_PAIR = 0x000B, 1454 + IMAGE_REL_M32R_SECTION = 0x000C, 1455 + IMAGE_REL_M32R_SECREL = 0x000D, 1456 + IMAGE_REL_M32R_TOKEN = 0x000E 1457 +} 1458 + 1459 +enum : WORD { 1460 + IMAGE_REL_MIPS_ABSOLUTE = 0x0000, 1461 + IMAGE_REL_MIPS_REFHALF = 0x0001, 1462 + IMAGE_REL_MIPS_REFWORD = 0x0002, 1463 + IMAGE_REL_MIPS_JMPADDR = 0x0003, 1464 + IMAGE_REL_MIPS_REFHI = 0x0004, 1465 + IMAGE_REL_MIPS_REFLO = 0x0005, 1466 + IMAGE_REL_MIPS_GPREL = 0x0006, 1467 + IMAGE_REL_MIPS_LITERAL = 0x0007, 1468 + IMAGE_REL_MIPS_SECTION = 0x000A, 1469 + IMAGE_REL_MIPS_SECREL = 0x000B, 1470 + IMAGE_REL_MIPS_SECRELLO = 0x000C, 1471 + IMAGE_REL_MIPS_SECRELHI = 0x000D, 1472 + IMAGE_REL_MIPS_JMPADDR16 = 0x0010, 1473 + IMAGE_REL_MIPS_REFWORDNB = 0x0022, 1474 + IMAGE_REL_MIPS_PAIR = 0x0025 1475 +} 1476 + 1477 + 1478 +enum : WORD { 1479 + IMAGE_REL_ALPHA_ABSOLUTE, 1480 + IMAGE_REL_ALPHA_REFLONG, 1481 + IMAGE_REL_ALPHA_REFQUAD, 1482 + IMAGE_REL_ALPHA_GPREL32, 1483 + IMAGE_REL_ALPHA_LITERAL, 1484 + IMAGE_REL_ALPHA_LITUSE, 1485 + IMAGE_REL_ALPHA_GPDISP, 1486 + IMAGE_REL_ALPHA_BRADDR, 1487 + IMAGE_REL_ALPHA_HINT, 1488 + IMAGE_REL_ALPHA_INLINE_REFLONG, 1489 + IMAGE_REL_ALPHA_REFHI, 1490 + IMAGE_REL_ALPHA_REFLO, 1491 + IMAGE_REL_ALPHA_PAIR, 1492 + IMAGE_REL_ALPHA_MATCH, 1493 + IMAGE_REL_ALPHA_SECTION, 1494 + IMAGE_REL_ALPHA_SECREL, 1495 + IMAGE_REL_ALPHA_REFLONGNB, 1496 + IMAGE_REL_ALPHA_SECRELLO, 1497 + IMAGE_REL_ALPHA_SECRELHI // = 18 1498 +} 1499 + 1500 +enum : WORD { 1501 + IMAGE_REL_PPC_ABSOLUTE, 1502 + IMAGE_REL_PPC_ADDR64, 1503 + IMAGE_REL_PPC_ADDR32, 1504 + IMAGE_REL_PPC_ADDR24, 1505 + IMAGE_REL_PPC_ADDR16, 1506 + IMAGE_REL_PPC_ADDR14, 1507 + IMAGE_REL_PPC_REL24, 1508 + IMAGE_REL_PPC_REL14, 1509 + IMAGE_REL_PPC_TOCREL16, 1510 + IMAGE_REL_PPC_TOCREL14, 1511 + IMAGE_REL_PPC_ADDR32NB, 1512 + IMAGE_REL_PPC_SECREL, 1513 + IMAGE_REL_PPC_SECTION, 1514 + IMAGE_REL_PPC_IFGLUE, 1515 + IMAGE_REL_PPC_IMGLUE, 1516 + IMAGE_REL_PPC_SECREL16, 1517 + IMAGE_REL_PPC_REFHI, 1518 + IMAGE_REL_PPC_REFLO, 1519 + IMAGE_REL_PPC_PAIR // = 18 1520 +} 1521 + 1522 +// ??? 1523 +const IMAGE_REL_PPC_TYPEMASK = 0x00FF; 1524 +const IMAGE_REL_PPC_NEG = 0x0100; 1525 +const IMAGE_REL_PPC_BRTAKEN = 0x0200; 1526 +const IMAGE_REL_PPC_BRNTAKEN = 0x0400; 1527 +const IMAGE_REL_PPC_TOCDEFN = 0x0800; 1528 + 1686 1529 enum { 1687 - SidTypeUser = 1, 1688 - SidTypeGroup, 1689 - SidTypeDomain, 1690 - SidTypeAlias, 1691 - SidTypeWellKnownGroup, 1692 - SidTypeDeletedAccount, 1693 - SidTypeInvalid, 1694 - SidTypeUnknown, 1695 - SidTypeComputer, 1696 -} 1697 -alias _SID_NAME_USE SID_NAME_USE; 1698 -alias _SID_NAME_USE* PSID_NAME_USE; 1699 - 1700 -struct _SID_AND_ATTRIBUTES { 1701 - PSID Sid; 1702 - DWORD Attributes; 1703 -} 1704 -alias _SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES; 1705 -alias _SID_AND_ATTRIBUTES* PSID_AND_ATTRIBUTES; 1706 - 1707 -alias SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; 1708 -alias SID_AND_ATTRIBUTES_ARRAY* PSID_AND_ATTRIBUTES_ARRAY; 1709 - 1710 -// #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0} 1711 -// #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1} 1712 -// #define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2} 1713 -// #define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3} 1714 -// #define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4} 1715 -// #define SECURITY_RESOURCE_MANAGER_AUTHORITY {0,0,0,0,0,9} 1716 - 1717 -enum : uint { SECURITY_NULL_RID = 0x00000000 } 1718 -enum : uint { SECURITY_WORLD_RID = 0x00000000 } 1719 -enum : uint { SECURITY_LOCAL_RID = 0x00000000 } 1720 - 1721 -enum : uint { SECURITY_CREATOR_OWNER_RID = 0x00000000 } 1722 -enum : uint { SECURITY_CREATOR_GROUP_RID = 0x00000001 } 1723 - 1724 -enum : uint { SECURITY_CREATOR_OWNER_SERVER_RID = 0x00000002 } 1725 -enum : uint { SECURITY_CREATOR_GROUP_SERVER_RID = 0x00000003 } 1726 - 1727 -// #define SECURITY_NT_AUTHORITY {0,0,0,0,0,5} 1728 - 1729 -enum : uint { SECURITY_DIALUP_RID = 0x00000001 } 1730 -enum : uint { SECURITY_NETWORK_RID = 0x00000002 } 1731 -enum : uint { SECURITY_BATCH_RID = 0x00000003 } 1732 -enum : uint { SECURITY_INTERACTIVE_RID = 0x00000004 } 1733 -enum : uint { SECURITY_SERVICE_RID = 0x00000006 } 1734 -enum : uint { SECURITY_ANONYMOUS_LOGON_RID = 0x00000007 } 1735 -enum : uint { SECURITY_PROXY_RID = 0x00000008 } 1736 -enum : uint { SECURITY_ENTERPRISE_CONTROLLERS_RID = 0x00000009 } 1737 -alias SECURITY_ENTERPRISE_CONTROLLERS_RID SECURITY_SERVER_LOGON_RID; 1738 -enum : uint { SECURITY_PRINCIPAL_SELF_RID = 0x0000000A } 1739 -enum : uint { SECURITY_AUTHENTICATED_USER_RID = 0x0000000B } 1740 -enum : uint { SECURITY_RESTRICTED_CODE_RID = 0x0000000C } 1741 -enum : uint { SECURITY_TERMINAL_SERVER_RID = 0x0000000D } 1742 -enum : uint { SECURITY_REMOTE_LOGON_RID = 0x0000000E } 1743 - 1744 -enum : uint { SECURITY_LOGON_IDS_RID = 0x00000005 } 1745 -enum : uint { SECURITY_LOGON_IDS_RID_COUNT = 3 } 1746 - 1747 -enum : uint { SECURITY_LOCAL_SYSTEM_RID = 0x00000012 } 1748 -enum : uint { SECURITY_LOCAL_SERVICE_RID = 0x00000013 } 1749 -enum : uint { SECURITY_NETWORK_SERVICE_RID = 0x00000014 } 1750 - 1751 -enum : uint { SECURITY_NT_NON_UNIQUE = 0x00000015 } 1752 -enum : uint { SECURITY_NT_NON_UNIQUE_SUB_AUTH_COUNT = 3 } 1753 - 1754 -enum : uint { SECURITY_BUILTIN_DOMAIN_RID = 0x00000020 } 1755 - 1756 -enum : uint { DOMAIN_USER_RID_ADMIN = 0x000001F4 } 1757 -enum : uint { DOMAIN_USER_RID_GUEST = 0x000001F5 } 1758 -enum : uint { DOMAIN_USER_RID_KRBTGT = 0x000001F6 } 1759 - 1760 -enum : uint { DOMAIN_GROUP_RID_ADMINS = 0x00000200 } 1761 -enum : uint { DOMAIN_GROUP_RID_USERS = 0x00000201 } 1762 -enum : uint { DOMAIN_GROUP_RID_GUESTS = 0x00000202 } 1763 -enum : uint { DOMAIN_GROUP_RID_COMPUTERS = 0x00000203 } 1764 -enum : uint { DOMAIN_GROUP_RID_CONTROLLERS = 0x00000204 } 1765 -enum : uint { DOMAIN_GROUP_RID_CERT_ADMINS = 0x00000205 } 1766 -enum : uint { DOMAIN_GROUP_RID_SCHEMA_ADMINS = 0x00000206 } 1767 -enum : uint { DOMAIN_GROUP_RID_ENTERPRISE_ADMINS = 0x00000207 } 1768 -enum : uint { DOMAIN_GROUP_RID_POLICY_ADMINS = 0x00000208 } 1769 - 1770 -enum : uint { DOMAIN_ALIAS_RID_ADMINS = 0x00000220 } 1771 -enum : uint { DOMAIN_ALIAS_RID_USERS = 0x00000221 } 1772 -enum : uint { DOMAIN_ALIAS_RID_GUESTS = 0x00000222 } 1773 -enum : uint { DOMAIN_ALIAS_RID_POWER_USERS = 0x00000223 } 1774 - 1775 -enum : uint { DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x00000224 } 1776 -enum : uint { DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x00000225 } 1777 -enum : uint { DOMAIN_ALIAS_RID_PRINT_OPS = 0x00000226 } 1778 -enum : uint { DOMAIN_ALIAS_RID_BACKUP_OPS = 0x00000227 } 1779 - 1780 -enum : uint { DOMAIN_ALIAS_RID_REPLICATOR = 0x00000228 } 1781 -enum : uint { DOMAIN_ALIAS_RID_RAS_SERVERS = 0x00000229 } 1782 -enum : uint { DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 0x0000022A } 1783 -enum : uint { DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x0000022B } 1784 -enum : uint { DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x0000022C } 1785 - 1786 -const LUID SYSTEM_LUID = {LowPart: 0x3e7, HighPart: 0x0}; 1787 -const LUID ANONYMOUS_LOGON_LUID = {LowPart: 0x3e6, HighPart: 0x0}; 1788 -const LUID LOCALSERVICE_LUID = {LowPart: 0x3e5, HighPart: 0x0}; 1789 -const LUID NETWORKSERVICE_LUID = {LowPart: 0x3e4, HighPart: 0x0}; 1790 - 1791 -enum : uint { SE_GROUP_MANDATORY = 0x00000001 } 1792 -enum : uint { SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002 } 1793 -enum : uint { SE_GROUP_ENABLED = 0x00000004 } 1794 -enum : uint { SE_GROUP_OWNER = 0x00000008 } 1795 -enum : uint { SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010 } 1796 -enum : uint { SE_GROUP_LOGON_ID = 0xC0000000 } 1797 -enum : uint { SE_GROUP_RESOURCE = 0x20000000 } 1798 - 1799 -enum : uint { ACL_REVISION = 2 } 1800 -enum : uint { ACL_REVISION_DS = 4 } 1801 - 1802 -enum : uint { ACL_REVISION1 = 1 } 1803 -enum { MIN_ACL_REVISION = 2 } 1804 -enum : uint { ACL_REVISION2 = 2 } 1805 -enum : uint { ACL_REVISION3 = 3 } 1806 -enum : uint { ACL_REVISION4 = 4 } 1807 -alias ACL_REVISION4 MAX_ACL_REVISION; 1808 - 1809 -struct _ACL { 1810 - BYTE AclRevision; 1811 - BYTE Sbz1; 1812 - WORD AclSize; 1813 - WORD AceCount; 1814 - WORD Sbz2; 1815 -} 1816 -alias _ACL ACL; 1817 - 1818 -alias ACL* PACL; 1819 - 1820 -struct _ACE_HEADER { 1821 - BYTE AceType; 1822 - BYTE AceFlags; 1823 - WORD AceSize; 1824 -} 1825 -alias _ACE_HEADER ACE_HEADER; 1826 - 1530 + IMAGE_REL_BASED_ABSOLUTE, 1531 + IMAGE_REL_BASED_HIGH, 1532 + IMAGE_REL_BASED_LOW, 1533 + IMAGE_REL_BASED_HIGHLOW, 1534 + IMAGE_REL_BASED_HIGHADJ, 1535 + IMAGE_REL_BASED_MIPS_JMPADDR 1536 +} 1537 +// End of constants documented in pecoff.doc 1538 + 1539 +const size_t IMAGE_ARCHIVE_START_SIZE = 8; 1540 + 1541 +const TCHAR[] 1542 + IMAGE_ARCHIVE_START = "!<arch>\n", 1543 + IMAGE_ARCHIVE_END = "`\n", 1544 + IMAGE_ARCHIVE_PAD = "\n", 1545 + IMAGE_ARCHIVE_LINKER_MEMBER = "/ ", 1546 + IMAGE_ARCHIVE_LONGNAMES_MEMBER = "// "; 1547 + 1548 +const IMAGE_ORDINAL_FLAG32 = 0x80000000; 1549 + 1550 +ulong IMAGE_ORDINAL64(ulong Ordinal) { return Ordinal & 0xFFFF; } 1551 +uint IMAGE_ORDINAL32(uint Ordinal) { return Ordinal & 0xFFFF; } 1552 + 1553 +bool IMAGE_SNAP_BY_ORDINAL32(uint Ordinal) { 1554 + return (Ordinal & IMAGE_ORDINAL_FLAG32) != 0; 1555 +} 1556 + 1557 +const ulong IMAGE_ORDINAL_FLAG64 = 0x8000000000000000; 1558 + 1559 +bool IMAGE_SNAP_BY_ORDINAL64(ulong Ordinal) { 1560 + return (Ordinal & IMAGE_ORDINAL_FLAG64) != 0; 1561 +} 1562 + 1563 +// ??? 1564 +const IMAGE_RESOURCE_NAME_IS_STRING = 0x80000000; 1565 +const IMAGE_RESOURCE_DATA_IS_DIRECTORY = 0x80000000; 1566 + 1567 +enum : DWORD { 1568 + IMAGE_DEBUG_TYPE_UNKNOWN, 1569 + IMAGE_DEBUG_TYPE_COFF, 1570 + IMAGE_DEBUG_TYPE_CODEVIEW, 1571 + IMAGE_DEBUG_TYPE_FPO, 1572 + IMAGE_DEBUG_TYPE_MISC, 1573 + IMAGE_DEBUG_TYPE_EXCEPTION, 1574 + IMAGE_DEBUG_TYPE_FIXUP, 1575 + IMAGE_DEBUG_TYPE_OMAP_TO_SRC, 1576 + IMAGE_DEBUG_TYPE_OMAP_FROM_SRC, 1577 + IMAGE_DEBUG_TYPE_BORLAND // = 9 1578 +} 1579 + 1580 +enum : ubyte { 1581 + FRAME_FPO, 1582 + FRAME_TRAP, 1583 + FRAME_TSS, 1584 + FRAME_NONFPO 1585 +} 1586 + 1587 +// ??? 1588 +const IMAGE_DEBUG_MISC_EXENAME = 1; 1589 + 1590 +// ??? 1591 +const N_BTMASK = 0x000F; 1592 +const N_TMASK = 0x0030; 1593 +const N_TMASK1 = 0x00C0; 1594 +const N_TMASK2 = 0x00F0; 1595 +const N_BTSHFT = 4; 1596 +const N_TSHIFT = 2; 1597 + 1598 +const int 1599 + IS_TEXT_UNICODE_ASCII16 = 0x0001, 1600 + IS_TEXT_UNICODE_STATISTICS = 0x0002, 1601 + IS_TEXT_UNICODE_CONTROLS = 0x0004, 1602 + IS_TEXT_UNICODE_SIGNATURE = 0x0008, 1603 + IS_TEXT_UNICODE_REVERSE_ASCII16 = 0x0010, 1604 + IS_TEXT_UNICODE_REVERSE_STATISTICS = 0x0020, 1605 + IS_TEXT_UNICODE_REVERSE_CONTROLS = 0x0040, 1606 + IS_TEXT_UNICODE_REVERSE_SIGNATURE = 0x0080, 1607 + IS_TEXT_UNICODE_ILLEGAL_CHARS = 0x0100, 1608 + IS_TEXT_UNICODE_ODD_LENGTH = 0x0200, 1609 + IS_TEXT_UNICODE_NULL_BYTES = 0x1000, 1610 + IS_TEXT_UNICODE_UNICODE_MASK = 0x000F, 1611 + IS_TEXT_UNICODE_REVERSE_MASK = 0x00F0, 1612 + IS_TEXT_UNICODE_NOT_UNICODE_MASK = 0x0F00, 1613 + IS_TEXT_UNICODE_NOT_ASCII_MASK = 0xF000; 1614 + 1615 +const DWORD 1616 + SERVICE_KERNEL_DRIVER = 0x0001, 1617 + SERVICE_FILE_SYSTEM_DRIVER = 0x0002, 1618 + SERVICE_ADAPTER = 0x0004, 1619 + SERVICE_RECOGNIZER_DRIVER = 0x0008, 1620 + SERVICE_WIN32_OWN_PROCESS = 0x0010, 1621 + SERVICE_WIN32_SHARE_PROCESS = 0x0020, 1622 + SERVICE_INTERACTIVE_PROCESS = 0x0100, 1623 + SERVICE_DRIVER = 0x000B, 1624 + SERVICE_WIN32 = 0x0030, 1625 + SERVICE_TYPE_ALL = 0x013F; 1626 + 1627 +enum : DWORD { 1628 + SERVICE_BOOT_START = 0, 1629 + SERVICE_SYSTEM_START = 1, 1630 + SERVICE_AUTO_START = 2, 1631 + SERVICE_DEMAND_START = 3, 1632 + SERVICE_DISABLED = 4 1633 +} 1634 + 1635 +enum : DWORD { 1636 + SERVICE_ERROR_IGNORE = 0, 1637 + SERVICE_ERROR_NORMAL = 1, 1638 + SERVICE_ERROR_SEVERE = 2, 1639 + SERVICE_ERROR_CRITICAL = 3 1640 +} 1641 + 1642 + 1643 +const uint 1644 + SE_OWNER_DEFAULTED = 0x0001, 1645 + SE_GROUP_DEFAULTED = 0x0002, 1646 + SE_DACL_PRESENT = 0x0004, 1647 + SE_DACL_DEFAULTED = 0x0008, 1648 + SE_SACL_PRESENT = 0x0010, 1649 + SE_SACL_DEFAULTED = 0x0020, 1650 + SE_DACL_AUTO_INHERIT_REQ = 0x0100, 1651 + SE_SACL_AUTO_INHERIT_REQ = 0x0200, 1652 + SE_DACL_AUTO_INHERITED = 0x0400, 1653 + SE_SACL_AUTO_INHERITED = 0x0800, 1654 + SE_DACL_PROTECTED = 0x1000, 1655 + SE_SACL_PROTECTED = 0x2000, 1656 + SE_SELF_RELATIVE = 0x8000; 1657 + 1658 +enum SECURITY_IMPERSONATION_LEVEL { 1659 + SecurityAnonymous, 1660 + SecurityIdentification, 1661 + SecurityImpersonation, 1662 + SecurityDelegation 1663 +} 1664 +alias SECURITY_IMPERSONATION_LEVEL* PSECURITY_IMPERSONATION_LEVEL; 1665 + 1666 +alias BOOLEAN SECURITY_CONTEXT_TRACKING_MODE; 1667 +alias BOOLEAN* PSECURITY_CONTEXT_TRACKING_MODE; 1668 + 1669 +const size_t SECURITY_DESCRIPTOR_MIN_LENGTH = 20; 1670 + 1671 +const DWORD 1672 + SECURITY_DESCRIPTOR_REVISION = 1, 1673 + SECURITY_DESCRIPTOR_REVISION1 = 1; 1674 + 1675 +const DWORD 1676 + SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001, 1677 + SE_PRIVILEGE_ENABLED = 0x00000002, 1678 + SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000; 1679 + 1680 +const DWORD PRIVILEGE_SET_ALL_NECESSARY = 1; 1681 + 1682 +const SECURITY_IMPERSONATION_LEVEL 1683 + SECURITY_MAX_IMPERSONATION_LEVEL = SECURITY_IMPERSONATION_LEVEL.SecurityDelegation, 1684 + DEFAULT_IMPERSONATION_LEVEL = SECURITY_IMPERSONATION_LEVEL.SecurityImpersonation; 1685 + 1686 +const BOOLEAN 1687 + SECURITY_DYNAMIC_TRACKING = true, 1688 + SECURITY_STATIC_TRACKING = false; 1689 + 1690 +// also in ddk/ntifs.h 1691 +const DWORD 1692 + TOKEN_ASSIGN_PRIMARY = 0x0001, 1693 + TOKEN_DUPLICATE = 0x0002, 1694 + TOKEN_IMPERSONATE = 0x0004, 1695 + TOKEN_QUERY = 0x0008, 1696 + TOKEN_QUERY_SOURCE = 0x0010, 1697 + TOKEN_ADJUST_PRIVILEGES = 0x0020, 1698 + TOKEN_ADJUST_GROUPS = 0x0040, 1699 + TOKEN_ADJUST_DEFAULT = 0x0080, 1700 + 1701 + TOKEN_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED 1702 + | TOKEN_ASSIGN_PRIMARY 1703 + | TOKEN_DUPLICATE 1704 + | TOKEN_IMPERSONATE 1705 + | TOKEN_QUERY 1706 + | TOKEN_QUERY_SOURCE 1707 + | TOKEN_ADJUST_PRIVILEGES 1708 + | TOKEN_ADJUST_GROUPS 1709 + | TOKEN_ADJUST_DEFAULT, 1710 + TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY, 1711 + TOKEN_WRITE = STANDARD_RIGHTS_WRITE 1712 + | TOKEN_ADJUST_PRIVILEGES 1713 + | TOKEN_ADJUST_GROUPS 1714 + | TOKEN_ADJUST_DEFAULT, 1715 + TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE; 1716 + 1717 +const size_t TOKEN_SOURCE_LENGTH = 8; 1718 +// end ddk/ntifs.h 1719 + 1720 +enum : DWORD { 1721 + DLL_PROCESS_DETACH, 1722 + DLL_PROCESS_ATTACH, 1723 + DLL_THREAD_ATTACH, 1724 + DLL_THREAD_DETACH 1725 +} 1726 + 1727 +enum : DWORD { 1728 + DBG_CONTINUE = 0x00010002, 1729 + DBG_TERMINATE_THREAD = 0x40010003, 1730 + DBG_TERMINATE_PROCESS = 0x40010004, 1731 + DBG_CONTROL_C = 0x40010005, 1732 + DBG_CONTROL_BREAK = 0x40010008, 1733 + DBG_EXCEPTION_NOT_HANDLED = 0x80010001 1734 +} 1735 + 1736 +enum : DWORD { 1737 + TAPE_ABSOLUTE_POSITION, 1738 + TAPE_LOGICAL_POSITION, 1739 + TAPE_PSEUDO_LOGICAL_POSITION 1740 +} 1741 + 1742 +enum : DWORD { 1743 + TAPE_REWIND, 1744 + TAPE_ABSOLUTE_BLOCK, 1745 + TAPE_LOGICAL_BLOCK, 1746 + TAPE_PSEUDO_LOGICAL_BLOCK, 1747 + TAPE_SPACE_END_OF_DATA, 1748 + TAPE_SPACE_RELATIVE_BLOCKS, 1749 + TAPE_SPACE_FILEMARKS, 1750 + TAPE_SPACE_SEQUENTIAL_FMKS, 1751 + TAPE_SPACE_SETMARKS, 1752 + TAPE_SPACE_SEQUENTIAL_SMKS 1753 +} 1754 + 1755 +const DWORD 1756 + TAPE_DRIVE_FIXED = 0x00000001, 1757 + TAPE_DRIVE_SELECT = 0x00000002, 1758 + TAPE_DRIVE_INITIATOR = 0x00000004, 1759 + TAPE_DRIVE_ERASE_SHORT = 0x00000010, 1760 + TAPE_DRIVE_ERASE_LONG = 0x00000020, 1761 + TAPE_DRIVE_ERASE_BOP_ONLY = 0x00000040, 1762 + TAPE_DRIVE_ERASE_IMMEDIATE = 0x00000080, 1763 + TAPE_DRIVE_TAPE_CAPACITY = 0x00000100, 1764 + TAPE_DRIVE_TAPE_REMAINING = 0x00000200, 1765 + TAPE_DRIVE_FIXED_BLOCK = 0x00000400, 1766 + TAPE_DRIVE_VARIABLE_BLOCK = 0x00000800, 1767 + TAPE_DRIVE_WRITE_PROTECT = 0x00001000, 1768 + TAPE_DRIVE_EOT_WZ_SIZE = 0x00002000, 1769 + TAPE_DRIVE_ECC = 0x00010000, 1770 + TAPE_DRIVE_COMPRESSION = 0x00020000, 1771 + TAPE_DRIVE_PADDING = 0x00040000, 1772 + TAPE_DRIVE_REPORT_SMKS = 0x00080000, 1773 + TAPE_DRIVE_GET_ABSOLUTE_BLK = 0x00100000, 1774 + TAPE_DRIVE_GET_LOGICAL_BLK = 0x00200000, 1775 + TAPE_DRIVE_SET_EOT_WZ_SIZE = 0x00400000, 1776 + TAPE_DRIVE_EJECT_MEDIA = 0x01000000, 1777 + TAPE_DRIVE_CLEAN_REQUESTS = 0x02000000, 1778 + TAPE_DRIVE_SET_CMP_BOP_ONLY = 0x04000000, 1779 + TAPE_DRIVE_RESERVED_BIT = 0x80000000; 1780 + 1781 +const DWORD 1782 + TAPE_DRIVE_LOAD_UNLOAD = 0x80000001, 1783 + TAPE_DRIVE_TENSION = 0x80000002, 1784 + TAPE_DRIVE_LOCK_UNLOCK = 0x80000004, 1785 + TAPE_DRIVE_REWIND_IMMEDIATE = 0x80000008, 1786 + TAPE_DRIVE_SET_BLOCK_SIZE = 0x80000010, 1787 + TAPE_DRIVE_LOAD_UNLD_IMMED = 0x80000020, 1788 + TAPE_DRIVE_TENSION_IMMED = 0x80000040, 1789 + TAPE_DRIVE_LOCK_UNLK_IMMED = 0x80000080, 1790 + TAPE_DRIVE_SET_ECC = 0x80000100, 1791 + TAPE_DRIVE_SET_COMPRESSION = 0x80000200, 1792 + TAPE_DRIVE_SET_PADDING = 0x80000400, 1793 + TAPE_DRIVE_SET_REPORT_SMKS = 0x80000800, 1794 + TAPE_DRIVE_ABSOLUTE_BLK = 0x80001000, 1795 + TAPE_DRIVE_ABS_BLK_IMMED = 0x80002000, 1796 + TAPE_DRIVE_LOGICAL_BLK = 0x80004000, 1797 + TAPE_DRIVE_LOG_BLK_IMMED = 0x80008000, 1798 + TAPE_DRIVE_END_OF_DATA = 0x80010000, 1799 + TAPE_DRIVE_RELATIVE_BLKS = 0x80020000, 1800 + TAPE_DRIVE_FILEMARKS = 0x80040000, 1801 + TAPE_DRIVE_SEQUENTIAL_FMKS = 0x80080000, 1802 + TAPE_DRIVE_SETMARKS = 0x80100000, 1803 + TAPE_DRIVE_SEQUENTIAL_SMKS = 0x80200000, 1804 + TAPE_DRIVE_REVERSE_POSITION = 0x80400000, 1805 + TAPE_DRIVE_SPACE_IMMEDIATE = 0x80800000, 1806 + TAPE_DRIVE_WRITE_SETMARKS = 0x81000000, 1807 + TAPE_DRIVE_WRITE_FILEMARKS = 0x82000000, 1808 + TAPE_DRIVE_WRITE_SHORT_FMKS = 0x84000000, 1809 + TAPE_DRIVE_WRITE_LONG_FMKS = 0x88000000, 1810 + TAPE_DRIVE_WRITE_MARK_IMMED = 0x90000000, 1811 + TAPE_DRIVE_FORMAT = 0xA0000000, 1812 + TAPE_DRIVE_FORMAT_IMMEDIATE = 0xC0000000, 1813 + TAPE_DRIVE_HIGH_FEATURES = 0x80000000; 1814 + 1815 +enum : DWORD { 1816 + TAPE_FIXED_PARTITIONS = 0, 1817 + TAPE_SELECT_PARTITIONS = 1, 1818 + TAPE_INITIATOR_PARTITIONS = 2 1819 +} 1820 + 1821 +enum : DWORD { 1822 + TAPE_SETMARKS, 1823 + TAPE_FILEMARKS, 1824 + TAPE_SHORT_FILEMARKS, 1825 + TAPE_LONG_FILEMARKS 1826 +} 1827 + 1828 +enum : DWORD { 1829 + TAPE_ERASE_SHORT, 1830 + TAPE_ERASE_LONG 1831 +} 1832 + 1833 +enum : DWORD { 1834 + TAPE_LOAD, 1835 + TAPE_UNLOAD, 1836 + TAPE_TENSION, 1837 + TAPE_LOCK, 1838 + TAPE_UNLOCK, 1839 + TAPE_FORMAT 1840 +} 1841 + 1842 +enum : ULONG32 { 1843 + VER_PLATFORM_WIN32s, 1844 + VER_PLATFORM_WIN32_WINDOWS, 1845 + VER_PLATFORM_WIN32_NT 1846 +} 1847 + 1848 +enum : UCHAR { 1849 + VER_NT_WORKSTATION = 1, 1850 + VER_NT_DOMAIN_CONTROLLER, 1851 + VER_NT_SERVER 1852 +} 1853 + 1854 +const USHORT 1855 + VER_SUITE_SMALLBUSINESS = 0x0001, 1856 + VER_SUITE_ENTERPRISE = 0x0002, 1857 + VER_SUITE_BACKOFFICE = 0x0004, 1858 + VER_SUITE_TERMINAL = 0x0010, 1859 + VER_SUITE_SMALLBUSINESS_RESTRICTED = 0x0020, 1860 + VER_SUITE_EMBEDDEDNT = 0x0040, 1861 + VER_SUITE_DATACENTER = 0x0080, 1862 + VER_SUITE_SINGLEUSERTS = 0x0100, 1863 + VER_SUITE_PERSONAL = 0x0200, 1864 + VER_SUITE_BLADE = 0x0400, 1865 + VER_SUITE_STORAGE_SERVER = 0x2000, 1866 + VER_SUITE_COMPUTE_SERVER = 0x4000; 1867 + 1868 +const ULONG 1869 + WT_EXECUTEDEFAULT = 0x00000000, 1870 + WT_EXECUTEINIOTHREAD = 0x00000001, 1871 + WT_EXECUTEINWAITTHREAD = 0x00000004, 1872 + WT_EXECUTEONLYONCE = 0x00000008, 1873 + WT_EXECUTELONGFUNCTION = 0x00000010, 1874 + WT_EXECUTEINTIMERTHREAD = 0x00000020, 1875 + WT_EXECUTEINPERSISTENTTHREAD = 0x00000080, 1876 + WT_TRANSFER_IMPERSONATION = 0x00000100; 1877 + 1878 +static if (_WIN32_WINNT_ONLY) { 1879 + static if (_WIN32_WINNT >= 0x500) { 1880 + const DWORD 1881 + VER_MINORVERSION = 0x01, 1882 + VER_MAJORVERSION = 0x02, 1883 + VER_BUILDNUMBER = 0x04, 1884 + VER_PLATFORMID = 0x08, 1885 + VER_SERVICEPACKMINOR = 0x10, 1886 + VER_SERVICEPACKMAJOR = 0x20, 1887 + VER_SUITENAME = 0x40, 1888 + VER_PRODUCT_TYPE = 0x80; 1889 + 1890 + enum : DWORD { 1891 + VER_EQUAL = 1, 1892 + VER_GREATER, 1893 + VER_GREATER_EQUAL, 1894 + VER_LESS, 1895 + VER_LESS_EQUAL, 1896 + VER_AND, 1897 + VER_OR // = 7 1898 + } 1899 + } 1900 + 1901 + static if (_WIN32_WINNT >= 0x501) { 1902 + enum : ULONG { 1903 + ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION = 1, 1904 + ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, 1905 + ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, 1906 + ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION, 1907 + ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION, 1908 + ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION, 1909 + ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION, // = 7 1910 + ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES = 9 1911 + } 1912 + } 1913 +} 1914 + 1915 +// Macros 1916 +BYTE BTYPE(BYTE x) { return cast(BYTE) (x & N_BTMASK); } 1917 +bool ISPTR(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT); } 1918 +bool ISFCN(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT); } 1919 +bool ISARY(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT); } 1920 +bool ISTAG(uint x) { 1921 + return x == IMAGE_SYM_CLASS_STRUCT_TAG 1922 + || x == IMAGE_SYM_CLASS_UNION_TAG 1923 + || x == IMAGE_SYM_CLASS_ENUM_TAG; 1924 +} 1925 +uint INCREF(uint x) { 1926 + return ((x & ~N_BTMASK) << N_TSHIFT) | (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT) 1927 + | (x & N_BTMASK); 1928 +} 1929 +uint DECREF(uint x) { return ((x >>> N_TSHIFT) & ~N_BTMASK) | (x & N_BTMASK); } 1930 + 1931 +const DWORD TLS_MINIMUM_AVAILABLE = 64; 1932 + 1933 +const ULONG 1934 + IO_REPARSE_TAG_RESERVED_ZERO = 0, 1935 + IO_REPARSE_TAG_RESERVED_ONE = 1, 1936 + IO_REPARSE_TAG_RESERVED_RANGE = IO_REPARSE_TAG_RESERVED_ONE, 1937 + IO_REPARSE_TAG_SYMBOLIC_LINK = IO_REPARSE_TAG_RESERVED_ZERO, 1938 + IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003, 1939 + IO_REPARSE_TAG_SYMLINK = 0xA000000C, 1940 + IO_REPARSE_TAG_VALID_VALUES = 0xE000FFFF; 1941 + 1942 +/* Although these are semantically boolean, they are documented and 1943 + * implemented to return ULONG; this behaviour is preserved for compatibility 1944 + */ 1945 +ULONG IsReparseTagMicrosoft(ULONG x) { return x & 0x80000000; } 1946 +ULONG IsReparseTagHighLatency(ULONG x) { return x & 0x40000000; } 1947 +ULONG IsReparseTagNameSurrogate(ULONG x) { return x & 0x20000000; } 1948 + 1949 +bool IsReparseTagValid(ULONG x) { 1950 + return !(x & ~IO_REPARSE_TAG_VALID_VALUES) && (x > IO_REPARSE_TAG_RESERVED_RANGE); 1951 +} 1952 + 1953 +// Doesn't seem to make sense, but anyway.... 1954 +ULONG WT_SET_MAX_THREADPOOL_THREADS(ref ULONG Flags, ushort Limit) { 1955 + return Flags |= Limit << 16; 1956 +} 1957 + 1958 +import win32.basetyps; 1959 +/* also in win32.basetyps 1960 +struct GUID { 1961 + uint Data1; 1962 + ushort Data2; 1963 + ushort Data3; 1964 + ubyte Data4[8]; 1965 +} 1966 +alias GUID* REFGUID, LPGUID; 1967 +*/ 1968 + 1969 +struct GENERIC_MAPPING { 1970 + ACCESS_MASK GenericRead; 1971 + ACCESS_MASK GenericWrite; 1972 + ACCESS_MASK GenericExecute; 1973 + ACCESS_MASK GenericAll; 1974 +} 1975 +alias GENERIC_MAPPING* PGENERIC_MAPPING; 1976 + 1977 +struct ACE_HEADER { 1978 + BYTE AceType; 1979 + BYTE AceFlags; 1980 + WORD AceSize; 1981 +} 1827 1982 alias ACE_HEADER* PACE_HEADER; 1828 1983 1829 -enum : uint { ACCESS_MIN_MS_ACE_TYPE = 0x0 } 1830 -enum : uint { ACCESS_ALLOWED_ACE_TYPE = 0x0 } 1831 -enum : uint { ACCESS_DENIED_ACE_TYPE = 0x1 } 1832 -enum : uint { SYSTEM_AUDIT_ACE_TYPE = 0x2 } 1833 -enum : uint { SYSTEM_ALARM_ACE_TYPE = 0x3 } 1834 -enum : uint { ACCESS_MAX_MS_V2_ACE_TYPE = 0x3 } 1835 - 1836 -enum : uint { ACCESS_ALLOWED_COMPOUND_ACE_TYPE = 0x4 } 1837 -enum : uint { ACCESS_MAX_MS_V3_ACE_TYPE = 0x4 } 1838 - 1839 -enum : uint { ACCESS_MIN_MS_OBJECT_ACE_TYPE = 0x5 } 1840 -enum : uint { ACCESS_ALLOWED_OBJECT_ACE_TYPE = 0x5 } 1841 -enum : uint { ACCESS_DENIED_OBJECT_ACE_TYPE = 0x6 } 1842 -enum : uint { SYSTEM_AUDIT_OBJECT_ACE_TYPE = 0x7 } 1843 -enum : uint { SYSTEM_ALARM_OBJECT_ACE_TYPE = 0x8 } 1844 -enum : uint { ACCESS_MAX_MS_OBJECT_ACE_TYPE = 0x8 } 1845 - 1846 -enum : uint { ACCESS_MAX_MS_V4_ACE_TYPE = 0x8 } 1847 -enum : uint { ACCESS_MAX_MS_ACE_TYPE = 0x8 } 1848 - 1849 -enum : uint { ACCESS_ALLOWED_CALLBACK_ACE_TYPE = 0x9 } 1850 -enum : uint { ACCESS_DENIED_CALLBACK_ACE_TYPE = 0xA } 1851 -enum : uint { ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE = 0xB } 1852 -enum : uint { ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE = 0xC } 1853 -enum : uint { SYSTEM_AUDIT_CALLBACK_ACE_TYPE = 0xD } 1854 -enum : uint { SYSTEM_ALARM_CALLBACK_ACE_TYPE = 0xE } 1855 -enum : uint { SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE = 0xF } 1856 -enum : uint { SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE = 0x10 } 1857 - 1858 -enum : uint { ACCESS_MAX_MS_V5_ACE_TYPE = 0x10 } 1859 - 1860 -enum : uint { OBJECT_INHERIT_ACE = 0x1 } 1861 -enum : uint { CONTAINER_INHERIT_ACE = 0x2 } 1862 -enum : uint { NO_PROPAGATE_INHERIT_ACE = 0x4 } 1863 -enum : uint { INHERIT_ONLY_ACE = 0x8 } 1864 -enum : uint { INHERITED_ACE = 0x10 } 1865 -enum : uint { VALID_INHERIT_FLAGS = 0x1F } 1866 - 1867 -enum : uint { SUCCESSFUL_ACCESS_ACE_FLAG = 0x40 } 1868 -enum : uint { FAILED_ACCESS_ACE_FLAG = 0x80 } 1869 - 1870 -struct _ACCESS_ALLOWED_ACE { 1871 - ACE_HEADER Header; 1872 - ACCESS_MASK Mask; 1873 - DWORD SidStart; 1984 +struct ACCESS_ALLOWED_ACE { 1985 + ACE_HEADER Header; 1986 + ACCESS_MASK Mask; 1987 + DWORD SidStart; 1874 1988 } 1875 -alias _ACCESS_ALLOWED_ACE ACCESS_ALLOWED_ACE; 1876 - 1877 1989 alias ACCESS_ALLOWED_ACE* PACCESS_ALLOWED_ACE; 1878 1990 1879 -struct _ACCESS_DENIED_ACE { 1880 - ACE_HEADER Header; 1881 - ACCESS_MASK Mask; 1882 - DWORD SidStart; 1991 +struct ACCESS_DENIED_ACE { 1992 + ACE_HEADER Header; 1993 + ACCESS_MASK Mask; 1994 + DWORD SidStart; 1883 1995 } 1884 -alias _ACCESS_DENIED_ACE ACCESS_DENIED_ACE; 1885 - 1886 1996 alias ACCESS_DENIED_ACE* PACCESS_DENIED_ACE; 1887 1997 1888 -struct _SYSTEM_AUDIT_ACE { 1889 - ACE_HEADER Header; 1890 - ACCESS_MASK Mask; 1891 - DWORD SidStart; 1998 +struct SYSTEM_AUDIT_ACE { 1999 + ACE_HEADER Header; 2000 + ACCESS_MASK Mask; 2001 + DWORD SidStart; 1892 2002 } 1893 -alias _SYSTEM_AUDIT_ACE SYSTEM_AUDIT_ACE; 2003 +alias SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE; 1894 2004 1895 -alias SYSTEM_AUDIT_ACE* PSYSTEM_AUDIT_ACE; 1896 - 1897 -struct _SYSTEM_ALARM_ACE { 1898 - ACE_HEADER Header; 1899 - ACCESS_MASK Mask; 1900 - DWORD SidStart; 2005 +struct SYSTEM_ALARM_ACE { 2006 + ACE_HEADER Header; 2007 + ACCESS_MASK Mask; 2008 + DWORD SidStart; 1901 2009 } 1902 -alias _SYSTEM_ALARM_ACE SYSTEM_ALARM_ACE; 1903 - 1904 2010 alias SYSTEM_ALARM_ACE* PSYSTEM_ALARM_ACE; 1905 2011 1906 -struct _ACCESS_ALLOWED_OBJECT_ACE { 1907 - ACE_HEADER Header; 1908 - ACCESS_MASK Mask; 1909 - DWORD Flags; 1910 - GUID ObjectType; 1911 - GUID InheritedObjectType; 1912 - DWORD SidStart; 1913 -} 1914 -alias _ACCESS_ALLOWED_OBJECT_ACE ACCESS_ALLOWED_OBJECT_ACE; 1915 -alias _ACCESS_ALLOWED_OBJECT_ACE* PACCESS_ALLOWED_OBJECT_ACE; 1916 - 1917 -struct _ACCESS_DENIED_OBJECT_ACE { 1918 - ACE_HEADER Header; 1919 - ACCESS_MASK Mask; 1920 - DWORD Flags; 1921 - GUID ObjectType; 1922 - GUID InheritedObjectType; 1923 - DWORD SidStart; 1924 -} 1925 -alias _ACCESS_DENIED_OBJECT_ACE ACCESS_DENIED_OBJECT_ACE; 1926 -alias _ACCESS_DENIED_OBJECT_ACE* PACCESS_DENIED_OBJECT_ACE; 1927 - 1928 -struct _SYSTEM_AUDIT_OBJECT_ACE { 1929 - ACE_HEADER Header; 1930 - ACCESS_MASK Mask; 1931 - DWORD Flags; 1932 - GUID ObjectType; 1933 - GUID InheritedObjectType; 1934 - DWORD SidStart; 1935 -} 1936 -alias _SYSTEM_AUDIT_OBJECT_ACE SYSTEM_AUDIT_OBJECT_ACE; 1937 -alias _SYSTEM_AUDIT_OBJECT_ACE* PSYSTEM_AUDIT_OBJECT_ACE; 1938 - 1939 -struct _SYSTEM_ALARM_OBJECT_ACE { 1940 - ACE_HEADER Header; 1941 - ACCESS_MASK Mask; 1942 - DWORD Flags; 1943 - GUID ObjectType; 1944 - GUID InheritedObjectType; 1945 - DWORD SidStart; 1946 -} 1947 -alias _SYSTEM_ALARM_OBJECT_ACE SYSTEM_ALARM_OBJECT_ACE; 1948 -alias _SYSTEM_ALARM_OBJECT_ACE* PSYSTEM_ALARM_OBJECT_ACE; 1949 - 1950 -struct _ACCESS_ALLOWED_CALLBACK_ACE { 1951 - ACE_HEADER Header; 1952 - ACCESS_MASK Mask; 1953 - DWORD SidStart; 1954 -} 1955 -alias _ACCESS_ALLOWED_CALLBACK_ACE ACCESS_ALLOWED_CALLBACK_ACE; 1956 -alias _ACCESS_ALLOWED_CALLBACK_ACE* PACCESS_ALLOWED_CALLBACK_ACE; 1957 - 1958 -struct _ACCESS_DENIED_CALLBACK_ACE { 1959 - ACE_HEADER Header; 1960 - ACCESS_MASK Mask; 1961 - DWORD SidStart; 1962 -} 1963 -alias _ACCESS_DENIED_CALLBACK_ACE ACCESS_DENIED_CALLBACK_ACE; 1964 -alias _ACCESS_DENIED_CALLBACK_ACE* PACCESS_DENIED_CALLBACK_ACE; 1965 - 1966 -struct _SYSTEM_AUDIT_CALLBACK_ACE { 1967 - ACE_HEADER Header; 1968 - ACCESS_MASK Mask; 1969 - DWORD SidStart; 1970 -} 1971 -alias _SYSTEM_AUDIT_CALLBACK_ACE SYSTEM_AUDIT_CALLBACK_ACE; 1972 -alias _SYSTEM_AUDIT_CALLBACK_ACE* PSYSTEM_AUDIT_CALLBACK_ACE; 1973 - 1974 -struct _SYSTEM_ALARM_CALLBACK_ACE { 1975 - ACE_HEADER Header; 1976 - ACCESS_MASK Mask; 1977 - DWORD SidStart; 1978 -} 1979 -alias _SYSTEM_ALARM_CALLBACK_ACE SYSTEM_ALARM_CALLBACK_ACE; 1980 -alias _SYSTEM_ALARM_CALLBACK_ACE* PSYSTEM_ALARM_CALLBACK_ACE; 1981 - 1982 -struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE { 1983 - ACE_HEADER Header; 1984 - ACCESS_MASK Mask; 1985 - DWORD Flags; 1986 - GUID ObjectType; 1987 - GUID InheritedObjectType; 1988 - DWORD SidStart; 1989 -} 1990 -alias _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE ACCESS_ALLOWED_CALLBACK_OBJECT_ACE; 1991 -alias _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE* PACCESS_ALLOWED_CALLBACK_OBJECT_ACE; 1992 - 1993 -struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE { 1994 - ACE_HEADER Header; 1995 - ACCESS_MASK Mask; 1996 - DWORD Flags; 1997 - GUID ObjectType; 1998 - GUID InheritedObjectType; 1999 - DWORD SidStart; 2000 -} 2001 -alias _ACCESS_DENIED_CALLBACK_OBJECT_ACE ACCESS_DENIED_CALLBACK_OBJECT_ACE; 2002 -alias _ACCESS_DENIED_CALLBACK_OBJECT_ACE* PACCESS_DENIED_CALLBACK_OBJECT_ACE; 2003 - 2004 -struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE { 2005 - ACE_HEADER Header; 2006 - ACCESS_MASK Mask; 2007 - DWORD Flags; 2008 - GUID ObjectType; 2009 - GUID InheritedObjectType; 2010 - DWORD SidStart; 2011 -} 2012 -alias _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE SYSTEM_AUDIT_CALLBACK_OBJECT_ACE; 2013 -alias _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE* PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE; 2014 - 2015 -struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE { 2016 - ACE_HEADER Header; 2017 - ACCESS_MASK Mask; 2018 - DWORD Flags; 2019 - GUID ObjectType; 2020 - GUID InheritedObjectType; 2021 - DWORD SidStart; 2022 -} 2023 -alias _SYSTEM_ALARM_CALLBACK_OBJECT_ACE SYSTEM_ALARM_CALLBACK_OBJECT_ACE; 2024 -alias _SYSTEM_ALARM_CALLBACK_OBJECT_ACE* PSYSTEM_ALARM_CALLBACK_OBJECT_ACE; 2025 - 2026 -enum : uint { ACE_OBJECT_TYPE_PRESENT = 0x1 } 2027 -enum : uint { ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2 } 2028 - 2029 -alias int _ACL_INFORMATION_CLASS; 2030 -enum { 2031 - AclRevisionInformation = 1, 2032 - AclSizeInformation, 2033 -} 2034 -alias _ACL_INFORMATION_CLASS ACL_INFORMATION_CLASS; 2035 - 2036 -struct _ACL_REVISION_INFORMATION { 2037 - DWORD AclRevision; 2038 -} 2039 -alias _ACL_REVISION_INFORMATION ACL_REVISION_INFORMATION; 2040 - 2041 -alias ACL_REVISION_INFORMATION* PACL_REVISION_INFORMATION; 2042 - 2043 -struct _ACL_SIZE_INFORMATION { 2044 - DWORD AceCount; 2045 - DWORD AclBytesInUse; 2046 - DWORD AclBytesFree; 2047 -} 2048 -alias _ACL_SIZE_INFORMATION ACL_SIZE_INFORMATION; 2049 - 2050 -alias ACL_SIZE_INFORMATION* PACL_SIZE_INFORMATION; 2051 - 2052 -enum : uint { SECURITY_DESCRIPTOR_REVISION = 1 } 2053 -enum : uint { SECURITY_DESCRIPTOR_REVISION1 = 1 } 2054 - 2055 -const uint SECURITY_DESCRIPTOR_MIN_LENGTH = SECURITY_DESCRIPTOR.sizeof; 2056 - 2057 -alias WORD SECURITY_DESCRIPTOR_CONTROL; 2058 -alias WORD* PSECURITY_DESCRIPTOR_CONTROL; 2059 - 2060 -enum : uint { SE_OWNER_DEFAULTED = 0x0001 } 2061 -enum : uint { SE_GROUP_DEFAULTED = 0x0002 } 2062 -enum : uint { SE_DACL_PRESENT = 0x0004 } 2063 -enum : uint { SE_DACL_DEFAULTED = 0x0008 } 2064 -enum : uint { SE_SACL_PRESENT = 0x0010 } 2065 -enum : uint { SE_SACL_DEFAULTED = 0x0020 } 2066 -enum : uint { SE_DACL_AUTO_INHERIT_REQ = 0x0100 } 2067 -enum : uint { SE_SACL_AUTO_INHERIT_REQ = 0x0200 } 2068 -enum : uint { SE_DACL_AUTO_INHERITED = 0x0400 } 2069 -enum : uint { SE_SACL_AUTO_INHERITED = 0x0800 } 2070 -enum : uint { SE_DACL_PROTECTED = 0x1000 } 2071 -enum : uint { SE_SACL_PROTECTED = 0x2000 } 2072 -enum : uint { SE_RM_CONTROL_VALID = 0x4000 } 2073 -enum : uint { SE_SELF_RELATIVE = 0x8000 } 2074 - 2075 -struct _SECURITY_DESCRIPTOR_RELATIVE { 2076 - BYTE Revision; 2077 - BYTE Sbz1; 2078 - SECURITY_DESCRIPTOR_CONTROL Control; 2079 - DWORD Owner; 2080 - DWORD Group; 2081 - DWORD Sacl; 2082 - DWORD Dacl; 2083 -} 2084 -alias _SECURITY_DESCRIPTOR_RELATIVE SECURITY_DESCRIPTOR_RELATIVE; 2085 -alias _SECURITY_DESCRIPTOR_RELATIVE* PISECURITY_DESCRIPTOR_RELATIVE; 2086 - 2087 -struct _SECURITY_DESCRIPTOR { 2088 - BYTE Revision; 2089 - BYTE Sbz1; 2090 - SECURITY_DESCRIPTOR_CONTROL Control; 2091 - PSID Owner; 2092 - PSID Group; 2093 - PACL Sacl; 2094 - PACL Dacl; 2095 -} 2096 -alias _SECURITY_DESCRIPTOR SECURITY_DESCRIPTOR; 2097 -alias _SECURITY_DESCRIPTOR* PISECURITY_DESCRIPTOR; 2098 - 2099 -struct _OBJECT_TYPE_LIST { 2100 - WORD Level; 2101 - WORD Sbz; 2102 - GUID *ObjectType; 2103 -} 2104 -alias _OBJECT_TYPE_LIST OBJECT_TYPE_LIST; 2105 -alias _OBJECT_TYPE_LIST* POBJECT_TYPE_LIST; 2106 - 2107 -enum : uint { ACCESS_OBJECT_GUID = 0 } 2108 -enum : uint { ACCESS_PROPERTY_SET_GUID = 1 } 2109 -enum : uint { ACCESS_PROPERTY_GUID = 2 } 2110 - 2111 -enum : uint { ACCESS_MAX_LEVEL = 4 } 2112 - 2113 -alias int _AUDIT_EVENT_TYPE; 2114 -enum { 2115 - AuditEventObjectAccess, 2116 - AuditEventDirectoryServiceAccess, 2117 -} 2118 -alias _AUDIT_EVENT_TYPE AUDIT_EVENT_TYPE; 2119 -alias _AUDIT_EVENT_TYPE* PAUDIT_EVENT_TYPE; 2120 - 2121 -enum : uint { AUDIT_ALLOW_NO_PRIVILEGE = 0x1 } 2122 - 2123 -const char[] ACCESS_DS_SOURCE_A = "DS"; 2124 -const wchar[] ACCESS_DS_SOURCE_W = "DS"; 2125 -const char[] ACCESS_DS_OBJECT_TYPE_NAME_A = "Directory Service Object"; 2126 -const wchar[] ACCESS_DS_OBJECT_TYPE_NAME_W = "Directory Service Object"; 2127 - 2128 -enum : uint { SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001 } 2129 -enum : uint { SE_PRIVILEGE_ENABLED = 0x00000002 } 2130 -enum : uint { SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000 } 2131 - 2132 -enum : uint { PRIVILEGE_SET_ALL_NECESSARY = 1 } 2133 - 2134 -struct _PRIVILEGE_SET { 2135 - DWORD PrivilegeCount; 2136 - DWORD Control; 2137 - LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY]; 2138 -} 2139 -alias _PRIVILEGE_SET PRIVILEGE_SET; 2140 -alias _PRIVILEGE_SET* PPRIVILEGE_SET; 2141 - 2142 -const TCHAR[] SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege"; 2143 -const TCHAR[] SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege"; 2144 -const TCHAR[] SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege"; 2145 -const TCHAR[] SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege"; 2146 -const TCHAR[] SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege"; 2147 -const TCHAR[] SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege"; 2148 -const TCHAR[] SE_TCB_NAME = "SeTcbPrivilege"; 2149 -const TCHAR[] SE_SECURITY_NAME = "SeSecurityPrivilege"; 2150 -const TCHAR[] SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege"; 2151 -const TCHAR[] SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege"; 2152 -const TCHAR[] SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege"; 2153 -const TCHAR[] SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege"; 2154 -const TCHAR[] SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege"; 2155 -const TCHAR[] SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege"; 2156 -const TCHAR[] SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege"; 2157 -const TCHAR[] SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege"; 2158 -const TCHAR[] SE_BACKUP_NAME = "SeBackupPrivilege"; 2159 -const TCHAR[] SE_RESTORE_NAME = "SeRestorePrivilege"; 2160 -const TCHAR[] SE_SHUTDOWN_NAME = "SeShutdownPrivilege"; 2161 -const TCHAR[] SE_DEBUG_NAME = "SeDebugPrivilege"; 2162 -const TCHAR[] SE_AUDIT_NAME = "SeAuditPrivilege"; 2163 -const TCHAR[] SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege"; 2164 -const TCHAR[] SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege"; 2165 -const TCHAR[] SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege"; 2166 -const TCHAR[] SE_UNDOCK_NAME = "SeUndockPrivilege"; 2167 -const TCHAR[] SE_SYNC_AGENT_NAME = "SeSyncAgentPrivilege"; 2168 -const TCHAR[] SE_ENABLE_DELEGATION_NAME = "SeEnableDelegationPrivilege"; 2169 -const TCHAR[] SE_MANAGE_VOLUME_NAME = "SeManageVolumePrivilege"; 2170 - 2171 -alias int _SECURITY_IMPERSONATION_LEVEL; 2172 -enum { 2173 - SecurityAnonymous, 2174 - SecurityIdentification, 2175 - SecurityImpersonation, 2176 - SecurityDelegation, 2177 -} 2178 -alias _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL; 2179 -alias _SECURITY_IMPERSONATION_LEVEL* PSECURITY_IMPERSONATION_LEVEL; 2180 - 2181 -alias SecurityDelegation SECURITY_MAX_IMPERSONATION_LEVEL; 2182 -alias SecurityAnonymous SECURITY_MIN_IMPERSONATION_LEVEL; 2183 -alias SecurityImpersonation DEFAULT_IMPERSONATION_LEVEL; 2184 -bit VALID_IMPERSONATION_LEVEL(SECURITY_IMPERSONATION_LEVEL L){ return (L >= SECURITY_MIN_IMPERSONATION_LEVEL) && (L <= SECURITY_MAX_IMPERSONATION_LEVEL); } 2185 - 2186 -enum : uint { TOKEN_ASSIGN_PRIMARY = 0x0001 } 2187 -enum : uint { TOKEN_DUPLICATE = 0x0002 } 2188 -enum : uint { TOKEN_IMPERSONATE = 0x0004 } 2189 -enum : uint { TOKEN_QUERY = 0x0008 } 2190 -enum : uint { TOKEN_QUERY_SOURCE = 0x0010 } 2191 -enum : uint { TOKEN_ADJUST_PRIVILEGES = 0x0020 } 2192 -enum : uint { TOKEN_ADJUST_GROUPS = 0x0040 } 2193 -enum : uint { TOKEN_ADJUST_DEFAULT = 0x0080 } 2194 -enum : uint { TOKEN_ADJUST_SESSIONID = 0x0100 } 2195 - 2196 -enum : uint { TOKEN_ALL_ACCESS_P = STANDARD_RIGHTS_REQUIRED | TOKEN_ASSIGN_PRIMARY | TOKEN_DUPLICATE | TOKEN_IMPERSONATE | TOKEN_QUERY | TOKEN_QUERY_SOURCE | TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT } 2197 - 2198 -// #if ((defined(_WIN32_WINNT) && (_WIN32_WINNT > 0x0400)) || (!defined(_WIN32_WINNT))) 2199 -enum : uint { TOKEN_ALL_ACCESS = TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID } 2200 -// #else 2201 -// #... 2202 -// #endif 2203 - 2204 -enum : uint { TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY } 2205 - 2206 -enum : uint { TOKEN_WRITE = STANDARD_RIGHTS_WRITE | TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT } 2207 - 2208 -enum : uint { TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE } 2209 - 2210 -alias int _TOKEN_TYPE; 2211 -enum { 2212 - TokenPrimary = 1, 2213 - TokenImpersonation, 2214 -} 2215 -alias _TOKEN_TYPE TOKEN_TYPE; 2216 - 2012 +struct ACCESS_ALLOWED_OBJECT_ACE { 2013 + ACE_HEADER Header; 2014 + ACCESS_MASK Mask; 2015 + DWORD Flags; 2016 + GUID ObjectType; 2017 + GUID InheritedObjectType; 2018 + DWORD SidStart; 2019 +} 2020 +alias ACCESS_ALLOWED_OBJECT_ACE* PACCESS_ALLOWED_OBJECT_ACE; 2021 + 2022 +struct ACCESS_DENIED_OBJECT_ACE { 2023 + ACE_HEADER Header; 2024 + ACCESS_MASK Mask; 2025 + DWORD Flags; 2026 + GUID ObjectType; 2027 + GUID InheritedObjectType; 2028 + DWORD SidStart; 2029 +} 2030 +alias ACCESS_DENIED_OBJECT_ACE* PACCESS_DENIED_OBJECT_ACE; 2031 + 2032 +struct SYSTEM_AUDIT_OBJECT_ACE { 2033 + ACE_HEADER Header; 2034 + ACCESS_MASK Mask; 2035 + DWORD Flags; 2036 + GUID ObjectType; 2037 + GUID InheritedObjectType; 2038 + DWORD SidStart; 2039 +} 2040 +alias SYSTEM_AUDIT_OBJECT_ACE* PSYSTEM_AUDIT_OBJECT_ACE; 2041 + 2042 +struct SYSTEM_ALARM_OBJECT_ACE { 2043 + ACE_HEADER Header; 2044 + ACCESS_MASK Mask; 2045 + DWORD Flags; 2046 + GUID ObjectType; 2047 + GUID InheritedObjectType; 2048 + DWORD SidStart; 2049 +} 2050 +alias SYSTEM_ALARM_OBJECT_ACE* PSYSTEM_ALARM_OBJECT_ACE; 2051 + 2052 +struct ACL { 2053 + BYTE AclRevision; 2054 + BYTE Sbz1; 2055 + WORD AclSize; 2056 + WORD AceCount; 2057 + WORD Sbz2; 2058 +} 2059 +alias ACL* PACL; 2060 + 2061 +struct ACL_REVISION_INFORMATION { 2062 + DWORD AclRevision; 2063 +} 2064 + 2065 +struct ACL_SIZE_INFORMATION { 2066 + DWORD AceCount; 2067 + DWORD AclBytesInUse; 2068 + DWORD AclBytesFree; 2069 +} 2070 + 2071 +version (X86) { 2072 + // ??? 2073 + const SIZE_OF_80387_REGISTERS = 80; 2074 + const CONTEXT_i386 = 0x010000; 2075 + const CONTEXT_i486 = 0x010000; 2076 + const CONTEXT_CONTROL = CONTEXT_i386 | 0x01; 2077 + const CONTEXT_INTEGER = CONTEXT_i386 | 0x02; 2078 + const CONTEXT_SEGMENTS = CONTEXT_i386 | 0x04; 2079 + const CONTEXT_FLOATING_POINT = CONTEXT_i386 | 0x08; 2080 + const CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 | 0x10; 2081 + const CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 | 0x20; 2082 + const CONTEXT_FULL = CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS; 2083 + const MAXIMUM_SUPPORTED_EXTENSION = 512; 2084 + 2085 + struct FLOATING_SAVE_AREA { 2086 + DWORD ControlWord; 2087 + DWORD StatusWord; 2088 + DWORD TagWord; 2089 + DWORD ErrorOffset; 2090 + DWORD ErrorSelector; 2091 + DWORD DataOffset; 2092 + DWORD DataSelector; 2093 + BYTE[80] RegisterArea; 2094 + DWORD Cr0NpxState; 2095 + } 2096 + 2097 + struct CONTEXT { 2098 + DWORD ContextFlags; 2099 + DWORD Dr0; 2100 + DWORD Dr1; 2101 + DWORD Dr2; 2102 + DWORD Dr3; 2103 + DWORD Dr6; 2104 + DWORD Dr7; 2105 + FLOATING_SAVE_AREA FloatSave; 2106 + DWORD SegGs; 2107 + DWORD SegFs; 2108 + DWORD SegEs; 2109 + DWORD SegDs; 2110 + DWORD Edi; 2111 + DWORD Esi; 2112 + DWORD Ebx; 2113 + DWORD Edx; 2114 + DWORD Ecx; 2115 + DWORD Eax; 2116 + DWORD Ebp; 2117 + DWORD Eip; 2118 + DWORD SegCs; 2119 + DWORD EFlags; 2120 + DWORD Esp; 2121 + DWORD SegSs; 2122 + BYTE[MAXIMUM_SUPPORTED_EXTENSION] ExtendedRegisters; 2123 + } 2124 + 2125 +} else { 2126 + static assert(false, "Unsupported CPU"); 2127 + // Versions for PowerPC, Alpha, SHX, and MIPS removed. 2128 +} 2129 + 2130 +alias CONTEXT* PCONTEXT, LPCONTEXT; 2131 + 2132 +struct EXCEPTION_RECORD { 2133 + DWORD ExceptionCode; 2134 + DWORD ExceptionFlags; 2135 + EXCEPTION_RECORD* ExceptionRecord; 2136 + PVOID ExceptionAddress; 2137 + DWORD NumberParameters; 2138 + DWORD[EXCEPTION_MAXIMUM_PARAMETERS] ExceptionInformation; 2139 +} 2140 +alias EXCEPTION_RECORD* PEXCEPTION_RECORD, LPEXCEPTION_RECORD; 2141 + 2142 +struct EXCEPTION_POINTERS { 2143 + PEXCEPTION_RECORD ExceptionRecord; 2144 + PCONTEXT ContextRecord; 2145 +} 2146 +alias EXCEPTION_POINTERS* PEXCEPTION_POINTERS, LPEXCEPTION_POINTERS; 2147 + 2148 +union LARGE_INTEGER { 2149 + struct { 2150 + uint LowPart; 2151 + int HighPart; 2152 + } 2153 + long QuadPart; 2154 +} 2155 +alias LARGE_INTEGER* PLARGE_INTEGER; 2156 + 2157 +union ULARGE_INTEGER { 2158 + struct { 2159 + uint LowPart; 2160 + uint HighPart; 2161 + } 2162 + ulong QuadPart; 2163 +} 2164 +alias ULARGE_INTEGER* PULARGE_INTEGER; 2165 + 2166 +alias LARGE_INTEGER LUID; 2167 +alias LUID* PLUID; 2168 + 2169 +const LUID SYSTEM_LUID = { QuadPart:999 }; 2170 + 2171 +align(4) struct LUID_AND_ATTRIBUTES { 2172 + LUID Luid; 2173 + DWORD Attributes; 2174 +} 2175 +alias LUID_AND_ATTRIBUTES* PLUID_AND_ATTRIBUTES; 2176 + 2177 +struct PRIVILEGE_SET { 2178 + DWORD PrivilegeCount; 2179 + DWORD Control; 2180 + LUID_AND_ATTRIBUTES _Privilege; 2181 + 2182 + LUID_AND_ATTRIBUTES* Privilege() { return &_Privilege; } 2183 +} 2184 +alias PRIVILEGE_SET* PPRIVILEGE_SET; 2185 + 2186 +struct SECURITY_ATTRIBUTES { 2187 + DWORD nLength; 2188 + LPVOID lpSecurityDescriptor; 2189 + BOOL bInheritHandle; 2190 +} 2191 +alias SECURITY_ATTRIBUTES* PSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES; 2192 + 2193 +struct SECURITY_QUALITY_OF_SERVICE { 2194 + DWORD Length; 2195 + SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; 2196 + SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; 2197 + BOOLEAN EffectiveOnly; 2198 +} 2199 +alias SECURITY_QUALITY_OF_SERVICE* PSECURITY_QUALITY_OF_SERVICE; 2200 + 2201 +alias PVOID PACCESS_TOKEN; 2202 + 2203 +struct SE_IMPERSONATION_STATE { 2204 + PACCESS_TOKEN Token; 2205 + BOOLEAN CopyOnOpen; 2206 + BOOLEAN EffectiveOnly; 2207 + SECURITY_IMPERSONATION_LEVEL Level; 2208 +} 2209 +alias SE_IMPERSONATION_STATE* PSE_IMPERSONATION_STATE; 2210 + 2211 +struct SID_IDENTIFIER_AUTHORITY { 2212 + BYTE[6] Value; 2213 +} 2214 +alias SID_IDENTIFIER_AUTHORITY* PSID_IDENTIFIER_AUTHORITY, LPSID_IDENTIFIER_AUTHORITY; 2215 + 2216 +alias PVOID PSID; 2217 + 2218 +struct SID { 2219 + BYTE Revision; 2220 + BYTE SubAuthorityCount; 2221 + SID_IDENTIFIER_AUTHORITY IdentifierAuthority; 2222 + DWORD _SubAuthority; 2223 + 2224 + DWORD* SubAuthority() { return &_SubAuthority; } 2225 +} 2226 +alias SID* PISID; 2227 + 2228 +struct SID_AND_ATTRIBUTES { 2229 + PSID Sid; 2230 + DWORD Attributes; 2231 +} 2232 +alias SID_AND_ATTRIBUTES* PSID_AND_ATTRIBUTES; 2233 + 2234 +struct TOKEN_SOURCE { 2235 + CHAR[TOKEN_SOURCE_LENGTH] SourceName; 2236 + LUID SourceIdentifier; 2237 +} 2238 +alias TOKEN_SOURCE* PTOKEN_SOURCE; 2239 + 2240 +struct TOKEN_CONTROL { 2241 + LUID TokenId; 2242 + LUID AuthenticationId; 2243 + LUID ModifiedId; 2244 + TOKEN_SOURCE TokenSource; 2245 +} 2246 +alias TOKEN_CONTROL* PTOKEN_CONTROL; 2247 + 2248 +struct TOKEN_DEFAULT_DACL { 2249 + PACL DefaultDacl; 2250 +} 2251 +alias TOKEN_DEFAULT_DACL* PTOKEN_DEFAULT_DACL; 2252 + 2253 +struct TOKEN_GROUPS { 2254 + DWORD GroupCount; 2255 + SID_AND_ATTRIBUTES _Groups; 2256 + 2257 + SID_AND_ATTRIBUTES* Groups() { return &_Groups; } 2258 +} 2259 +alias TOKEN_GROUPS* PTOKEN_GROUPS, LPTOKEN_GROUPS; 2260 + 2261 +struct TOKEN_OWNER { 2262 + PSID Owner; 2263 +} 2264 +alias TOKEN_OWNER* PTOKEN_OWNER; 2265 + 2266 +struct TOKEN_PRIMARY_GROUP { 2267 + PSID PrimaryGroup; 2268 +} 2269 +alias TOKEN_PRIMARY_GROUP* PTOKEN_PRIMARY_GROUP; 2270 + 2271 +struct TOKEN_PRIVILEGES { 2272 + DWORD PrivilegeCount; 2273 + LUID_AND_ATTRIBUTES _Privileges; 2274 + 2275 + LUID_AND_ATTRIBUTES* Privileges() { return &_Privileges; } 2276 +} 2277 +alias TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES, LPTOKEN_PRIVILEGES; 2278 + 2279 +enum TOKEN_TYPE { 2280 + TokenPrimary = 1, 2281 + TokenImpersonation 2282 +} 2217 2283 alias TOKEN_TYPE* PTOKEN_TYPE; 2218 2284 2219 -alias int _TOKEN_INFORMATION_CLASS; 2220 -enum { 2221 - TokenUser = 1, 2222 - TokenGroups, 2223 - TokenPrivileges, 2224 - TokenOwner, 2225 - TokenPrimaryGroup, 2226 - TokenDefaultDacl, 2227 - TokenSource, 2228 - TokenType, 2229 - TokenImpersonationLevel, 2230 - TokenStatistics, 2231 - TokenRestrictedSids, 2232 - TokenSessionId, 2233 - TokenGroupsAndPrivileges, 2234 - TokenSessionReference, 2235 - TokenSandBoxInert, 2236 -} 2237 -alias _TOKEN_INFORMATION_CLASS TOKEN_INFORMATION_CLASS; 2238 -alias _TOKEN_INFORMATION_CLASS* PTOKEN_INFORMATION_CLASS; 2239 - 2240 -struct _TOKEN_USER { 2241 - SID_AND_ATTRIBUTES User; 2242 -} 2243 -alias _TOKEN_USER TOKEN_USER; 2244 -alias _TOKEN_USER* PTOKEN_USER; 2245 - 2246 -struct _TOKEN_GROUPS { 2247 - DWORD GroupCount; 2248 - SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]; 2249 -} 2250 -alias _TOKEN_GROUPS TOKEN_GROUPS; 2251 -alias _TOKEN_GROUPS* PTOKEN_GROUPS; 2252 - 2253 -struct _TOKEN_PRIVILEGES { 2254 - DWORD PrivilegeCount; 2255 - LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; 2256 -} 2257 -alias _TOKEN_PRIVILEGES TOKEN_PRIVILEGES; 2258 -alias _TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES; 2259 - 2260 -struct _TOKEN_OWNER { 2261 - PSID Owner; 2262 -} 2263 -alias _TOKEN_OWNER TOKEN_OWNER; 2264 -alias _TOKEN_OWNER* PTOKEN_OWNER; 2265 - 2266 -struct _TOKEN_PRIMARY_GROUP { 2267 - PSID PrimaryGroup; 2268 -} 2269 -alias _TOKEN_PRIMARY_GROUP TOKEN_PRIMARY_GROUP; 2270 -alias _TOKEN_PRIMARY_GROUP* PTOKEN_PRIMARY_GROUP; 2271 - 2272 -struct _TOKEN_DEFAULT_DACL { 2273 - PACL DefaultDacl; 2274 -} 2275 -alias _TOKEN_DEFAULT_DACL TOKEN_DEFAULT_DACL; 2276 -alias _TOKEN_DEFAULT_DACL* PTOKEN_DEFAULT_DACL; 2277 - 2278 -struct _TOKEN_GROUPS_AND_PRIVILEGES { 2279 - DWORD SidCount; 2280 - DWORD SidLength; 2281 - PSID_AND_ATTRIBUTES Sids; 2282 - DWORD RestrictedSidCount; 2283 - DWORD RestrictedSidLength; 2284 - PSID_AND_ATTRIBUTES RestrictedSids; 2285 - DWORD PrivilegeCount; 2286 - DWORD PrivilegeLength; 2287 - PLUID_AND_ATTRIBUTES Privileges; 2288 - LUID AuthenticationId; 2289 -} 2290 -alias _TOKEN_GROUPS_AND_PRIVILEGES TOKEN_GROUPS_AND_PRIVILEGES; 2291 -alias _TOKEN_GROUPS_AND_PRIVILEGES* PTOKEN_GROUPS_AND_PRIVILEGES; 2292 - 2293 -enum : uint { TOKEN_SOURCE_LENGTH = 8 } 2294 - 2295 -struct _TOKEN_SOURCE { 2296 - CHAR SourceName[TOKEN_SOURCE_LENGTH]; 2297 - LUID SourceIdentifier; 2298 -} 2299 -alias _TOKEN_SOURCE TOKEN_SOURCE; 2300 -alias _TOKEN_SOURCE* PTOKEN_SOURCE; 2301 - 2302 -struct _TOKEN_STATISTICS { 2303 - LUID TokenId; 2304 - LUID AuthenticationId; 2305 - LARGE_INTEGER ExpirationTime; 2306 - TOKEN_TYPE TokenType; 2307 - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; 2308 - DWORD DynamicCharged; 2309 - DWORD DynamicAvailable; 2310 - DWORD GroupCount; 2311 - DWORD PrivilegeCount; 2312 - LUID ModifiedId; 2313 -} 2314 -alias _TOKEN_STATISTICS TOKEN_STATISTICS; 2315 -alias _TOKEN_STATISTICS* PTOKEN_STATISTICS; 2316 - 2317 -struct _TOKEN_CONTROL { 2318 - LUID TokenId; 2319 - LUID AuthenticationId; 2320 - LUID ModifiedId; 2321 - TOKEN_SOURCE TokenSource; 2322 -} 2323 -alias _TOKEN_CONTROL TOKEN_CONTROL; 2324 -alias _TOKEN_CONTROL* PTOKEN_CONTROL; 2325 - 2326 -enum : uint { SECURITY_DYNAMIC_TRACKING = TRUE } 2327 -enum : uint { SECURITY_STATIC_TRACKING = FALSE } 2328 - 2329 -alias BOOLEAN SECURITY_CONTEXT_TRACKING_MODE; 2330 -alias BOOLEAN* PSECURITY_CONTEXT_TRACKING_MODE; 2331 - 2332 -struct _SECURITY_QUALITY_OF_SERVICE { 2333 - DWORD Length; 2334 - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; 2335 - SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; 2336 - BOOLEAN EffectiveOnly; 2337 -} 2338 -alias _SECURITY_QUALITY_OF_SERVICE SECURITY_QUALITY_OF_SERVICE; 2339 -alias _SECURITY_QUALITY_OF_SERVICE* PSECURITY_QUALITY_OF_SERVICE; 2340 - 2341 -struct _SE_IMPERSONATION_STATE { 2342 - PACCESS_TOKEN Token; 2343 - BOOLEAN CopyOnOpen; 2344 - BOOLEAN EffectiveOnly; 2345 - SECURITY_IMPERSONATION_LEVEL Level; 2346 -} 2347 -alias _SE_IMPERSONATION_STATE SE_IMPERSONATION_STATE; 2348 -alias _SE_IMPERSONATION_STATE* PSE_IMPERSONATION_STATE; 2349 - 2350 -enum : uint { DISABLE_MAX_PRIVILEGE = 0x1 } 2351 -enum : uint { SANDBOX_INERT = 0x2 } 2285 +struct TOKEN_STATISTICS { 2286 + LUID TokenId; 2287 + LUID AuthenticationId; 2288 + LARGE_INTEGER ExpirationTime; 2289 + TOKEN_TYPE TokenType; 2290 + SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; 2291 + DWORD DynamicCharged; 2292 + DWORD DynamicAvailable; 2293 + DWORD GroupCount; 2294 + DWORD PrivilegeCount; 2295 + LUID ModifiedId; 2296 +} 2297 +alias TOKEN_STATISTICS* PTOKEN_STATISTICS; 2298 + 2299 +struct TOKEN_USER { 2300 + SID_AND_ATTRIBUTES User; 2301 +} 2302 +alias TOKEN_USER* PTOKEN_USER; 2352 2303 2353 2304 alias DWORD SECURITY_INFORMATION; 2354 -alias DWORD* PSECURITY_INFORMATION; 2355 - 2356 -enum : uint { OWNER_SECURITY_INFORMATION = 0x00000001 } 2357 -enum : uint { GROUP_SECURITY_INFORMATION = 0x00000002 } 2358 -enum : uint { DACL_SECURITY_INFORMATION = 0x00000004 } 2359 -enum : uint { SACL_SECURITY_INFORMATION = 0x00000008 } 2360 - 2361 -enum : uint { PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000 } 2362 -enum : uint { PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000 } 2363 -enum : uint { UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000 } 2364 -enum : uint { UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000 } 2365 - 2366 -enum : uint { PROCESS_TERMINATE = 0x0001 } 2367 -enum : uint { PROCESS_CREATE_THREAD = 0x0002 } 2368 -enum : uint { PROCESS_SET_SESSIONID = 0x0004 } 2369 -enum : uint { PROCESS_VM_OPERATION = 0x0008 } 2370 -enum : uint { PROCESS_VM_READ = 0x0010 } 2371 -enum : uint { PROCESS_VM_WRITE = 0x0020 } 2372 -enum : uint { PROCESS_DUP_HANDLE = 0x0040 } 2373 -enum : uint { PROCESS_CREATE_PROCESS = 0x0080 } 2374 -enum : uint { PROCESS_SET_QUOTA = 0x0100 } 2375 -enum : uint { PROCESS_SET_INFORMATION = 0x0200 } 2376 -enum : uint { PROCESS_QUERY_INFORMATION = 0x0400 } 2377 -enum : uint { PROCESS_SUSPEND_RESUME = 0x0800 } 2378 -enum : uint { PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFF } 2379 - 2380 -// #if defined(_WIN64) 2381 - 2382 -// #... 2383 - 2384 -// #else 2385 - 2386 -enum : uint { MAXIMUM_PROCESSORS = 32 } 2387 - 2388 -// #endif 2389 - 2390 -enum : uint { THREAD_TERMINATE = 0x0001 } 2391 -enum : uint { THREAD_SUSPEND_RESUME = 0x0002 } 2392 -enum : uint { THREAD_GET_CONTEXT = 0x0008 } 2393 -enum : uint { THREAD_SET_CONTEXT = 0x0010 } 2394 -enum : uint { THREAD_SET_INFORMATION = 0x0020 } 2395 -enum : uint { THREAD_QUERY_INFORMATION = 0x0040 } 2396 -enum : uint { THREAD_SET_THREAD_TOKEN = 0x0080 } 2397 -enum : uint { THREAD_IMPERSONATE = 0x0100 } 2398 -enum : uint { THREAD_DIRECT_IMPERSONATION = 0x0200 } 2399 - 2400 -enum : uint { THREAD_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3FF } 2401 - 2402 -enum : uint { JOB_OBJECT_ASSIGN_PROCESS = 0x0001 } 2403 -enum : uint { JOB_OBJECT_SET_ATTRIBUTES = 0x0002 } 2404 -enum : uint { JOB_OBJECT_QUERY = 0x0004 } 2405 -enum : uint { JOB_OBJECT_TERMINATE = 0x0008 } 2406 -enum : uint { JOB_OBJECT_SET_SECURITY_ATTRIBUTES = 0x0010 } 2407 -enum : uint { JOB_OBJECT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1F } 2408 - 2409 -struct _JOB_SET_ARRAY { 2410 - HANDLE JobHandle; 2411 - DWORD MemberLevel; 2412 - DWORD Flags; 2413 -} 2414 -alias _JOB_SET_ARRAY JOB_SET_ARRAY; 2415 -alias _JOB_SET_ARRAY* PJOB_SET_ARRAY; 2416 - 2417 -enum : uint { TLS_MINIMUM_AVAILABLE = 64 } 2418 - 2419 -struct _NT_TIB { 2420 - _EXCEPTION_REGISTRATION_RECORD *ExceptionList; 2421 - PVOID StackBase; 2422 - PVOID StackLimit; 2423 - PVOID SubSystemTib; 2424 -union { 2425 - PVOID FiberData; 2426 - DWORD Version; 2427 -} 2428 - 2429 - PVOID ArbitraryUserPointer; 2430 - _NT_TIB *Self; 2431 -} 2432 -alias _NT_TIB NT_TIB; 2433 - 2434 -alias NT_TIB* PNT_TIB; 2435 - 2436 -struct _NT_TIB32 { 2437 - DWORD ExceptionList; 2438 - DWORD StackBase; 2439 - DWORD StackLimit; 2440 - DWORD SubSystemTib; 2441 -union { 2442 - DWORD FiberData; 2443 - DWORD Version; 2444 -} 2445 - 2446 - DWORD ArbitraryUserPointer; 2447 - DWORD Self; 2448 -} 2449 -alias _NT_TIB32 NT_TIB32; 2450 -alias _NT_TIB32* PNT_TIB32; 2451 - 2452 -struct _NT_TIB64 { 2453 - DWORD64 ExceptionList; 2454 - DWORD64 StackBase; 2455 - DWORD64 StackLimit; 2456 - DWORD64 SubSystemTib; 2457 -union { 2458 - DWORD64 FiberData; 2459 - DWORD Version; 2460 -} 2461 - 2462 - DWORD64 ArbitraryUserPointer; 2463 - DWORD64 Self; 2464 -} 2465 -alias _NT_TIB64 NT_TIB64; 2466 -alias _NT_TIB64* PNT_TIB64; 2467 - 2468 -// #if !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) 2469 -// #... 2470 -// #endif 2471 - 2472 -enum : uint { THREAD_BASE_PRIORITY_LOWRT = 15 } 2473 -enum : uint { THREAD_BASE_PRIORITY_MAX = 2 } 2474 -enum { THREAD_BASE_PRIORITY_MIN = -2 } 2475 -enum { THREAD_BASE_PRIORITY_IDLE = -15 } 2476 - 2477 -struct _QUOTA_LIMITS { 2478 - SIZE_T PagedPoolLimit; 2479 - SIZE_T NonPagedPoolLimit; 2480 - SIZE_T MinimumWorkingSetSize; 2481 - SIZE_T MaximumWorkingSetSize; 2482 - SIZE_T PagefileLimit; 2483 - LARGE_INTEGER TimeLimit; 2484 -} 2485 -alias _QUOTA_LIMITS QUOTA_LIMITS; 2486 - 2305 +alias SECURITY_INFORMATION* PSECURITY_INFORMATION; 2306 +alias WORD SECURITY_DESCRIPTOR_CONTROL; 2307 +alias SECURITY_DESCRIPTOR_CONTROL* PSECURITY_DESCRIPTOR_CONTROL; 2308 + 2309 +struct SECURITY_DESCRIPTOR { 2310 + BYTE Revision; 2311 + BYTE Sbz1; 2312 + SECURITY_DESCRIPTOR_CONTROL Control; 2313 + PSID Owner; 2314 + PSID Group; 2315 + PACL Sacl; 2316 + PACL Dacl; 2317 +} 2318 +alias SECURITY_DESCRIPTOR* PSECURITY_DESCRIPTOR, PISECURITY_DESCRIPTOR; 2319 + 2320 +enum TOKEN_INFORMATION_CLASS { 2321 + TokenUser = 1, 2322 + TokenGroups, 2323 + TokenPrivileges, 2324 + TokenOwner, 2325 + TokenPrimaryGroup, 2326 + TokenDefaultDacl, 2327 + TokenSource, 2328 + TokenType, 2329 + TokenImpersonationLevel, 2330 + TokenStatistics, 2331 + TokenRestrictedSids, 2332 + TokenSessionId, 2333 + TokenGroupsAndPrivileges, 2334 + TokenSessionReference, 2335 + TokenSandBoxInert, 2336 + TokenAuditPolicy, 2337 + TokenOrigin 2338 +} 2339 + 2340 +enum SID_NAME_USE { 2341 + SidTypeUser = 1, 2342 + SidTypeGroup, 2343 + SidTypeDomain, 2344 + SidTypeAlias, 2345 + SidTypeWellKnownGroup, 2346 + SidTypeDeletedAccount, 2347 + SidTypeInvalid, 2348 + SidTypeUnknown, 2349 + SidTypeComputer 2350 +} 2351 +alias SID_NAME_USE* PSID_NAME_USE; 2352 + 2353 +struct QUOTA_LIMITS { 2354 + SIZE_T PagedPoolLimit; 2355 + SIZE_T NonPagedPoolLimit; 2356 + SIZE_T MinimumWorkingSetSize; 2357 + SIZE_T MaximumWorkingSetSize; 2358 + SIZE_T PagefileLimit; 2359 + LARGE_INTEGER TimeLimit; 2360 +} 2487 2361 alias QUOTA_LIMITS* PQUOTA_LIMITS; 2488 2362 2489 -struct _IO_COUNTERS { 2490 - ULONGLONG ReadOperationCount; 2491 - ULONGLONG WriteOperationCount; 2492 - ULONGLONG OtherOperationCount; 2493 - ULONGLONG ReadTransferCount; 2494 - ULONGLONG WriteTransferCount; 2495 - ULONGLONG OtherTransferCount; 2363 +struct IO_COUNTERS { 2364 + ULONGLONG ReadOperationCount; 2365 + ULONGLONG WriteOperationCount; 2366 + ULONGLONG OtherOperationCount; 2367 + ULONGLONG ReadTransferCount; 2368 + ULONGLONG WriteTransferCount; 2369 + ULONGLONG OtherTransferCount; 2496 2370 } 2497 -alias _IO_COUNTERS IO_COUNTERS; 2498 - 2499 2371 alias IO_COUNTERS* PIO_COUNTERS; 2500 2372 2501 -struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { 2502 - LARGE_INTEGER TotalUserTime; 2503 - LARGE_INTEGER TotalKernelTime; 2504 - LARGE_INTEGER ThisPeriodTotalUserTime; 2505 - LARGE_INTEGER ThisPeriodTotalKernelTime; 2506 - DWORD TotalPageFaultCount; 2507 - DWORD TotalProcesses; 2508 - DWORD ActiveProcesses; 2509 - DWORD TotalTerminatedProcesses; 2510 -} 2511 -alias _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION JOBOBJECT_BASIC_ACCOUNTING_INFORMATION; 2512 -alias _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION; 2513 - 2514 -struct _JOBOBJECT_BASIC_LIMIT_INFORMATION { 2515 - LARGE_INTEGER PerProcessUserTimeLimit; 2516 - LARGE_INTEGER PerJobUserTimeLimit; 2517 - DWORD LimitFlags; 2518 - SIZE_T MinimumWorkingSetSize; 2519 - SIZE_T MaximumWorkingSetSize; 2520 - DWORD ActiveProcessLimit; 2521 - ULONG_PTR Affinity; 2522 - DWORD PriorityClass; 2523 - DWORD SchedulingClass; 2524 -} 2525 -alias _JOBOBJECT_BASIC_LIMIT_INFORMATION JOBOBJECT_BASIC_LIMIT_INFORMATION; 2526 -alias _JOBOBJECT_BASIC_LIMIT_INFORMATION* PJOBOBJECT_BASIC_LIMIT_INFORMATION; 2527 - 2528 -struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION { 2529 - JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation; 2530 - IO_COUNTERS IoInfo; 2531 - SIZE_T ProcessMemoryLimit; 2532 - SIZE_T JobMemoryLimit; 2533 - SIZE_T PeakProcessMemoryUsed; 2534 - SIZE_T PeakJobMemoryUsed; 2535 -} 2536 -alias _JOBOBJECT_EXTENDED_LIMIT_INFORMATION JOBOBJECT_EXTENDED_LIMIT_INFORMATION; 2537 -alias _JOBOBJECT_EXTENDED_LIMIT_INFORMATION* PJOBOBJECT_EXTENDED_LIMIT_INFORMATION; 2538 - 2539 -struct _JOBOBJECT_BASIC_PROCESS_ID_LIST { 2540 - DWORD NumberOfAssignedProcesses; 2541 - DWORD NumberOfProcessIdsInList; 2542 - ULONG_PTR ProcessIdList[1]; 2543 -} 2544 -alias _JOBOBJECT_BASIC_PROCESS_ID_LIST JOBOBJECT_BASIC_PROCESS_ID_LIST; 2545 -alias _JOBOBJECT_BASIC_PROCESS_ID_LIST* PJOBOBJECT_BASIC_PROCESS_ID_LIST; 2546 - 2547 -struct _JOBOBJECT_BASIC_UI_RESTRICTIONS { 2548 - DWORD UIRestrictionsClass; 2549 -} 2550 -alias _JOBOBJECT_BASIC_UI_RESTRICTIONS JOBOBJECT_BASIC_UI_RESTRICTIONS; 2551 -alias _JOBOBJECT_BASIC_UI_RESTRICTIONS* PJOBOBJECT_BASIC_UI_RESTRICTIONS; 2552 - 2553 -struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION { 2554 - DWORD SecurityLimitFlags ; 2555 - HANDLE JobToken ; 2556 - PTOKEN_GROUPS SidsToDisable ; 2557 - PTOKEN_PRIVILEGES PrivilegesToDelete ; 2558 - PTOKEN_GROUPS RestrictedSids ; 2559 -} 2560 -alias _JOBOBJECT_SECURITY_LIMIT_INFORMATION JOBOBJECT_SECURITY_LIMIT_INFORMATION; 2561 -alias _JOBOBJECT_SECURITY_LIMIT_INFORMATION* PJOBOBJECT_SECURITY_LIMIT_INFORMATION; 2562 - 2563 -struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION { 2564 - DWORD EndOfJobTimeAction; 2565 -} 2566 -alias _JOBOBJECT_END_OF_JOB_TIME_INFORMATION JOBOBJECT_END_OF_JOB_TIME_INFORMATION; 2567 -alias _JOBOBJECT_END_OF_JOB_TIME_INFORMATION* PJOBOBJECT_END_OF_JOB_TIME_INFORMATION; 2568 - 2569 -struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT { 2570 - PVOID CompletionKey; 2571 - HANDLE CompletionPort; 2572 -} 2573 -alias _JOBOBJECT_ASSOCIATE_COMPLETION_PORT JOBOBJECT_ASSOCIATE_COMPLETION_PORT; 2574 -alias _JOBOBJECT_ASSOCIATE_COMPLETION_PORT* PJOBOBJECT_ASSOCIATE_COMPLETION_PORT; 2575 - 2576 -struct _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { 2577 - JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo; 2578 - IO_COUNTERS IoInfo; 2579 -} 2580 -alias _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; 2581 -alias _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; 2582 - 2583 -struct _JOBOBJECT_JOBSET_INFORMATION { 2584 - DWORD MemberLevel; 2585 -} 2586 -alias _JOBOBJECT_JOBSET_INFORMATION JOBOBJECT_JOBSET_INFORMATION; 2587 -alias _JOBOBJECT_JOBSET_INFORMATION* PJOBOBJECT_JOBSET_INFORMATION; 2588 - 2589 -enum : uint { JOB_OBJECT_TERMINATE_AT_END_OF_JOB = 0 } 2590 -enum : uint { JOB_OBJECT_POST_AT_END_OF_JOB = 1 } 2591 - 2592 -enum : uint { JOB_OBJECT_MSG_END_OF_JOB_TIME = 1 } 2593 -enum : uint { JOB_OBJECT_MSG_END_OF_PROCESS_TIME = 2 } 2594 -enum : uint { JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT = 3 } 2595 -enum : uint { JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO = 4 } 2596 -enum : uint { JOB_OBJECT_MSG_NEW_PROCESS = 6 } 2597 -enum : uint { JOB_OBJECT_MSG_EXIT_PROCESS = 7 } 2598 -enum : uint { JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS = 8 } 2599 -enum : uint { JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT = 9 } 2600 -enum : uint { JOB_OBJECT_MSG_JOB_MEMORY_LIMIT = 10 } 2601 - 2602 -enum : uint { JOB_OBJECT_LIMIT_WORKINGSET = 0x00000001 } 2603 -enum : uint { JOB_OBJECT_LIMIT_PROCESS_TIME = 0x00000002 } 2604 -enum : uint { JOB_OBJECT_LIMIT_JOB_TIME = 0x00000004 } 2605 -enum : uint { JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x00000008 } 2606 -enum : uint { JOB_OBJECT_LIMIT_AFFINITY = 0x00000010 } 2607 -enum : uint { JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x00000020 } 2608 -enum : uint { JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x00000040 } 2609 -enum : uint { JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x00000080 } 2610 - 2611 -enum : uint { JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x00000100 } 2612 -enum : uint { JOB_OBJECT_LIMIT_JOB_MEMORY = 0x00000200 } 2613 -enum : uint { JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400 } 2614 -enum : uint { JOB_OBJECT_LIMIT_BREAKAWAY_OK = 0x00000800 } 2615 -enum : uint { JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 0x00001000 } 2616 -enum : uint { JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 0x00002000 } 2617 - 2618 -enum : uint { JOB_OBJECT_LIMIT_RESERVED2 = 0x00004000 } 2619 -enum : uint { JOB_OBJECT_LIMIT_RESERVED3 = 0x00008000 } 2620 -enum : uint { JOB_OBJECT_LIMIT_RESERVED4 = 0x00010000 } 2621 -enum : uint { JOB_OBJECT_LIMIT_RESERVED5 = 0x00020000 } 2622 -enum : uint { JOB_OBJECT_LIMIT_RESERVED6 = 0x00040000 } 2623 - 2624 -enum : uint { JOB_OBJECT_LIMIT_VALID_FLAGS = 0x0007ffff } 2625 - 2626 -enum : uint { JOB_OBJECT_BASIC_LIMIT_VALID_FLAGS = 0x000000ff } 2627 -enum : uint { JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS = 0x00003fff } 2628 -enum : uint { JOB_OBJECT_RESERVED_LIMIT_VALID_FLAGS = 0x0007ffff } 2629 - 2630 -enum : uint { JOB_OBJECT_UILIMIT_NONE = 0x00000000 } 2631 - 2632 -enum : uint { JOB_OBJECT_UILIMIT_HANDLES = 0x00000001 } 2633 -enum : uint { JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x00000002 } 2634 -enum : uint { JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x00000004 } 2635 -enum : uint { JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008 } 2636 -enum : uint { JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x00000010 } 2637 -enum : uint { JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x00000020 } 2638 -enum : uint { JOB_OBJECT_UILIMIT_DESKTOP = 0x00000040 } 2639 -enum : uint { JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x00000080 } 2640 - 2641 -enum : uint { JOB_OBJECT_UILIMIT_ALL = 0x000000FF } 2642 - 2643 -enum : uint { JOB_OBJECT_UI_VALID_FLAGS = 0x000000FF } 2644 - 2645 -enum : uint { JOB_OBJECT_SECURITY_NO_ADMIN = 0x00000001 } 2646 -enum : uint { JOB_OBJECT_SECURITY_RESTRICTED_TOKEN = 0x00000002 } 2647 -enum : uint { JOB_OBJECT_SECURITY_ONLY_TOKEN = 0x00000004 } 2648 -enum : uint { JOB_OBJECT_SECURITY_FILTER_TOKENS = 0x00000008 } 2649 - 2650 -enum : uint { JOB_OBJECT_SECURITY_VALID_FLAGS = 0x0000000f } 2651 - 2652 -alias int _JOBOBJECTINFOCLASS; 2653 -enum { 2654 - JobObjectBasicAccountingInformation = 1, 2655 - JobObjectBasicLimitInformation, 2656 - JobObjectBasicProcessIdList, 2657 - JobObjectBasicUIRestrictions, 2658 - JobObjectSecurityLimitInformation, 2659 - JobObjectEndOfJobTimeInformation, 2660 - JobObjectAssociateCompletionPortInformation, 2661 - JobObjectBasicAndIoAccountingInformation, 2662 - JobObjectExtendedLimitInformation, 2663 - JobObjectJobSetInformation, 2664 - MaxJobObjectInfoClass, 2665 -} 2666 -alias _JOBOBJECTINFOCLASS JOBOBJECTINFOCLASS; 2667 - 2668 -enum : uint { EVENT_MODIFY_STATE = 0x0002 } 2669 -enum : uint { EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 } 2670 -enum : uint { MUTANT_QUERY_STATE = 0x0001 } 2671 - 2672 -enum : uint { MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| MUTANT_QUERY_STATE } 2673 -enum : uint { SEMAPHORE_MODIFY_STATE = 0x0002 } 2674 -enum : uint { SEMAPHORE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 } 2675 - 2676 -enum : uint { TIMER_QUERY_STATE = 0x0001 } 2677 -enum : uint { TIMER_MODIFY_STATE = 0x0002 } 2678 - 2679 -enum : uint { TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| TIMER_QUERY_STATE|TIMER_MODIFY_STATE } 2680 - 2681 -enum : uint { TIME_ZONE_ID_UNKNOWN = 0 } 2682 -enum : uint { TIME_ZONE_ID_STANDARD = 1 } 2683 -enum : uint { TIME_ZONE_ID_DAYLIGHT = 2 } 2684 - 2685 -enum : uint { MAXIMUM_NUMA_NODES = 16 } 2686 - 2687 -struct _SYSTEM_NUMA_INFORMATION { 2688 - DWORD HighestNodeNumber; 2689 - DWORD Reserved; 2690 -union { 2691 - ULONGLONG ActiveProcessorsAffinityMask[MAXIMUM_NUMA_NODES]; 2692 - ULONGLONG AvailableMemory[MAXIMUM_NUMA_NODES]; 2693 -} 2694 - 2695 -} 2696 -alias _SYSTEM_NUMA_INFORMATION SYSTEM_NUMA_INFORMATION; 2697 -alias _SYSTEM_NUMA_INFORMATION* PSYSTEM_NUMA_INFORMATION; 2698 - 2699 -enum : uint { PROCESSOR_INTEL_386 = 386 } 2700 -enum : uint { PROCESSOR_INTEL_486 = 486 } 2701 -enum : uint { PROCESSOR_INTEL_PENTIUM = 586 } 2702 -enum : uint { PROCESSOR_INTEL_IA64 = 2200 } 2703 -enum : uint { PROCESSOR_MIPS_R4000 = 4000 } 2704 -enum : uint { PROCESSOR_ALPHA_21064 = 21064 } 2705 -enum : uint { PROCESSOR_PPC_601 = 601 } 2706 -enum : uint { PROCESSOR_PPC_603 = 603 } 2707 -enum : uint { PROCESSOR_PPC_604 = 604 } 2708 -enum : uint { PROCESSOR_PPC_620 = 620 } 2709 -enum : uint { PROCESSOR_HITACHI_SH3 = 10003 } 2710 -enum : uint { PROCESSOR_HITACHI_SH3E = 10004 } 2711 -enum : uint { PROCESSOR_HITACHI_SH4 = 10005 } 2712 -enum : uint { PROCESSOR_MOTOROLA_821 = 821 } 2713 -enum : uint { PROCESSOR_SHx_SH3 = 103 } 2714 -enum : uint { PROCESSOR_SHx_SH4 = 104 } 2715 -enum : uint { PROCESSOR_STRONGARM = 2577 } 2716 -enum : uint { PROCESSOR_ARM720 = 1824 } 2717 -enum : uint { PROCESSOR_ARM820 = 2080 } 2718 -enum : uint { PROCESSOR_ARM920 = 2336 } 2719 -enum : uint { PROCESSOR_ARM_7TDMI = 70001 } 2720 -enum : uint { PROCESSOR_OPTIL = 0x494f } 2721 - 2722 -enum : uint { PROCESSOR_ARCHITECTURE_INTEL = 0 } 2723 -enum : uint { PROCESSOR_ARCHITECTURE_MIPS = 1 } 2724 -enum : uint { PROCESSOR_ARCHITECTURE_ALPHA = 2 } 2725 -enum : uint { PROCESSOR_ARCHITECTURE_PPC = 3 } 2726 -enum : uint { PROCESSOR_ARCHITECTURE_SHX = 4 } 2727 -enum : uint { PROCESSOR_ARCHITECTURE_ARM = 5 } 2728 -enum : uint { PROCESSOR_ARCHITECTURE_IA64 = 6 } 2729 -enum : uint { PROCESSOR_ARCHITECTURE_ALPHA64 = 7 } 2730 -enum : uint { PROCESSOR_ARCHITECTURE_MSIL = 8 } 2731 -enum : uint { PROCESSOR_ARCHITECTURE_AMD64 = 9 } 2732 -enum : uint { PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 = 10 } 2733 - 2734 -enum : uint { PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF } 2735 - 2736 -enum : uint { PF_FLOATING_POINT_PRECISION_ERRATA = 0 } 2737 -enum : uint { PF_FLOATING_POINT_EMULATED = 1 } 2738 -enum : uint { PF_COMPARE_EXCHANGE_DOUBLE = 2 } 2739 -enum : uint { PF_MMX_INSTRUCTIONS_AVAILABLE = 3 } 2740 -enum : uint { PF_PPC_MOVEMEM_64BIT_OK = 4 } 2741 -enum : uint { PF_ALPHA_BYTE_INSTRUCTIONS = 5 } 2742 -enum : uint { PF_XMMI_INSTRUCTIONS_AVAILABLE = 6 } 2743 -enum : uint { PF_3DNOW_INSTRUCTIONS_AVAILABLE = 7 } 2744 -enum : uint { PF_RDTSC_INSTRUCTION_AVAILABLE = 8 } 2745 -enum : uint { PF_PAE_ENABLED = 9 } 2746 -enum : uint { PF_XMMI64_INSTRUCTIONS_AVAILABLE = 10 } 2747 - 2748 -struct _MEMORY_BASIC_INFORMATION { 2749 - PVOID BaseAddress; 2750 - PVOID AllocationBase; 2751 - DWORD AllocationProtect; 2752 - SIZE_T RegionSize; 2753 - DWORD State; 2754 - DWORD Protect; 2755 - DWORD Type; 2756 -} 2757 -alias _MEMORY_BASIC_INFORMATION MEMORY_BASIC_INFORMATION; 2758 -alias _MEMORY_BASIC_INFORMATION* PMEMORY_BASIC_INFORMATION; 2759 - 2760 -struct _MEMORY_BASIC_INFORMATION32 { 2761 - DWORD BaseAddress; 2762 - DWORD AllocationBase; 2763 - DWORD AllocationProtect; 2764 - DWORD RegionSize; 2765 - DWORD State; 2766 - DWORD Protect; 2767 - DWORD Type; 2768 -} 2769 -alias _MEMORY_BASIC_INFORMATION32 MEMORY_BASIC_INFORMATION32; 2770 -alias _MEMORY_BASIC_INFORMATION32* PMEMORY_BASIC_INFORMATION32; 2771 - 2772 -struct _MEMORY_BASIC_INFORMATION64 { 2773 - ULONGLONG BaseAddress; 2774 - ULONGLONG AllocationBase; 2775 - DWORD AllocationProtect; 2776 - DWORD __alignment1; 2777 - ULONGLONG RegionSize; 2778 - DWORD State; 2779 - DWORD Protect; 2780 - DWORD Type; 2781 - DWORD __alignment2; 2782 -} 2783 -alias _MEMORY_BASIC_INFORMATION64 MEMORY_BASIC_INFORMATION64; 2784 -alias _MEMORY_BASIC_INFORMATION64* PMEMORY_BASIC_INFORMATION64; 2785 - 2786 -enum : uint { SECTION_QUERY = 0x0001 } 2787 -enum : uint { SECTION_MAP_WRITE = 0x0002 } 2788 -enum : uint { SECTION_MAP_READ = 0x0004 } 2789 -enum : uint { SECTION_MAP_EXECUTE = 0x0008 } 2790 -enum : uint { SECTION_EXTEND_SIZE = 0x0010 } 2791 - 2792 -enum : uint { SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SECTION_QUERY| SECTION_MAP_WRITE | SECTION_MAP_READ | SECTION_MAP_EXECUTE | SECTION_EXTEND_SIZE } 2793 -enum : uint { PAGE_NOACCESS = 0x01 } 2794 -enum : uint { PAGE_READONLY = 0x02 } 2795 -enum : uint { PAGE_READWRITE = 0x04 } 2796 -enum : uint { PAGE_WRITECOPY = 0x08 } 2797 -enum : uint { PAGE_EXECUTE = 0x10 } 2798 -enum : uint { PAGE_EXECUTE_READ = 0x20 } 2799 -enum : uint { PAGE_EXECUTE_READWRITE = 0x40 } 2800 -enum : uint { PAGE_EXECUTE_WRITECOPY = 0x80 } 2801 -enum : uint { PAGE_GUARD = 0x100 } 2802 -enum : uint { PAGE_NOCACHE = 0x200 } 2803 -enum : uint { PAGE_WRITECOMBINE = 0x400 } 2804 -enum : uint { MEM_COMMIT = 0x1000 } 2805 -enum : uint { MEM_RESERVE = 0x2000 } 2806 -enum : uint { MEM_DECOMMIT = 0x4000 } 2807 -enum : uint { MEM_RELEASE = 0x8000 } 2808 -enum : uint { MEM_FREE = 0x10000 } 2809 -enum : uint { MEM_PRIVATE = 0x20000 } 2810 -enum : uint { MEM_MAPPED = 0x40000 } 2811 -enum : uint { MEM_RESET = 0x80000 } 2812 -enum : uint { MEM_TOP_DOWN = 0x100000 } 2813 -enum : uint { MEM_WRITE_WATCH = 0x200000 } 2814 -enum : uint { MEM_PHYSICAL = 0x400000 } 2815 -enum : uint { MEM_4MB_PAGES = 0x80000000 } 2816 -enum : uint { SEC_FILE = 0x800000 } 2817 -enum : uint { SEC_IMAGE = 0x1000000 } 2818 -enum : uint { SEC_RESERVE = 0x4000000 } 2819 -enum : uint { SEC_COMMIT = 0x8000000 } 2820 -enum : uint { SEC_NOCACHE = 0x10000000 } 2821 -alias SEC_IMAGE MEM_IMAGE; 2822 -enum : uint { WRITE_WATCH_FLAG_RESET = 0x01 } 2823 - 2824 -enum : uint { FILE_READ_DATA = 0x0001 } 2825 -enum : uint { FILE_LIST_DIRECTORY = 0x0001 } 2826 - 2827 -enum : uint { FILE_WRITE_DATA = 0x0002 } 2828 -enum : uint { FILE_ADD_FILE = 0x0002 } 2829 - 2830 -enum : uint { FILE_APPEND_DATA = 0x0004 } 2831 -enum : uint { FILE_ADD_SUBDIRECTORY = 0x0004 } 2832 -enum : uint { FILE_CREATE_PIPE_INSTANCE = 0x0004 } 2833 - 2834 -enum : uint { FILE_READ_EA = 0x0008 } 2835 - 2836 -enum : uint { FILE_WRITE_EA = 0x0010 } 2837 - 2838 -enum : uint { FILE_EXECUTE = 0x0020 } 2839 -enum : uint { FILE_TRAVERSE = 0x0020 } 2840 - 2841 -enum : uint { FILE_DELETE_CHILD = 0x0040 } 2842 - 2843 -enum : uint { FILE_READ_ATTRIBUTES = 0x0080 } 2844 - 2845 -enum : uint { FILE_WRITE_ATTRIBUTES = 0x0100 } 2846 - 2847 -enum : uint { FILE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF } 2848 - 2849 -enum : uint { FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE } 2850 - 2851 -enum : uint { FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE } 2852 - 2853 -enum : uint { FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE } 2854 - 2855 -enum : uint { FILE_SHARE_READ = 0x00000001 } 2856 -enum : uint { FILE_SHARE_WRITE = 0x00000002 } 2857 -enum : uint { FILE_SHARE_DELETE = 0x00000004 } 2858 -enum : uint { FILE_ATTRIBUTE_READONLY = 0x00000001 } 2859 -enum : uint { FILE_ATTRIBUTE_HIDDEN = 0x00000002 } 2860 -enum : uint { FILE_ATTRIBUTE_SYSTEM = 0x00000004 } 2861 -enum : uint { FILE_ATTRIBUTE_DIRECTORY = 0x00000010 } 2862 -enum : uint { FILE_ATTRIBUTE_ARCHIVE = 0x00000020 } 2863 -enum : uint { FILE_ATTRIBUTE_DEVICE = 0x00000040 } 2864 -enum : uint { FILE_ATTRIBUTE_NORMAL = 0x00000080 } 2865 -enum : uint { FILE_ATTRIBUTE_TEMPORARY = 0x00000100 } 2866 -enum : uint { FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200 } 2867 -enum : uint { FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 } 2868 -enum : uint { FILE_ATTRIBUTE_COMPRESSED = 0x00000800 } 2869 -enum : uint { FILE_ATTRIBUTE_OFFLINE = 0x00001000 } 2870 -enum : uint { FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000 } 2871 -enum : uint { FILE_ATTRIBUTE_ENCRYPTED = 0x00004000 } 2872 -enum : uint { FILE_NOTIFY_CHANGE_FILE_NAME = 0x00000001 } 2873 -enum : uint { FILE_NOTIFY_CHANGE_DIR_NAME = 0x00000002 } 2874 -enum : uint { FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x00000004 } 2875 -enum : uint { FILE_NOTIFY_CHANGE_SIZE = 0x00000008 } 2876 -enum : uint { FILE_NOTIFY_CHANGE_LAST_WRITE = 0x00000010 } 2877 -enum : uint { FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x00000020 } 2878 -enum : uint { FILE_NOTIFY_CHANGE_CREATION = 0x00000040 } 2879 -enum : uint { FILE_NOTIFY_CHANGE_SECURITY = 0x00000100 } 2880 -enum : uint { FILE_ACTION_ADDED = 0x00000001 } 2881 -enum : uint { FILE_ACTION_REMOVED = 0x00000002 } 2882 -enum : uint { FILE_ACTION_MODIFIED = 0x00000003 } 2883 -enum : uint { FILE_ACTION_RENAMED_OLD_NAME = 0x00000004 } 2884 -enum : uint { FILE_ACTION_RENAMED_NEW_NAME = 0x00000005 } 2885 -enum : DWORD { MAILSLOT_NO_MESSAGE = cast(DWORD)-1 } 2886 -enum : DWORD { MAILSLOT_WAIT_FOREVER = cast(DWORD)-1 } 2887 -enum : uint { FILE_CASE_SENSITIVE_SEARCH = 0x00000001 } 2888 -enum : uint { FILE_CASE_PRESERVED_NAMES = 0x00000002 } 2889 -enum : uint { FILE_UNICODE_ON_DISK = 0x00000004 } 2890 -enum : uint { FILE_PERSISTENT_ACLS = 0x00000008 } 2891 -enum : uint { FILE_FILE_COMPRESSION = 0x00000010 } 2892 -enum : uint { FILE_VOLUME_QUOTAS = 0x00000020 } 2893 -enum : uint { FILE_SUPPORTS_SPARSE_FILES = 0x00000040 } 2894 -enum : uint { FILE_SUPPORTS_REPARSE_POINTS = 0x00000080 } 2895 -enum : uint { FILE_SUPPORTS_REMOTE_STORAGE = 0x00000100 } 2896 -enum : uint { FILE_VOLUME_IS_COMPRESSED = 0x00008000 } 2897 -enum : uint { FILE_SUPPORTS_OBJECT_IDS = 0x00010000 } 2898 -enum : uint { FILE_SUPPORTS_ENCRYPTION = 0x00020000 } 2899 -enum : uint { FILE_NAMED_STREAMS = 0x00040000 } 2900 -enum : uint { FILE_READ_ONLY_VOLUME = 0x00080000 } 2901 - 2902 -struct _FILE_NOTIFY_INFORMATION { 2903 - DWORD NextEntryOffset; 2904 - DWORD Action; 2905 - DWORD FileNameLength; 2906 - WCHAR FileName[1]; 2907 -} 2908 -alias _FILE_NOTIFY_INFORMATION FILE_NOTIFY_INFORMATION; 2909 -alias _FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION; 2910 - 2911 -union _FILE_SEGMENT_ELEMENT { 2912 - PVOID64 Buffer; 2913 - ULONGLONG Alignment; 2914 -} 2915 -alias _FILE_SEGMENT_ELEMENT FILE_SEGMENT_ELEMENT; 2916 -alias _FILE_SEGMENT_ELEMENT* PFILE_SEGMENT_ELEMENT; 2917 - 2918 -struct _REPARSE_GUID_DATA_BUFFER { 2919 - DWORD ReparseTag; 2920 - WORD ReparseDataLength; 2921 - WORD Reserved; 2922 - GUID ReparseGuid; 2923 -struct { 2924 - BYTE DataBuffer[1]; 2925 -} 2926 - 2927 -} 2928 -alias _REPARSE_GUID_DATA_BUFFER REPARSE_GUID_DATA_BUFFER; 2929 -alias _REPARSE_GUID_DATA_BUFFER* PREPARSE_GUID_DATA_BUFFER; 2930 - 2931 -// #define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer) 2932 - 2933 -enum : uint { MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024 } 2934 - 2935 -enum : uint { IO_REPARSE_TAG_RESERVED_ZERO = 0 } 2936 -enum : uint { IO_REPARSE_TAG_RESERVED_ONE = 1 } 2937 - 2938 -alias IO_REPARSE_TAG_RESERVED_ONE IO_REPARSE_TAG_RESERVED_RANGE; 2939 - 2940 -// #define IsReparseTagMicrosoft(_tag) ( ((_tag) & 0x80000000) ) 2941 - 2942 -// #define IsReparseTagNameSurrogate(_tag) ( ((_tag) & 0x20000000) ) 2943 - 2944 -enum : uint { IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003 } 2945 -enum : uint { IO_REPARSE_TAG_HSM = 0xC0000004 } 2946 -enum : uint { IO_REPARSE_TAG_SIS = 0x80000007 } 2947 -enum : uint { IO_REPARSE_TAG_FILTER_MANAGER = 0x8000000B } 2948 -enum : uint { IO_COMPLETION_MODIFY_STATE = 0x0002 } 2949 -enum : uint { IO_COMPLETION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 } 2950 -enum : uint { DUPLICATE_CLOSE_SOURCE = 0x00000001 } 2951 -enum : uint { DUPLICATE_SAME_ACCESS = 0x00000002 } 2952 - 2953 -alias int _SYSTEM_POWER_STATE; 2954 -enum { 2955 - PowerSystemUnspecified = 0, 2956 - PowerSystemWorking = 1, 2957 - PowerSystemSleeping1 = 2, 2958 - PowerSystemSleeping2 = 3, 2959 - PowerSystemSleeping3 = 4, 2960 - PowerSystemHibernate = 5, 2961 - PowerSystemShutdown = 6, 2962 - PowerSystemMaximum = 7, 2963 -} 2964 -alias _SYSTEM_POWER_STATE SYSTEM_POWER_STATE; 2965 -alias _SYSTEM_POWER_STATE* PSYSTEM_POWER_STATE; 2966 - 2967 -enum : uint { POWER_SYSTEM_MAXIMUM = 7 } 2968 - 2969 -enum _4 { 2970 - PowerActionNone = 0, 2971 - PowerActionReserved, 2972 - PowerActionSleep, 2973 - PowerActionHibernate, 2974 - PowerActionShutdown, 2975 - PowerActionShutdownReset, 2976 - PowerActionShutdownOff, 2977 - PowerActionWarmEject, 2978 -} 2979 -alias _4 POWER_ACTION; 2980 -alias _4* PPOWER_ACTION; 2981 - 2982 -alias int _DEVICE_POWER_STATE; 2983 -enum { 2984 - PowerDeviceUnspecified = 0, 2985 - PowerDeviceD0, 2986 - PowerDeviceD1, 2987 - PowerDeviceD2, 2988 - PowerDeviceD3, 2989 - PowerDeviceMaximum, 2990 -} 2991 -alias _DEVICE_POWER_STATE DEVICE_POWER_STATE; 2992 -alias _DEVICE_POWER_STATE* PDEVICE_POWER_STATE; 2993 - 2994 -enum : DWORD { ES_SYSTEM_REQUIRED = 0x00000001 } 2995 -enum : DWORD { ES_DISPLAY_REQUIRED = 0x00000002 } 2996 -enum : DWORD { ES_USER_PRESENT = 0x00000004 } 2997 -enum : DWORD { ES_CONTINUOUS = 0x80000000 } 2998 - 2999 -alias DWORD EXECUTION_STATE; 3000 - 3001 -enum _5 { 3002 - LT_DONT_CARE, 3003 - LT_LOWEST_LATENCY, 3004 -} 3005 -alias _5 LATENCY_TIME; 3006 - 3007 -enum : uint { PDCAP_D0_SUPPORTED = 0x00000001 } 3008 -enum : uint { PDCAP_D1_SUPPORTED = 0x00000002 } 3009 -enum : uint { PDCAP_D2_SUPPORTED = 0x00000004 } 3010 -enum : uint { PDCAP_D3_SUPPORTED = 0x00000008 } 3011 -enum : uint { PDCAP_WAKE_FROM_D0_SUPPORTED = 0x00000010 } 3012 -enum : uint { PDCAP_WAKE_FROM_D1_SUPPORTED = 0x00000020 } 3013 -enum : uint { PDCAP_WAKE_FROM_D2_SUPPORTED = 0x00000040 } 3014 -enum : uint { PDCAP_WAKE_FROM_D3_SUPPORTED = 0x00000080 } 3015 -enum : uint { PDCAP_WARM_EJECT_SUPPORTED = 0x00000100 } 3016 - 3017 -struct CM_Power_Data_s { 3018 - DWORD PD_Size; 3019 - DEVICE_POWER_STATE PD_MostRecentPowerState; 3020 - DWORD PD_Capabilities; 3021 - DWORD PD_D1Latency; 3022 - DWORD PD_D2Latency; 3023 - DWORD PD_D3Latency; 3024 - DEVICE_POWER_STATE PD_PowerStateMapping[POWER_SYSTEM_MAXIMUM]; 3025 - SYSTEM_POWER_STATE PD_DeepestSystemWake; 3026 -} 3027 -alias CM_Power_Data_s CM_POWER_DATA; 3028 -alias CM_Power_Data_s* PCM_POWER_DATA; 3029 - 3030 -enum _6 { 3031 - SystemPowerPolicyAc, 3032 - SystemPowerPolicyDc, 3033 - VerifySystemPolicyAc, 3034 - VerifySystemPolicyDc, 3035 - SystemPowerCapabilities, 3036 - SystemBatteryState, 3037 - SystemPowerStateHandler, 3038 - ProcessorStateHandler, 3039 - SystemPowerPolicyCurrent, 3040 - AdministratorPowerPolicy, 3041 - SystemReserveHiberFile, 3042 - ProcessorInformation, 3043 - SystemPowerInformation, 3044 - ProcessorStateHandler2, 3045 - LastWakeTime, 3046 - LastSleepTime, 3047 - SystemExecutionState, 3048 - SystemPowerStateNotifyHandler, 3049 - ProcessorPowerPolicyAc, 3050 - ProcessorPowerPolicyDc, 3051 - VerifyProcessorPowerPolicyAc, 3052 - VerifyProcessorPowerPolicyDc, 3053 - ProcessorPowerPolicyCurrent, 3054 -} 3055 -alias _6 POWER_INFORMATION_LEVEL; 3056 - 3057 -struct _7 { 3058 - DWORD Granularity; 3059 - DWORD Capacity; 3060 -} 3061 -alias _7 BATTERY_REPORTING_SCALE; 3062 -alias _7* PBATTERY_REPORTING_SCALE; 3063 - 3064 -struct _8 { 3065 - POWER_ACTION Action; 3066 - DWORD Flags; 3067 - DWORD EventCode; 3068 -} 3069 -alias _8 POWER_ACTION_POLICY; 3070 -alias _8* PPOWER_ACTION_POLICY; 3071 - 3072 -enum : uint { POWER_ACTION_QUERY_ALLOWED = 0x00000001 } 3073 -enum : uint { POWER_ACTION_UI_ALLOWED = 0x00000002 } 3074 -enum : uint { POWER_ACTION_OVERRIDE_APPS = 0x00000004 } 3075 -enum : uint { POWER_ACTION_LIGHTEST_FIRST = 0x10000000 } 3076 -enum : uint { POWER_ACTION_LOCK_CONSOLE = 0x20000000 } 3077 -enum : uint { POWER_ACTION_DISABLE_WAKES = 0x40000000 } 3078 -enum : uint { POWER_ACTION_CRITICAL = 0x80000000 } 3079 - 3080 -enum : uint { POWER_LEVEL_USER_NOTIFY_TEXT = 0x00000001 } 3081 -enum : uint { POWER_LEVEL_USER_NOTIFY_SOUND = 0x00000002 } 3082 -enum : uint { POWER_LEVEL_USER_NOTIFY_EXEC = 0x00000004 } 3083 -enum : uint { POWER_USER_NOTIFY_BUTTON = 0x00000008 } 3084 -enum : uint { POWER_USER_NOTIFY_SHUTDOWN = 0x00000010 } 3085 -enum : uint { POWER_FORCE_TRIGGER_RESET = 0x80000000 } 3086 - 3087 -struct _9 { 3088 - BOOLEAN Enable; 3089 - BYTE Spare[3]; 3090 - DWORD BatteryLevel; 3091 - POWER_ACTION_POLICY PowerPolicy; 3092 - SYSTEM_POWER_STATE MinSystemState; 3093 -} 3094 -alias _9 SYSTEM_POWER_LEVEL; 3095 -alias _9* PSYSTEM_POWER_LEVEL; 3096 - 3097 -enum : uint { NUM_DISCHARGE_POLICIES = 4 } 3098 -enum : uint { DISCHARGE_POLICY_CRITICAL = 0 } 3099 -enum : uint { DISCHARGE_POLICY_LOW = 1 } 3100 - 3101 -enum : uint { PO_THROTTLE_NONE = 0 } 3102 -enum : uint { PO_THROTTLE_CONSTANT = 1 } 3103 -enum : uint { PO_THROTTLE_DEGRADE = 2 } 3104 -enum : uint { PO_THROTTLE_ADAPTIVE = 3 } 3105 -enum : uint { PO_THROTTLE_MAXIMUM = 4 } 3106 - 3107 -struct _SYSTEM_POWER_POLICY { 3108 - DWORD Revision; 3109 - 3110 - POWER_ACTION_POLICY PowerButton; 3111 - POWER_ACTION_POLICY SleepButton; 3112 - POWER_ACTION_POLICY LidClose; 3113 - SYSTEM_POWER_STATE LidOpenWake; 3114 - DWORD Reserved; 3115 - POWER_ACTION_POLICY Idle; 3116 - DWORD IdleTimeout; 3117 - BYTE IdleSensitivity; 3118 - 3119 - BYTE DynamicThrottle; 3120 - BYTE Spare2[2]; 3121 - SYSTEM_POWER_STATE MinSleep; 3122 - SYSTEM_POWER_STATE MaxSleep; 3123 - SYSTEM_POWER_STATE ReducedLatencySleep; 3124 - DWORD WinLogonFlags; 3125 - DWORD Spare3; 3126 - DWORD DozeS4Timeout; 3127 - DWORD BroadcastCapacityResolution; 3128 - SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES]; 3129 - DWORD VideoTimeout; 3130 - BOOLEAN VideoDimDisplay; 3131 - DWORD VideoReserved[3]; 3132 - DWORD SpindownTimeout; 3133 - BOOLEAN OptimizeForPower; 3134 - BYTE FanThrottleTolerance; 3135 - BYTE ForcedThrottle; 3136 - BYTE MinThrottle; 3137 - POWER_ACTION_POLICY OverThrottled; 3138 -} 3139 -alias _SYSTEM_POWER_POLICY SYSTEM_POWER_POLICY; 3140 -alias _SYSTEM_POWER_POLICY* PSYSTEM_POWER_POLICY; 3141 - 3142 -struct _PROCESSOR_POWER_POLICY_INFO { 3143 - 3144 - DWORD TimeCheck; 3145 - DWORD DemoteLimit; 3146 - DWORD PromoteLimit; 3147 - 3148 - BYTE DemotePercent; 3149 - BYTE PromotePercent; 3150 - BYTE Spare[2]; 3151 -// DWORD AllowDemotion:1; 3152 -// DWORD AllowPromotion:1; 3153 -// DWORD Reserved:30; 3154 - 3155 -} 3156 -alias _PROCESSOR_POWER_POLICY_INFO PROCESSOR_POWER_POLICY_INFO; 3157 -alias _PROCESSOR_POWER_POLICY_INFO* PPROCESSOR_POWER_POLICY_INFO; 3158 - 3159 -struct _PROCESSOR_POWER_POLICY { 3160 - DWORD Revision; 3161 - 3162 - BYTE DynamicThrottle; 3163 - BYTE Spare[3]; 3164 - DWORD Reserved; 3165 - 3166 - DWORD PolicyCount; 3167 - PROCESSOR_POWER_POLICY_INFO Policy[3]; 3168 -} 3169 -alias _PROCESSOR_POWER_POLICY PROCESSOR_POWER_POLICY; 3170 -alias _PROCESSOR_POWER_POLICY* PPROCESSOR_POWER_POLICY; 3171 - 3172 -struct _ADMINISTRATOR_POWER_POLICY { 3173 - 3174 - SYSTEM_POWER_STATE MinSleep; 3175 - SYSTEM_POWER_STATE MaxSleep; 3176 - DWORD MinVideoTimeout; 3177 - DWORD MaxVideoTimeout; 3178 - DWORD MinSpindownTimeout; 3179 - DWORD MaxSpindownTimeout; 3180 -} 3181 -alias _ADMINISTRATOR_POWER_POLICY ADMINISTRATOR_POWER_POLICY; 3182 -alias _ADMINISTRATOR_POWER_POLICY* PADMINISTRATOR_POWER_POLICY; 3183 - 3184 -struct _10 { 3185 - 3186 - BOOLEAN PowerButtonPresent; 3187 - BOOLEAN SleepButtonPresent; 3188 - BOOLEAN LidPresent; 3189 - BOOLEAN SystemS1; 3190 - BOOLEAN SystemS2; 3191 - BOOLEAN SystemS3; 3192 - BOOLEAN SystemS4; 3193 - BOOLEAN SystemS5; 3194 - BOOLEAN HiberFilePresent; 3195 - BOOLEAN FullWake; 3196 - BOOLEAN VideoDimPresent; 3197 - BOOLEAN ApmPresent; 3198 - BOOLEAN UpsPresent; 3199 - BOOLEAN ThermalControl; 3200 - BOOLEAN ProcessorThrottle; 3201 - BYTE ProcessorMinThrottle; 3202 - BYTE ProcessorMaxThrottle; 3203 - BYTE spare2[4]; 3204 - BOOLEAN DiskSpinDown; 3205 - BYTE spare3[8]; 3206 - BOOLEAN SystemBatteriesPresent; 3207 - BOOLEAN BatteriesAreShortTerm; 3208 - BATTERY_REPORTING_SCALE BatteryScale[3]; 3209 - SYSTEM_POWER_STATE AcOnLineWake; 3210 - SYSTEM_POWER_STATE SoftLidWake; 3211 - SYSTEM_POWER_STATE RtcWake; 3212 - SYSTEM_POWER_STATE MinDeviceWakeState; 3213 - SYSTEM_POWER_STATE DefaultLowLatencyWake; 3214 -} 3215 -alias _10 SYSTEM_POWER_CAPABILITIES; 3216 -alias _10* PSYSTEM_POWER_CAPABILITIES; 3217 - 3218 -struct _11 { 3219 - BOOLEAN AcOnLine; 3220 - BOOLEAN BatteryPresent; 3221 - BOOLEAN Charging; 3222 - BOOLEAN Discharging; 3223 - BOOLEAN Spare1[4]; 3224 - DWORD MaxCapacity; 3225 - DWORD RemainingCapacity; 3226 - DWORD Rate; 3227 - DWORD EstimatedTime; 3228 - DWORD DefaultAlert1; 3229 - DWORD DefaultAlert2; 3230 -} 3231 -alias _11 SYSTEM_BATTERY_STATE; 3232 -alias _11* PSYSTEM_BATTERY_STATE; 3233 - 3234 -// #ifndef _MAC 2373 +struct FILE_NOTIFY_INFORMATION { 2374 + DWORD NextEntryOffset; 2375 + DWORD Action; 2376 + DWORD FileNameLength; 2377 + WCHAR _FileName; 2378 + 2379 + WCHAR* FileName() { return &_FileName; } 2380 +} 2381 +alias FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION; 2382 + 2383 +struct TAPE_ERASE { 2384 + DWORD Type; 2385 + BOOLEAN Immediate; 2386 +} 2387 +alias TAPE_ERASE* PTAPE_ERASE; 2388 + 2389 +struct TAPE_GET_DRIVE_PARAMETERS { 2390 + BOOLEAN ECC; 2391 + BOOLEAN Compression; 2392 + BOOLEAN DataPadding; 2393 + BOOLEAN ReportSetmarks; 2394 + DWORD DefaultBlockSize; 2395 + DWORD MaximumBlockSize; 2396 + DWORD MinimumBlockSize; 2397 + DWORD MaximumPartitionCount; 2398 + DWORD FeaturesLow; 2399 + DWORD FeaturesHigh; 2400 + DWORD EOTWarningZoneSize; 2401 +} 2402 +alias TAPE_GET_DRIVE_PARAMETERS* PTAPE_GET_DRIVE_PARAMETERS; 2403 + 2404 +struct TAPE_GET_MEDIA_PARAMETERS { 2405 + LARGE_INTEGER Capacity; 2406 + LARGE_INTEGER Remaining; 2407 + DWORD BlockSize; 2408 + DWORD PartitionCount; 2409 + BOOLEAN WriteProtected; 2410 +} 2411 +alias TAPE_GET_MEDIA_PARAMETERS* PTAPE_GET_MEDIA_PARAMETERS; 2412 + 2413 +struct TAPE_GET_POSITION { 2414 + ULONG Type; 2415 + ULONG Partition; 2416 + ULONG OffsetLow; 2417 + ULONG OffsetHigh; 2418 +} 2419 +alias TAPE_GET_POSITION* PTAPE_GET_POSITION; 2420 + 2421 +struct TAPE_PREPARE { 2422 + DWORD Operation; 2423 + BOOLEAN Immediate; 2424 +} 2425 +alias TAPE_PREPARE* PTAPE_PREPARE; 2426 + 2427 +struct TAPE_SET_DRIVE_PARAMETERS { 2428 + BOOLEAN ECC; 2429 + BOOLEAN Compression; 2430 + BOOLEAN DataPadding; 2431 + BOOLEAN ReportSetmarks; 2432 + ULONG EOTWarningZoneSize; 2433 +} 2434 +alias TAPE_SET_DRIVE_PARAMETERS* PTAPE_SET_DRIVE_PARAMETERS; 2435 + 2436 +struct TAPE_SET_MEDIA_PARAMETERS { 2437 + ULONG BlockSize; 2438 +} 2439 +alias TAPE_SET_MEDIA_PARAMETERS* PTAPE_SET_MEDIA_PARAMETERS; 2440 + 2441 +struct TAPE_SET_POSITION { 2442 + DWORD Method; 2443 + DWORD Partition; 2444 + LARGE_INTEGER Offset; 2445 + BOOLEAN Immediate; 2446 +} 2447 +alias TAPE_SET_POSITION* PTAPE_SET_POSITION; 2448 + 2449 +struct TAPE_WRITE_MARKS { 2450 + DWORD Type; 2451 + DWORD Count; 2452 + BOOLEAN Immediate; 2453 +} 2454 +alias TAPE_WRITE_MARKS* PTAPE_WRITE_MARKS; 2455 + 2456 +struct TAPE_CREATE_PARTITION { 2457 + DWORD Method; 2458 + DWORD Count; 2459 + DWORD Size; 2460 +} 2461 +alias TAPE_CREATE_PARTITION* PTAPE_CREATE_PARTITION; 2462 + 2463 +struct MEMORY_BASIC_INFORMATION { 2464 + PVOID BaseAddress; 2465 + PVOID AllocationBase; 2466 + DWORD AllocationProtect; 2467 + DWORD RegionSize; 2468 + DWORD State; 2469 + DWORD Protect; 2470 + DWORD Type; 2471 +} 2472 +alias MEMORY_BASIC_INFORMATION* PMEMORY_BASIC_INFORMATION; 2473 + 2474 +struct MESSAGE_RESOURCE_ENTRY { 2475 + WORD Length; 2476 + WORD Flags; 2477 + BYTE _Text; 2478 + 2479 + BYTE* Text() { return &_Text; } 2480 +} 2481 +alias MESSAGE_RESOURCE_ENTRY* PMESSAGE_RESOURCE_ENTRY; 2482 + 2483 +struct MESSAGE_RESOURCE_BLOCK { 2484 + DWORD LowId; 2485 + DWORD HighId; 2486 + DWORD OffsetToEntries; 2487 +} 2488 +alias MESSAGE_RESOURCE_BLOCK* PMESSAGE_RESOURCE_BLOCK; 2489 + 2490 +struct MESSAGE_RESOURCE_DATA { 2491 + DWORD NumberOfBlocks; 2492 + MESSAGE_RESOURCE_BLOCK _Blocks; 2493 + 2494 + MESSAGE_RESOURCE_BLOCK* Blocks() { return &_Blocks; } 2495 +} 2496 +alias MESSAGE_RESOURCE_DATA* PMESSAGE_RESOURCE_DATA; 2497 + 2498 +struct LIST_ENTRY { 2499 + LIST_ENTRY* Flink; 2500 + LIST_ENTRY* Blink; 2501 +} 2502 +alias LIST_ENTRY* PLIST_ENTRY; 2503 + 2504 +struct SINGLE_LIST_ENTRY { 2505 + SINGLE_LIST_ENTRY* Next; 2506 +} 2507 +alias SINGLE_LIST_ENTRY SLIST_ENTRY; 2508 +alias SINGLE_LIST_ENTRY* PSINGLE_LIST_ENTRY, PSLIST_ENTRY; 2509 + 2510 +union SLIST_HEADER { 2511 + ULONGLONG Alignment; 2512 + struct { 2513 + SLIST_ENTRY Next; 2514 + WORD Depth; 2515 + WORD Sequence; 2516 + } 2517 +} 2518 +alias SLIST_HEADER* PSLIST_HEADER; 2519 + 2520 +struct RTL_CRITICAL_SECTION_DEBUG { 2521 + WORD Type; 2522 + WORD CreatorBackTraceIndex; 2523 + RTL_CRITICAL_SECTION* CriticalSection; 2524 + LIST_ENTRY ProcessLocksList; 2525 + DWORD EntryCount; 2526 + DWORD ContentionCount; 2527 + DWORD[2] Spare; 2528 +} 2529 +alias RTL_CRITICAL_SECTION_DEBUG* PRTL_CRITICAL_SECTION_DEBUG; 2530 + 2531 +struct RTL_CRITICAL_SECTION { 2532 + PRTL_CRITICAL_SECTION_DEBUG DebugInfo; 2533 + LONG LockCount; 2534 + LONG RecursionCount; 2535 + HANDLE OwningThread; 2536 + HANDLE LockSemaphore; 2537 + DWORD Reserved; 2538 +} 2539 +alias RTL_CRITICAL_SECTION* PRTL_CRITICAL_SECTION; 2540 + 2541 +struct EVENTLOGRECORD { 2542 + DWORD Length; 2543 + DWORD Reserved; 2544 + DWORD RecordNumber; 2545 + DWORD TimeGenerated; 2546 + DWORD TimeWritten; 2547 + DWORD EventID; 2548 + WORD EventType; 2549 + WORD NumStrings; 2550 + WORD EventCategory; 2551 + WORD ReservedFlags; 2552 + DWORD ClosingRecordNumber; 2553 + DWORD StringOffset; 2554 + DWORD UserSidLength; 2555 + DWORD UserSidOffset; 2556 + DWORD DataLength; 2557 + DWORD DataOffset; 2558 +} 2559 +alias EVENTLOGRECORD* PEVENTLOGRECORD; 2560 + 2561 +struct OSVERSIONINFOA { 2562 + DWORD dwOSVersionInfoSize; 2563 + DWORD dwMajorVersion; 2564 + DWORD dwMinorVersion; 2565 + DWORD dwBuildNumber; 2566 + DWORD dwPlatformId; 2567 + CHAR[128] szCSDVersion; 2568 +} 2569 +alias OSVERSIONINFOA* POSVERSIONINFOA, LPOSVERSIONINFOA; 2570 + 2571 +struct OSVERSIONINFOW { 2572 + DWORD dwOSVersionInfoSize; 2573 + DWORD dwMajorVersion; 2574 + DWORD dwMinorVersion; 2575 + DWORD dwBuildNumber; 2576 + DWORD dwPlatformId; 2577 + WCHAR[128] szCSDVersion; 2578 +} 2579 +alias OSVERSIONINFOW* POSVERSIONINFOW, LPOSVERSIONINFOW; 2580 + 2581 +struct OSVERSIONINFOEXA { 2582 + DWORD dwOSVersionInfoSize; 2583 + DWORD dwMajorVersion; 2584 + DWORD dwMinorVersion; 2585 + DWORD dwBuildNumber; 2586 + DWORD dwPlatformId; 2587 + CHAR[128] szCSDVersion; 2588 + WORD wServicePackMajor; 2589 + WORD wServicePackMinor; 2590 + WORD wSuiteMask; 2591 + BYTE wProductType; 2592 + BYTE wReserved; 2593 +} 2594 +alias OSVERSIONINFOEXA* POSVERSIONINFOEXA, LPOSVERSIONINFOEXA; 2595 + 2596 +struct OSVERSIONINFOEXW { 2597 + DWORD dwOSVersionInfoSize; 2598 + DWORD dwMajorVersion; 2599 + DWORD dwMinorVersion; 2600 + DWORD dwBuildNumber; 2601 + DWORD dwPlatformId; 2602 + WCHAR[128] szCSDVersion; 2603 + WORD wServicePackMajor; 2604 + WORD wServicePackMinor; 2605 + WORD wSuiteMask; 2606 + BYTE wProductType; 2607 + BYTE wReserved; 2608 +} 2609 +alias OSVERSIONINFOEXW* POSVERSIONINFOEXW, LPOSVERSIONINFOEXW; 2610 + 2611 +align(2) struct IMAGE_VXD_HEADER { 2612 + WORD e32_magic; 2613 + BYTE e32_border; 2614 + BYTE e32_worder; 2615 + DWORD e32_level; 2616 + WORD e32_cpu; 2617 + WORD e32_os; 2618 + DWORD e32_ver; 2619 + DWORD e32_mflags; 2620 + DWORD e32_mpages; 2621 + DWORD e32_startobj; 2622 + DWORD e32_eip; 2623 + DWORD e32_stackobj; 2624 + DWORD e32_esp; 2625 + DWORD e32_pagesize; 2626 + DWORD e32_lastpagesize; 2627 + DWORD e32_fixupsize; 2628 + DWORD e32_fixupsum; 2629 + DWORD e32_ldrsize; 2630 + DWORD e32_ldrsum; 2631 + DWORD e32_objtab; 2632 + DWORD e32_objcnt; 2633 + DWORD e32_objmap; 2634 + DWORD e32_itermap; 2635 + DWORD e32_rsrctab; 2636 + DWORD e32_rsrccnt; 2637 + DWORD e32_restab; 2638 + DWORD e32_enttab; 2639 + DWORD e32_dirtab; 2640 + DWORD e32_dircnt; 2641 + DWORD e32_fpagetab; 2642 + DWORD e32_frectab; 2643 + DWORD e32_impmod; 2644 + DWORD e32_impmodcnt; 2645 + DWORD e32_impproc; 2646 + DWORD e32_pagesum; 2647 + DWORD e32_datapage; 2648 + DWORD e32_preload; 2649 + DWORD e32_nrestab; 2650 + DWORD e32_cbnrestab; 2651 + DWORD e32_nressum; 2652 + DWORD e32_autodata; 2653 + DWORD e32_debuginfo; 2654 + DWORD e32_debuglen; 2655 + DWORD e32_instpreload; 2656 + DWORD e32_instdemand; 2657 + DWORD e32_heapsize; 2658 + BYTE[12] e32_res3; 2659 + DWORD e32_winresoff; 2660 + DWORD e32_winreslen; 2661 + WORD e32_devid; 2662 + WORD e32_ddkver; 2663 +} 2664 +alias IMAGE_VXD_HEADER* PIMAGE_VXD_HEADER; 2665 + 2666 +align(4): 2667 +struct IMAGE_FILE_HEADER { 2668 + WORD Machine; 2669 + WORD NumberOfSections; 2670 + DWORD TimeDateStamp; 2671 + DWORD PointerToSymbolTable; 2672 + DWORD NumberOfSymbols; 2673 + WORD SizeOfOptionalHeader; 2674 + WORD Characteristics; 2675 +} 2676 +alias IMAGE_FILE_HEADER* PIMAGE_FILE_HEADER; 2677 +// const IMAGE_SIZEOF_FILE_HEADER = IMAGE_FILE_HEADER.sizeof; 2678 + 2679 +struct IMAGE_DATA_DIRECTORY { 2680 + DWORD VirtualAddress; 2681 + DWORD Size; 2682 +} 2683 +alias IMAGE_DATA_DIRECTORY* PIMAGE_DATA_DIRECTORY; 2684 + 2685 +struct IMAGE_OPTIONAL_HEADER32 { 2686 + WORD Magic; 2687 + BYTE MajorLinkerVersion; 2688 + BYTE MinorLinkerVersion; 2689 + DWORD SizeOfCode; 2690 + DWORD SizeOfInitializedData; 2691 + DWORD SizeOfUninitializedData; 2692 + DWORD AddressOfEntryPoint; 2693 + DWORD BaseOfCode; 2694 + DWORD BaseOfData; 2695 + DWORD ImageBase; 2696 + DWORD SectionAlignment; 2697 + DWORD FileAlignment; 2698 + WORD MajorOperatingSystemVersion; 2699 + WORD MinorOperatingSystemVersion; 2700 + WORD MajorImageVersion; 2701 + WORD MinorImageVersion; 2702 + WORD MajorSubsystemVersion; 2703 + WORD MinorSubsystemVersion; 2704 + DWORD Win32VersionValue; 2705 + DWORD SizeOfImage; 2706 + DWORD SizeOfHeaders; 2707 + DWORD CheckSum; 2708 + WORD Subsystem; 2709 + WORD DllCharacteristics; 2710 + DWORD SizeOfStackReserve; 2711 + DWORD SizeOfStackCommit; 2712 + DWORD SizeOfHeapReserve; 2713 + DWORD SizeOfHeapCommit; 2714 + DWORD LoaderFlags; 2715 + DWORD NumberOfRvaAndSizes; 2716 + IMAGE_DATA_DIRECTORY[IMAGE_NUMBEROF_DIRECTORY_ENTRIES] DataDirectory; 2717 +} 2718 +alias IMAGE_OPTIONAL_HEADER32* PIMAGE_OPTIONAL_HEADER32; 2719 + 2720 +struct IMAGE_OPTIONAL_HEADER64 { 2721 + WORD Magic; 2722 + BYTE MajorLinkerVersion; 2723 + BYTE MinorLinkerVersion; 2724 + DWORD SizeOfCode; 2725 + DWORD SizeOfInitializedData; 2726 + DWORD SizeOfUninitializedData; 2727 + DWORD AddressOfEntryPoint; 2728 + DWORD BaseOfCode; 2729 + ULONGLONG ImageBase; 2730 + DWORD SectionAlignment; 2731 + DWORD FileAlignment; 2732 + WORD MajorOperatingSystemVersion; 2733 + WORD MinorOperatingSystemVersion; 2734 + WORD MajorImageVersion; 2735 + WORD MinorImageVersion; 2736 + WORD MajorSubsystemVersion; 2737 + WORD MinorSubsystemVersion; 2738 + DWORD Win32VersionValue; 2739 + DWORD SizeOfImage; 2740 + DWORD SizeOfHeaders; 2741 + DWORD CheckSum; 2742 + WORD Subsystem; 2743 + WORD DllCharacteristics; 2744 + ULONGLONG SizeOfStackReserve; 2745 + ULONGLONG SizeOfStackCommit; 2746 + ULONGLONG SizeOfHeapReserve; 2747 + ULONGLONG SizeOfHeapCommit; 2748 + DWORD LoaderFlags; 2749 + DWORD NumberOfRvaAndSizes; 2750 + IMAGE_DATA_DIRECTORY[IMAGE_NUMBEROF_DIRECTORY_ENTRIES] DataDirectory; 2751 +} 2752 +alias IMAGE_OPTIONAL_HEADER64* PIMAGE_OPTIONAL_HEADER64; 2753 + 2754 +struct IMAGE_ROM_OPTIONAL_HEADER { 2755 + WORD Magic; 2756 + BYTE MajorLinkerVersion; 2757 + BYTE MinorLinkerVersion; 2758 + DWORD SizeOfCode; 2759 + DWORD SizeOfInitializedData; 2760 + DWORD SizeOfUninitializedData; 2761 + DWORD AddressOfEntryPoint; 2762 + DWORD BaseOfCode; 2763 + DWORD BaseOfData; 2764 + DWORD BaseOfBss; 2765 + DWORD GprMask; 2766 + DWORD[4] CprMask; 2767 + DWORD GpValue; 2768 +} 2769 +alias IMAGE_ROM_OPTIONAL_HEADER* PIMAGE_ROM_OPTIONAL_HEADER; 2770 + 2771 +align(2): 2772 +struct IMAGE_DOS_HEADER { 2773 + WORD e_magic; 2774 + WORD e_cblp; 2775 + WORD e_cp; 2776 + WORD e_crlc; 2777 + WORD e_cparhdr; 2778 + WORD e_minalloc; 2779 + WORD e_maxalloc; 2780 + WORD e_ss; 2781 + WORD e_sp; 2782 + WORD e_csum; 2783 + WORD e_ip; 2784 + WORD e_cs; 2785 + WORD e_lfarlc; 2786 + WORD e_ovno; 2787 + WORD[4] e_res; 2788 + WORD e_oemid; 2789 + WORD e_oeminfo; 2790 + WORD[10] e_res2; 2791 + LONG e_lfanew; 2792 +} 2793 +alias IMAGE_DOS_HEADER* PIMAGE_DOS_HEADER; 2794 + 2795 +struct IMAGE_OS2_HEADER { 2796 + WORD ne_magic; 2797 + CHAR ne_ver; 2798 + CHAR ne_rev; 2799 + WORD ne_enttab; 2800 + WORD ne_cbenttab; 2801 + LONG ne_crc; 2802 + WORD ne_flags; 2803 + WORD ne_autodata; 2804 + WORD ne_heap; 2805 + WORD ne_stack; 2806 + LONG ne_csip; 2807 + LONG ne_sssp; 2808 + WORD ne_cseg; 2809 + WORD ne_cmod; 2810 + WORD ne_cbnrestab; 2811 + WORD ne_segtab; 2812 + WORD ne_rsrctab; 2813 + WORD ne_restab; 2814 + WORD ne_modtab; 2815 + WORD ne_imptab; 2816 + LONG ne_nrestab; 2817 + WORD ne_cmovent; 2818 + WORD ne_align; 2819 + WORD ne_cres; 2820 + BYTE ne_exetyp; 2821 + BYTE ne_flagsothers; 2822 + WORD ne_pretthunks; 2823 + WORD ne_psegrefbytes; 2824 + WORD ne_swaparea; 2825 + WORD ne_expver; 2826 +} 2827 +alias IMAGE_OS2_HEADER* PIMAGE_OS2_HEADER; 2828 + 2829 +align(4) struct IMAGE_NT_HEADERS32 { 2830 + DWORD Signature; 2831 + IMAGE_FILE_HEADER FileHeader; 2832 + IMAGE_OPTIONAL_HEADER OptionalHeader; 2833 +} 2834 +alias IMAGE_NT_HEADERS32* PIMAGE_NT_HEADERS32; 2835 + 2836 +align(4) struct IMAGE_NT_HEADERS64 { 2837 + DWORD Signature; 2838 + IMAGE_FILE_HEADER FileHeader; 2839 + IMAGE_OPTIONAL_HEADER OptionalHeader; 2840 +} 2841 +alias IMAGE_NT_HEADERS64* PIMAGE_NT_HEADERS64; 2842 + 2843 +struct IMAGE_ROM_HEADERS { 2844 + IMAGE_FILE_HEADER FileHeader; 2845 + IMAGE_ROM_OPTIONAL_HEADER OptionalHeader; 2846 +} 2847 +alias IMAGE_ROM_HEADERS* PIMAGE_ROM_HEADERS; 2848 + 2849 +struct IMAGE_SECTION_HEADER { 2850 + BYTE[IMAGE_SIZEOF_SHORT_NAME] Name; 2851 + union _Misc { 2852 + DWORD PhysicalAddress; 2853 + DWORD VirtualSize; 2854 + } 2855 + _Misc Misc; 2856 + DWORD VirtualAddress; 2857 + DWORD SizeOfRawData; 2858 + DWORD PointerToRawData; 2859 + DWORD PointerToRelocations; 2860 + DWORD PointerToLinenumbers; 2861 + WORD NumberOfRelocations; 2862 + WORD NumberOfLinenumbers; 2863 + DWORD Characteristics; 2864 +} 2865 +alias IMAGE_SECTION_HEADER* PIMAGE_SECTION_HEADER; 2866 + 2867 +struct IMAGE_SYMBOL { 2868 + union _N { 2869 + BYTE[8] ShortName; 2870 + struct Name { 2871 + DWORD Short; 2872 + DWORD Long; 2873 + } 2874 + PBYTE[2] LongName; 2875 + } 2876 + _N N; 2877 + DWORD Value; 2878 + SHORT SectionNumber; 2879 + WORD Type; 2880 + BYTE StorageClass; 2881 + BYTE NumberOfAuxSymbols; 2882 +} 2883 +alias IMAGE_SYMBOL* PIMAGE_SYMBOL; 2884 + 2885 +union IMAGE_AUX_SYMBOL { 2886 + struct _Sym { 2887 + DWORD TagIndex; 2888 + union _Misc { 2889 + struct _LnSz { 2890 + WORD Linenumber; 2891 + WORD Size; 2892 + } 2893 + _LnSz LnSz; 2894 + DWORD TotalSize; 2895 + } 2896 + _Misc Misc; 2897 + union _FcnAry { 2898 + struct _Function { 2899 + DWORD PointerToLinenumber; 2900 + DWORD PointerToNextFunction; 2901 + } 2902 + _Function Function; 2903 + struct _Array { 2904 + WORD[4] Dimension; 2905 + } 2906 + _Array Array; 2907 + } 2908 + _FcnAry FcnAry; 2909 + WORD TvIndex; 2910 + } 2911 + _Sym Sym; 2912 + struct _File { 2913 + BYTE[IMAGE_SIZEOF_SYMBOL] Name; 2914 + } 2915 + _File File; 2916 + struct _Section { 2917 + DWORD Length; 2918 + WORD NumberOfRelocations; 2919 + WORD NumberOfLinenumbers; 2920 + DWORD CheckSum; 2921 + SHORT Number; 2922 + BYTE Selection; 2923 + } 2924 + _Section Section; 2925 +} 2926 +alias IMAGE_AUX_SYMBOL* PIMAGE_AUX_SYMBOL; 2927 + 2928 +struct IMAGE_COFF_SYMBOLS_HEADER { 2929 + DWORD NumberOfSymbols; 2930 + DWORD LvaToFirstSymbol; 2931 + DWORD NumberOfLinenumbers; 2932 + DWORD LvaToFirstLinenumber; 2933 + DWORD RvaToFirstByteOfCode; 2934 + DWORD RvaToLastByteOfCode; 2935 + DWORD RvaToFirstByteOfData; 2936 + DWORD RvaToLastByteOfData; 2937 +} 2938 +alias IMAGE_COFF_SYMBOLS_HEADER* PIMAGE_COFF_SYMBOLS_HEADER; 2939 + 2940 +struct IMAGE_RELOCATION { 2941 + union { 2942 + DWORD VirtualAddress; 2943 + DWORD RelocCount; 2944 + } 2945 + DWORD SymbolTableIndex; 2946 + WORD Type; 2947 +} 2948 +alias IMAGE_RELOCATION* PIMAGE_RELOCATION; 2949 + 2950 +align(4) struct IMAGE_BASE_RELOCATION { 2951 + DWORD VirtualAddress; 2952 + DWORD SizeOfBlock; 2953 +} 2954 +alias IMAGE_BASE_RELOCATION* PIMAGE_BASE_RELOCATION; 2955 + 2956 +align(2) struct IMAGE_LINENUMBER { 2957 + union _Type { 2958 + DWORD SymbolTableIndex; 2959 + DWORD VirtualAddress; 2960 + } 2961 + _Type Type; 2962 + WORD Linenumber; 2963 +} 2964 +alias IMAGE_LINENUMBER* PIMAGE_LINENUMBER; 3235 2965 3236 2966 align(4): 3237 - 3238 -enum : uint { IMAGE_DOS_SIGNATURE = 0x5A4D } 3239 -enum : uint { IMAGE_OS2_SIGNATURE = 0x454E } 3240 -enum : uint { IMAGE_OS2_SIGNATURE_LE = 0x454C } 3241 -enum : uint { IMAGE_VXD_SIGNATURE = 0x454C } 3242 -enum : uint { IMAGE_NT_SIGNATURE = 0x00004550 } 3243 - 3244 -align(2): 3245 - 3246 -// #else 3247 - 3248 -// #... 3249 - 3250 -// #... 3251 -// #... 3252 -// #... 3253 -// #... 3254 -// #endif 3255 - 3256 -struct _IMAGE_DOS_HEADER { 3257 - WORD e_magic; 3258 - WORD e_cblp; 3259 - WORD e_cp; 3260 - WORD e_crlc; 3261 - WORD e_cparhdr; 3262 - WORD e_minalloc; 3263 - WORD e_maxalloc; 3264 - WORD e_ss; 3265 - WORD e_sp; 3266 - WORD e_csum; 3267 - WORD e_ip; 3268 - WORD e_cs; 3269 - WORD e_lfarlc; 3270 - WORD e_ovno; 3271 - WORD e_res[4]; 3272 - WORD e_oemid; 3273 - WORD e_oeminfo; 3274 - WORD e_res2[10]; 3275 - LONG e_lfanew; 3276 -} 3277 -alias _IMAGE_DOS_HEADER IMAGE_DOS_HEADER; 3278 -alias _IMAGE_DOS_HEADER* PIMAGE_DOS_HEADER; 3279 - 3280 -struct _IMAGE_OS2_HEADER { 3281 - WORD ne_magic; 3282 - CHAR ne_ver; 3283 - CHAR ne_rev; 3284 - WORD ne_enttab; 3285 - WORD ne_cbenttab; 3286 - LONG ne_crc; 3287 - WORD ne_flags; 3288 - WORD ne_autodata; 3289 - WORD ne_heap; 3290 - WORD ne_stack; 3291 - LONG ne_csip; 3292 - LONG ne_sssp; 3293 - WORD ne_cseg; 3294 - WORD ne_cmod; 3295 - WORD ne_cbnrestab; 3296 - WORD ne_segtab; 3297 - WORD ne_rsrctab; 3298 - WORD ne_restab; 3299 - WORD ne_modtab; 3300 - WORD ne_imptab; 3301 - LONG ne_nrestab; 3302 - WORD ne_cmovent; 3303 - WORD ne_align; 3304 - WORD ne_cres; 3305 - BYTE ne_exetyp; 3306 - BYTE ne_flagsothers; 3307 - WORD ne_pretthunks; 3308 - WORD ne_psegrefbytes; 3309 - WORD ne_swaparea; 3310 - WORD ne_expver; 3311 -} 3312 -alias _IMAGE_OS2_HEADER IMAGE_OS2_HEADER; 3313 -alias _IMAGE_OS2_HEADER* PIMAGE_OS2_HEADER; 3314 - 3315 -struct _IMAGE_VXD_HEADER { 3316 - WORD e32_magic; 3317 - BYTE e32_border; 3318 - BYTE e32_worder; 3319 - DWORD e32_level; 3320 - WORD e32_cpu; 3321 - WORD e32_os; 3322 - DWORD e32_ver; 3323 - DWORD e32_mflags; 3324 - DWORD e32_mpages; 3325 - DWORD e32_startobj; 3326 - DWORD e32_eip; 3327 - DWORD e32_stackobj; 3328 - DWORD e32_esp; 3329 - DWORD e32_pagesize; 3330 - DWORD e32_lastpagesize; 3331 - DWORD e32_fixupsize; 3332 - DWORD e32_fixupsum; 3333 - DWORD e32_ldrsize; 3334 - DWORD e32_ldrsum; 3335 - DWORD e32_objtab; 3336 - DWORD e32_objcnt; 3337 - DWORD e32_objmap; 3338 - DWORD e32_itermap; 3339 - DWORD e32_rsrctab; 3340 - DWORD e32_rsrccnt; 3341 - DWORD e32_restab; 3342 - DWORD e32_enttab; 3343 - DWORD e32_dirtab; 3344 - DWORD e32_dircnt; 3345 - DWORD e32_fpagetab; 3346 - DWORD e32_frectab; 3347 - DWORD e32_impmod; 3348 - DWORD e32_impmodcnt; 3349 - DWORD e32_impproc; 3350 - DWORD e32_pagesum; 3351 - DWORD e32_datapage; 3352 - DWORD e32_preload; 3353 - DWORD e32_nrestab; 3354 - DWORD e32_cbnrestab; 3355 - DWORD e32_nressum; 3356 - DWORD e32_autodata; 3357 - DWORD e32_debuginfo; 3358 - DWORD e32_debuglen; 3359 - DWORD e32_instpreload; 3360 - DWORD e32_instdemand; 3361 - DWORD e32_heapsize; 3362 - BYTE e32_res3[12]; 3363 - DWORD e32_winresoff; 3364 - DWORD e32_winreslen; 3365 - WORD e32_devid; 3366 - WORD e32_ddkver; 3367 -} 3368 -alias _IMAGE_VXD_HEADER IMAGE_VXD_HEADER; 3369 -alias _IMAGE_VXD_HEADER* PIMAGE_VXD_HEADER; 3370 - 3371 -// #ifndef _MAC 2967 +struct IMAGE_ARCHIVE_MEMBER_HEADER { 2968 + BYTE[16] Name; 2969 + BYTE[12] Date; 2970 + BYTE[6] UserID; 2971 + BYTE[6] GroupID; 2972 + BYTE[8] Mode; 2973 + BYTE[10] Size; 2974 + BYTE[2] EndHeader; 2975 +} 2976 +alias IMAGE_ARCHIVE_MEMBER_HEADER* PIMAGE_ARCHIVE_MEMBER_HEADER; 2977 + 2978 +struct IMAGE_EXPORT_DIRECTORY { 2979 + DWORD Characteristics; 2980 + DWORD TimeDateStamp; 2981 + WORD MajorVersion; 2982 + WORD MinorVersion; 2983 + DWORD Name; 2984 + DWORD Base; 2985 + DWORD NumberOfFunctions; 2986 + DWORD NumberOfNames; 2987 + DWORD AddressOfFunctions; 2988 + DWORD AddressOfNames; 2989 + DWORD AddressOfNameOrdinals; 2990 +} 2991 +alias IMAGE_EXPORT_DIRECTORY* PIMAGE_EXPORT_DIRECTORY; 2992 + 2993 +struct IMAGE_IMPORT_BY_NAME { 2994 + WORD Hint; 2995 + BYTE _Name; 2996 + 2997 + BYTE* Name() { 2998 + return &_Name; 2999 + } 3000 +} 3001 +alias IMAGE_IMPORT_BY_NAME* PIMAGE_IMPORT_BY_NAME; 3002 + 3003 +struct IMAGE_THUNK_DATA32 { 3004 + union _u1 { 3005 + DWORD ForwarderString; 3006 + DWORD Function; 3007 + DWORD Ordinal; 3008 + DWORD AddressOfData; 3009 + } 3010 + _u1 u1; 3011 +} 3012 +alias IMAGE_THUNK_DATA32* PIMAGE_THUNK_DATA32; 3013 + 3014 +struct IMAGE_THUNK_DATA64 { 3015 + union _u1 { 3016 + ULONGLONG ForwarderString; 3017 + ULONGLONG Function; 3018 + ULONGLONG Ordinal; 3019 + ULONGLONG AddressOfData; 3020 + } 3021 + _u1 u1; 3022 +} 3023 +alias IMAGE_THUNK_DATA64* PIMAGE_THUNK_DATA64; 3024 + 3025 +struct IMAGE_IMPORT_DESCRIPTOR { 3026 + union { 3027 + DWORD Characteristics; 3028 + DWORD OriginalFirstThunk; 3029 + } 3030 + DWORD TimeDateStamp; 3031 + DWORD ForwarderChain; 3032 + DWORD Name; 3033 + DWORD FirstThunk; 3034 +} 3035 +alias IMAGE_IMPORT_DESCRIPTOR* PIMAGE_IMPORT_DESCRIPTOR; 3036 + 3037 +struct IMAGE_BOUND_IMPORT_DESCRIPTOR { 3038 + DWORD TimeDateStamp; 3039 + WORD OffsetModuleName; 3040 + WORD NumberOfModuleForwarderRefs; 3041 +} 3042 +alias IMAGE_BOUND_IMPORT_DESCRIPTOR* PIMAGE_BOUND_IMPORT_DESCRIPTOR; 3043 + 3044 +struct IMAGE_BOUND_FORWARDER_REF { 3045 + DWORD TimeDateStamp; 3046 + WORD OffsetModuleName; 3047 + WORD Reserved; 3048 +} 3049 +alias IMAGE_BOUND_FORWARDER_REF* PIMAGE_BOUND_FORWARDER_REF; 3050 + 3051 +struct IMAGE_TLS_DIRECTORY32 { 3052 + DWORD StartAddressOfRawData; 3053 + DWORD EndAddressOfRawData; 3054 + DWORD AddressOfIndex; 3055 + DWORD AddressOfCallBacks; 3056 + DWORD SizeOfZeroFill; 3057 + DWORD Characteristics; 3058 +} 3059 +alias IMAGE_TLS_DIRECTORY32* PIMAGE_TLS_DIRECTORY32; 3060 + 3061 +struct IMAGE_TLS_DIRECTORY64 { 3062 + ULONGLONG StartAddressOfRawData; 3063 + ULONGLONG EndAddressOfRawData; 3064 + ULONGLONG AddressOfIndex; 3065 + ULONGLONG AddressOfCallBacks; 3066 + DWORD SizeOfZeroFill; 3067 + DWORD Characteristics; 3068 +} 3069 +alias IMAGE_TLS_DIRECTORY64* PIMAGE_TLS_DIRECTORY64; 3070 + 3071 +struct IMAGE_RESOURCE_DIRECTORY { 3072 + DWORD Characteristics; 3073 + DWORD TimeDateStamp; 3074 + WORD MajorVersion; 3075 + WORD MinorVersion; 3076 + WORD NumberOfNamedEntries; 3077 + WORD NumberOfIdEntries; 3078 +} 3079 +alias IMAGE_RESOURCE_DIRECTORY* PIMAGE_RESOURCE_DIRECTORY; 3080 + 3081 +struct IMAGE_RESOURCE_DIRECTORY_ENTRY { 3082 + union { 3083 + /+struct { 3084 + DWORD NameOffset:31; 3085 + DWORD NameIsString:1; 3086 + }+/ 3087 + DWORD Name; 3088 + WORD Id; 3089 + } 3090 + DWORD OffsetToData; 3091 + /+struct { 3092 + DWORD OffsetToDirectory:31; 3093 + DWORD DataIsDirectory:1; 3094 + }+/ 3095 + 3096 + uint NameOffset() { return Name & 0x7FFFFFFF; } 3097 + bool NameIsString() { return cast(bool)(Name & 0x80000000); } 3098 + uint OffsetToDirectory() { return OffsetToData & 0x7FFFFFFF; } 3099 + bool DataIsDirectory() { return cast(bool)(OffsetToData & 0x80000000); } 3100 + 3101 + uint NameOffset(uint n) { 3102 + Name = (Name & 0x80000000) | (n & 0x7FFFFFFF); 3103 + return n & 0x7FFFFFFF; 3104 + } 3105 + 3106 + bool NameIsString(bool n) { 3107 + Name = (Name & 0x7FFFFFFF) | (n << 31); return n; 3108 + } 3109 + 3110 + uint OffsetToDirectory(uint o) { 3111 + OffsetToData = (OffsetToData & 0x80000000) | (o & 0x7FFFFFFF); 3112 + return o & 0x7FFFFFFF; 3113 + } 3114 + 3115 + bool DataIsDirectory(bool d) { 3116 + OffsetToData = (OffsetToData & 0x7FFFFFFF) | (d << 31); return d; 3117 + } 3118 +} 3119 +alias IMAGE_RESOURCE_DIRECTORY_ENTRY* PIMAGE_RESOURCE_DIRECTORY_ENTRY; 3120 + 3121 +struct IMAGE_RESOURCE_DIRECTORY_STRING { 3122 + WORD Length; 3123 + CHAR _NameString; 3124 + 3125 + CHAR* NameString() { return &_NameString; } 3126 +} 3127 +alias IMAGE_RESOURCE_DIRECTORY_STRING* PIMAGE_RESOURCE_DIRECTORY_STRING; 3128 + 3129 +struct IMAGE_RESOURCE_DIR_STRING_U { 3130 + WORD Length; 3131 + WCHAR _NameString; 3132 + 3133 + WCHAR* NameString() { return &_NameString; } 3134 +} 3135 +alias IMAGE_RESOURCE_DIR_STRING_U* PIMAGE_RESOURCE_DIR_STRING_U; 3136 + 3137 +struct IMAGE_RESOURCE_DATA_ENTRY { 3138 + DWORD OffsetToData; 3139 + DWORD Size; 3140 + DWORD CodePage; 3141 + DWORD Reserved; 3142 +} 3143 +alias IMAGE_RESOURCE_DATA_ENTRY* PIMAGE_RESOURCE_DATA_ENTRY; 3144 + 3145 +struct IMAGE_LOAD_CONFIG_DIRECTORY { 3146 + DWORD Characteristics; 3147 + DWORD TimeDateStamp; 3148 + WORD MajorVersion; 3149 + WORD MinorVersion; 3150 + DWORD GlobalFlagsClear; 3151 + DWORD GlobalFlagsSet; 3152 + DWORD CriticalSectionDefaultTimeout; 3153 + DWORD DeCommitFreeBlockThreshold; 3154 + DWORD DeCommitTotalFreeThreshold; 3155 + PVOID LockPrefixTable; 3156 + DWORD MaximumAllocationSize; 3157 + DWORD VirtualMemoryThreshold; 3158 + DWORD ProcessHeapFlags; 3159 + DWORD[4] Reserved; 3160 +} 3161 +alias IMAGE_LOAD_CONFIG_DIRECTORY* PIMAGE_LOAD_CONFIG_DIRECTORY; 3162 + 3163 +struct IMAGE_LOAD_CONFIG_DIRECTORY64 { 3164 + DWORD Characteristics; 3165 + DWORD TimeDateStamp; 3166 + WORD MajorVersion; 3167 + WORD MinorVersion; 3168 + DWORD GlobalFlagsClear; 3169 + DWORD GlobalFlagsSet; 3170 + DWORD CriticalSectionDefaultTimeout; 3171 + ULONGLONG DeCommitFreeBlockThreshold; 3172 + ULONGLONG DeCommitTotalFreeThreshold; 3173 + ULONGLONG LockPrefixTable; 3174 + ULONGLONG MaximumAllocationSize; 3175 + ULONGLONG VirtualMemoryThreshold; 3176 + ULONGLONG ProcessAffinityMask; 3177 + DWORD ProcessHeapFlags; 3178 + WORD CSDFlags; 3179 + WORD Reserved1; 3180 + ULONGLONG EditList; 3181 + DWORD[2] Reserved; 3182 +} 3183 +alias IMAGE_LOAD_CONFIG_DIRECTORY64* PIMAGE_LOAD_CONFIG_DIRECTORY64; 3184 + 3185 +struct IMAGE_RUNTIME_FUNCTION_ENTRY { 3186 + DWORD BeginAddress; 3187 + DWORD EndAddress; 3188 + PVOID ExceptionHandler; 3189 + PVOID HandlerData; 3190 + DWORD PrologEndAddress; 3191 +} 3192 +alias IMAGE_RUNTIME_FUNCTION_ENTRY* PIMAGE_RUNTIME_FUNCTION_ENTRY; 3193 + 3194 +struct IMAGE_CE_RUNTIME_FUNCTION_ENTRY { 3195 + uint FuncStart; 3196 + union { 3197 + ubyte PrologLen; 3198 + uint _bf; 3199 + } 3200 +/+ 3201 + unsigned int FuncLen:22; 3202 + unsigned int ThirtyTwoBit:1; 3203 + unsigned int ExceptionFlag:1; 3204 ++/ 3205 + uint FuncLen() { return (_bf >> 8) & 0x3FFFFF; } 3206 + bool ThirtyTwoBit() { return cast(bool)(_bf & 0x40000000); } 3207 + bool ExceptionFlag() { return cast(bool)(_bf & 0x80000000); } 3208 + 3209 + uint FuncLen(uint f) { 3210 + _bf = (_bf & ~0x3FFFFF00) | ((f & 0x3FFFFF) << 8); return f & 0x3FFFFF; 3211 + } 3212 + 3213 + bool ThirtyTwoBit(bool t) { 3214 + _bf = (_bf & ~0x40000000) | (t << 30); return t; 3215 + } 3216 + 3217 + bool ExceptionFlag(bool e) { 3218 + _bf = (_bf & ~0x80000000) | (e << 31); return e; 3219 + } 3220 +} 3221 +alias IMAGE_CE_RUNTIME_FUNCTION_ENTRY* PIMAGE_CE_RUNTIME_FUNCTION_ENTRY; 3222 + 3223 +struct IMAGE_DEBUG_DIRECTORY { 3224 + DWORD Characteristics; 3225 + DWORD TimeDateStamp; 3226 + WORD MajorVersion; 3227 + WORD MinorVersion; 3228 + DWORD Type; 3229 + DWORD SizeOfData; 3230 + DWORD AddressOfRawData; 3231 + DWORD PointerToRawData; 3232 +} 3233 +alias IMAGE_DEBUG_DIRECTORY* PIMAGE_DEBUG_DIRECTORY; 3234 + 3235 +struct FPO_DATA { 3236 + DWORD ulOffStart; 3237 + DWORD cbProcSize; 3238 + DWORD cdwLocals; 3239 + WORD cdwParams; 3240 + ubyte cbProlog; 3241 + ubyte _bf; 3242 +/+ 3243 + WORD cbRegs:3; 3244 + WORD fHasSEH:1; 3245 + WORD fUseBP:1; 3246 + WORD reserved:1; 3247 + WORD cbFrame:2; 3248 ++/ 3249 + ubyte cbRegs() { return cast(ubyte)(_bf & 0x07); } 3250 + bool fHasSEH() { return cast(bool)(_bf & 0x08); } 3251 + bool fUseBP() { return cast(bool)(_bf & 0x10); } 3252 + bool reserved() { return cast(bool)(_bf & 0x20); } 3253 + ubyte cbFrame() { return cast(ubyte)(_bf >> 6); } 3254 + 3255 + ubyte cbRegs(ubyte c) { 3256 + _bf = cast(ubyte) ((_bf & ~0x07) | (c & 0x07)); 3257 + return cast(ubyte)(c & 0x07); 3258 + } 3259 + 3260 + bool fHasSEH(bool f) { _bf = cast(ubyte)((_bf & ~0x08) | (f << 3)); return f; } 3261 + bool fUseBP(bool f) { _bf = cast(ubyte)((_bf & ~0x10) | (f << 4)); return f; } 3262 + bool reserved(bool r) { _bf = cast(ubyte)((_bf & ~0x20) | (r << 5)); return r; } 3263 + 3264 + ubyte cbFrame(ubyte c) { 3265 + _bf = cast(ubyte) ((_bf & ~0xC0) | ((c & 0x03) << 6)); 3266 + return cast(ubyte)(c & 0x03); 3267 + } 3268 +} 3269 +alias FPO_DATA* PFPO_DATA; 3270 + 3271 +struct IMAGE_DEBUG_MISC { 3272 + DWORD DataType; 3273 + DWORD Length; 3274 + BOOLEAN Unicode; 3275 + BYTE[3] Reserved; 3276 + BYTE _Data; 3277 + 3278 + BYTE* Data() { return &_Data; } 3279 +} 3280 +alias IMAGE_DEBUG_MISC* PIMAGE_DEBUG_MISC; 3281 + 3282 +struct IMAGE_FUNCTION_ENTRY { 3283 + DWORD StartingAddress; 3284 + DWORD EndingAddress; 3285 + DWORD EndOfPrologue; 3286 +} 3287 +alias IMAGE_FUNCTION_ENTRY* PIMAGE_FUNCTION_ENTRY; 3288 + 3289 +struct IMAGE_FUNCTION_ENTRY64 { 3290 + ULONGLONG StartingAddress; 3291 + ULONGLONG EndingAddress; 3292 + union { 3293 + ULONGLONG EndOfPrologue; 3294 + ULONGLONG UnwindInfoAddress; 3295 + } 3296 +} 3297 +alias IMAGE_FUNCTION_ENTRY64* PIMAGE_FUNCTION_ENTRY64; 3298 + 3299 +struct IMAGE_SEPARATE_DEBUG_HEADER { 3300 + WORD Signature; 3301 + WORD Flags; 3302 + WORD Machine; 3303 + WORD Characteristics; 3304 + DWORD TimeDateStamp; 3305 + DWORD CheckSum; 3306 + DWORD ImageBase; 3307 + DWORD SizeOfImage; 3308 + DWORD NumberOfSections; 3309 + DWORD ExportedNamesSize; 3310 + DWORD DebugDirectorySize; 3311 + DWORD SectionAlignment; 3312 + DWORD[2] Reserved; 3313 +} 3314 +alias IMAGE_SEPARATE_DEBUG_HEADER* PIMAGE_SEPARATE_DEBUG_HEADER; 3315 + 3316 +enum SERVICE_NODE_TYPE { 3317 + DriverType = SERVICE_KERNEL_DRIVER, 3318 + FileSystemType = SERVICE_FILE_SYSTEM_DRIVER, 3319 + Win32ServiceOwnProcess = SERVICE_WIN32_OWN_PROCESS, 3320 + Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS, 3321 + AdapterType = SERVICE_ADAPTER, 3322 + RecognizerType = SERVICE_RECOGNIZER_DRIVER 3323 +} 3324 + 3325 +enum SERVICE_LOAD_TYPE { 3326 + BootLoad = SERVICE_BOOT_START, 3327 + SystemLoad = SERVICE_SYSTEM_START, 3328 + AutoLoad = SERVICE_AUTO_START, 3329 + DemandLoad = SERVICE_DEMAND_START, 3330 + DisableLoad = SERVICE_DISABLED 3331 +} 3332 + 3333 +enum SERVICE_ERROR_TYPE { 3334 + IgnoreError = SERVICE_ERROR_IGNORE, 3335 + NormalError = SERVICE_ERROR_NORMAL, 3336 + SevereError = SERVICE_ERROR_SEVERE, 3337 + CriticalError = SERVICE_ERROR_CRITICAL 3338 +} 3339 +alias SERVICE_ERROR_TYPE _CM_ERROR_CONTROL_TYPE; 3340 + 3341 +//DAC: According to MSJ, 'UnderTheHood', May 1996, this 3342 +// structure is not documented in any official Microsoft header file. 3343 +alias void EXCEPTION_REGISTRATION_RECORD; 3344 + 3372 3345 align: 3373 -// #endif 3374 - 3375 -struct _IMAGE_FILE_HEADER { 3376 - WORD Machine; 3377 - WORD NumberOfSections; 3378 - DWORD TimeDateStamp; 3379 - DWORD PointerToSymbolTable; 3380 - DWORD NumberOfSymbols; 3381 - WORD SizeOfOptionalHeader; 3382 - WORD Characteristics; 3346 +struct NT_TIB { 3347 + EXCEPTION_REGISTRATION_RECORD *ExceptionList; 3348 + PVOID StackBase; 3349 + PVOID StackLimit; 3350 + PVOID SubSystemTib; 3351 + union { 3352 + PVOID FiberData; 3353 + DWORD Version; 3354 + } 3355 + PVOID ArbitraryUserPointer; 3356 + NT_TIB *Self; 3357 +} 3358 +alias NT_TIB* PNT_TIB; 3359 + 3360 +struct REPARSE_DATA_BUFFER { 3361 + DWORD ReparseTag; 3362 + WORD ReparseDataLength; 3363 + WORD Reserved; 3364 + union { 3365 + struct _GenericReparseBuffer { 3366 + BYTE _DataBuffer; 3367 + 3368 + BYTE* DataBuffer() { return &_DataBuffer; } 3369 + } 3370 + _GenericReparseBuffer GenericReparseBuffer; 3371 + struct _SymbolicLinkReparseBuffer { 3372 + WORD SubstituteNameOffset; 3373 + WORD SubstituteNameLength; 3374 + WORD PrintNameOffset; 3375 + WORD PrintNameLength; 3376 + // ??? This is in MinGW, but absent in MSDN docs 3377 + ULONG Flags; 3378 + WCHAR _PathBuffer; 3379 + 3380 + WCHAR* PathBuffer() { return &_PathBuffer; } 3381 + } 3382 + _SymbolicLinkReparseBuffer SymbolicLinkReparseBuffer; 3383 + struct _MountPointReparseBuffer { 3384 + WORD SubstituteNameOffset; 3385 + WORD SubstituteNameLength; 3386 + WORD PrintNameOffset; 3387 + WORD PrintNameLength; 3388 + WCHAR _PathBuffer; 3389 + 3390 + WCHAR* PathBuffer() { return &_PathBuffer; } 3391 + } 3392 + _MountPointReparseBuffer MountPointReparseBuffer; 3393 + } 3394 +} 3395 +alias REPARSE_DATA_BUFFER *PREPARSE_DATA_BUFFER; 3396 + 3397 +struct REPARSE_GUID_DATA_BUFFER { 3398 + DWORD ReparseTag; 3399 + WORD ReparseDataLength; 3400 + WORD Reserved; 3401 + GUID ReparseGuid; 3402 + struct _GenericReparseBuffer { 3403 + BYTE _DataBuffer; 3404 + 3405 + BYTE* DataBuffer() { return &_DataBuffer; } 3406 + } 3407 + _GenericReparseBuffer GenericReparseBuffer; 3408 +} 3409 +alias REPARSE_GUID_DATA_BUFFER* PREPARSE_GUID_DATA_BUFFER; 3410 + 3411 +const size_t 3412 + REPARSE_DATA_BUFFER_HEADER_SIZE = REPARSE_DATA_BUFFER.GenericReparseBuffer.offsetof, 3413 + REPARSE_GUID_DATA_BUFFER_HEADER_SIZE = REPARSE_GUID_DATA_BUFFER.GenericReparseBuffer.offsetof, 3414 + MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16384; 3415 + 3416 + 3417 +struct REPARSE_POINT_INFORMATION { 3418 + WORD ReparseDataLength; 3419 + WORD UnparsedNameLength; 3420 +} 3421 +alias REPARSE_POINT_INFORMATION* PREPARSE_POINT_INFORMATION; 3422 + 3423 +union FILE_SEGMENT_ELEMENT { 3424 + PVOID64 Buffer; 3425 + ULONGLONG Alignment; 3426 +} 3427 +alias FILE_SEGMENT_ELEMENT* PFILE_SEGMENT_ELEMENT; 3428 + 3429 +// JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags constants 3430 +const DWORD 3431 + JOB_OBJECT_LIMIT_WORKINGSET = 0x0001, 3432 + JOB_OBJECT_LIMIT_PROCESS_TIME = 0x0002, 3433 + JOB_OBJECT_LIMIT_JOB_TIME = 0x0004, 3434 + JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x0008, 3435 + JOB_OBJECT_LIMIT_AFFINITY = 0x0010, 3436 + JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x0020, 3437 + JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x0040, 3438 + JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x0080, 3439 + JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x0100, 3440 + JOB_OBJECT_LIMIT_JOB_MEMORY = 0x0200, 3441 + JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x0400, 3442 + JOB_OBJECT_BREAKAWAY_OK = 0x0800, 3443 + JOB_OBJECT_SILENT_BREAKAWAY = 0x1000; 3444 + 3445 +// JOBOBJECT_BASIC_UI_RESTRICTIONS.UIRestrictionsClass constants 3446 +const DWORD 3447 + JOB_OBJECT_UILIMIT_HANDLES = 0x0001, 3448 + JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x0002, 3449 + JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x0004, 3450 + JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x0008, 3451 + JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x0010, 3452 + JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x0020, 3453 + JOB_OBJECT_UILIMIT_DESKTOP = 0x0040, 3454 + JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x0080; 3455 + 3456 +// JOBOBJECT_SECURITY_LIMIT_INFORMATION.SecurityLimitFlags constants 3457 +const DWORD 3458 + JOB_OBJECT_SECURITY_NO_ADMIN = 0x0001, 3459 + JOB_OBJECT_SECURITY_RESTRICTED_TOKEN = 0x0002, 3460 + JOB_OBJECT_SECURITY_ONLY_TOKEN = 0x0004, 3461 + JOB_OBJECT_SECURITY_FILTER_TOKENS = 0x0008; 3462 + 3463 +// JOBOBJECT_END_OF_JOB_TIME_INFORMATION.EndOfJobTimeAction constants 3464 +enum : DWORD { 3465 + JOB_OBJECT_TERMINATE_AT_END_OF_JOB, 3466 + JOB_OBJECT_POST_AT_END_OF_JOB 3467 +} 3468 + 3469 +enum : DWORD { 3470 + JOB_OBJECT_MSG_END_OF_JOB_TIME = 1, 3471 + JOB_OBJECT_MSG_END_OF_PROCESS_TIME, 3472 + JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT, 3473 + JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO, 3474 + JOB_OBJECT_MSG_NEW_PROCESS, 3475 + JOB_OBJECT_MSG_EXIT_PROCESS, 3476 + JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS, 3477 + JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT, 3478 + JOB_OBJECT_MSG_JOB_MEMORY_LIMIT 3479 +} 3480 + 3481 +enum JOBOBJECTINFOCLASS { 3482 + JobObjectBasicAccountingInformation = 1, 3483 + JobObjectBasicLimitInformation, 3484 + JobObjectBasicProcessIdList, 3485 + JobObjectBasicUIRestrictions, 3486 + JobObjectSecurityLimitInformation, 3487 + JobObjectEndOfJobTimeInformation, 3488 + JobObjectAssociateCompletionPortInformation, 3489 + JobObjectBasicAndIoAccountingInformation, 3490 + JobObjectExtendedLimitInformation, 3491 + JobObjectJobSetInformation, 3492 + MaxJobObjectInfoClass 3493 +} 3494 + 3495 +struct JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { 3496 + LARGE_INTEGER TotalUserTime; 3497 + LARGE_INTEGER TotalKernelTime; 3498 + LARGE_INTEGER ThisPeriodTotalUserTime; 3499 + LARGE_INTEGER ThisPeriodTotalKernelTime; 3500 + DWORD TotalPageFaultCount; 3501 + DWORD TotalProcesses; 3502 + DWORD ActiveProcesses; 3503 + DWORD TotalTerminatedProcesses; 3504 +} 3505 +alias JOBOBJECT_BASIC_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION; 3506 + 3507 +struct JOBOBJECT_BASIC_LIMIT_INFORMATION { 3508 + LARGE_INTEGER PerProcessUserTimeLimit; 3509 + LARGE_INTEGER PerJobUserTimeLimit; 3510 + DWORD LimitFlags; 3511 + SIZE_T MinimumWorkingSetSize; 3512 + SIZE_T MaximumWorkingSetSize; 3513 + DWORD ActiveProcessLimit; 3514 + ULONG_PTR Affinity; 3515 + DWORD PriorityClass; 3516 + DWORD SchedulingClass; 3517 +} 3518 +alias JOBOBJECT_BASIC_LIMIT_INFORMATION* PJOBOBJECT_BASIC_LIMIT_INFORMATION; 3519 + 3520 +struct JOBOBJECT_BASIC_PROCESS_ID_LIST { 3521 + DWORD NumberOfAssignedProcesses; 3522 + DWORD NumberOfProcessIdsInList; 3523 + ULONG_PTR _ProcessIdList; 3524 + 3525 + ULONG_PTR* ProcessIdList() { return &_ProcessIdList; } 3526 +} 3527 +alias JOBOBJECT_BASIC_PROCESS_ID_LIST* PJOBOBJECT_BASIC_PROCESS_ID_LIST; 3528 + 3529 +struct JOBOBJECT_BASIC_UI_RESTRICTIONS { 3530 + DWORD UIRestrictionsClass; 3531 +} 3532 +alias JOBOBJECT_BASIC_UI_RESTRICTIONS* PJOBOBJECT_BASIC_UI_RESTRICTIONS; 3533 + 3534 +struct JOBOBJECT_SECURITY_LIMIT_INFORMATION { 3535 + DWORD SecurityLimitFlags; 3536 + HANDLE JobToken; 3537 + PTOKEN_GROUPS SidsToDisable; 3538 + PTOKEN_PRIVILEGES PrivilegesToDelete; 3539 + PTOKEN_GROUPS RestrictedSids; 3540 +} 3541 +alias JOBOBJECT_SECURITY_LIMIT_INFORMATION* PJOBOBJECT_SECURITY_LIMIT_INFORMATION; 3542 + 3543 +struct JOBOBJECT_END_OF_JOB_TIME_INFORMATION { 3544 + DWORD EndOfJobTimeAction; 3545 +} 3546 +alias JOBOBJECT_END_OF_JOB_TIME_INFORMATION* PJOBOBJECT_END_OF_JOB_TIME_INFORMATION; 3547 + 3548 +struct JOBOBJECT_ASSOCIATE_COMPLETION_PORT { 3549 + PVOID CompletionKey; 3550 + HANDLE CompletionPort; 3551 +} 3552 +alias JOBOBJECT_ASSOCIATE_COMPLETION_PORT* PJOBOBJECT_ASSOCIATE_COMPLETION_PORT; 3553 + 3554 +struct JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { 3555 + JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo; 3556 + IO_COUNTERS IoInfo; 3557 +} 3558 +alias JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION *PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; 3559 + 3560 +struct JOBOBJECT_EXTENDED_LIMIT_INFORMATION { 3561 + JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation; 3562 + IO_COUNTERS IoInfo; 3563 + SIZE_T ProcessMemoryLimit; 3564 + SIZE_T JobMemoryLimit; 3565 + SIZE_T PeakProcessMemoryUsed; 3566 + SIZE_T PeakJobMemoryUsed; 3567 +} 3568 +alias JOBOBJECT_EXTENDED_LIMIT_INFORMATION* PJOBOBJECT_EXTENDED_LIMIT_INFORMATION; 3569 + 3570 +struct JOBOBJECT_JOBSET_INFORMATION { 3571 + DWORD MemberLevel; 3572 +} 3573 +alias JOBOBJECT_JOBSET_INFORMATION* PJOBOBJECT_JOBSET_INFORMATION; 3574 + 3575 +// MinGW: Making these defines conditional on WINVER will break ddk includes 3576 +//static if (WINVER >= 0x0500) { 3577 + 3578 +const DWORD 3579 + ES_SYSTEM_REQUIRED = 0x00000001, 3580 + ES_DISPLAY_REQUIRED = 0x00000002, 3581 + ES_USER_PRESENT = 0x00000004, 3582 + ES_CONTINUOUS = 0x80000000; 3583 + 3584 +enum LATENCY_TIME { 3585 + LT_DONT_CARE, 3586 + LT_LOWEST_LATENCY 3587 +} 3588 +alias LATENCY_TIME* PLATENCY_TIME; 3589 + 3590 +enum SYSTEM_POWER_STATE { 3591 + PowerSystemUnspecified, 3592 + PowerSystemWorking, 3593 + PowerSystemSleeping1, 3594 + PowerSystemSleeping2, 3595 + PowerSystemSleeping3, 3596 + PowerSystemHibernate, 3597 + PowerSystemShutdown, 3598 + PowerSystemMaximum 3599 +} 3600 +alias SYSTEM_POWER_STATE* PSYSTEM_POWER_STATE; 3601 + 3602 +const POWER_SYSTEM_MAXIMUM = SYSTEM_POWER_STATE.PowerSystemMaximum; 3603 + 3604 +enum POWER_ACTION { 3605 + PowerActionNone, 3606 + PowerActionReserved, 3607 + PowerActionSleep, 3608 + PowerActionHibernate, 3609 + PowerActionShutdown, 3610 + PowerActionShutdownReset, 3611 + PowerActionShutdownOff, 3612 + PowerActionWarmEject 3613 +} 3614 +alias POWER_ACTION* PPOWER_ACTION; 3615 + 3616 +static if (WINVER >= 0x600) { 3617 + enum SYSTEM_POWER_CONDITION { 3618 + PoAc, 3619 + PoDc, 3620 + PoHot, 3621 + PoConditionMaximum 3622 + } 3623 + alias SYSTEM_POWER_CONDITION* PSYSTEM_POWER_CONDITION; 3624 +} 3625 + 3626 +enum DEVICE_POWER_STATE { 3627 + PowerDeviceUnspecified, 3628 + PowerDeviceD0, 3629 + PowerDeviceD1, 3630 + PowerDeviceD2, 3631 + PowerDeviceD3, 3632 + PowerDeviceMaximum 3633 +} 3634 +alias DEVICE_POWER_STATE* PDEVICE_POWER_STATE; 3635 + 3636 +align(4): 3637 +struct BATTERY_REPORTING_SCALE { 3638 + DWORD Granularity; 3639 + DWORD Capacity; 3640 +} 3641 +alias BATTERY_REPORTING_SCALE* PBATTERY_REPORTING_SCALE; 3642 + 3643 +struct POWER_ACTION_POLICY { 3644 + POWER_ACTION Action; 3645 + ULONG Flags; 3646 + ULONG EventCode; 3647 +} 3648 +alias POWER_ACTION_POLICY* PPOWER_ACTION_POLICY; 3649 + 3650 +// POWER_ACTION_POLICY.Flags constants 3651 +const ULONG 3652 + POWER_ACTION_QUERY_ALLOWED = 0x00000001, 3653 + POWER_ACTION_UI_ALLOWED = 0x00000002, 3654 + POWER_ACTION_OVERRIDE_APPS = 0x00000004, 3655 + POWER_ACTION_LIGHTEST_FIRST = 0x10000000, 3656 + POWER_ACTION_LOCK_CONSOLE = 0x20000000, 3657 + POWER_ACTION_DISABLE_WAKES = 0x40000000, 3658 + POWER_ACTION_CRITICAL = 0x80000000; 3659 + 3660 +// POWER_ACTION_POLICY.EventCode constants 3661 +const ULONG 3662 + POWER_LEVEL_USER_NOTIFY_TEXT = 0x00000001, 3663 + POWER_LEVEL_USER_NOTIFY_SOUND = 0x00000002, 3664 + POWER_LEVEL_USER_NOTIFY_EXEC = 0x00000004, 3665 + POWER_USER_NOTIFY_BUTTON = 0x00000008, 3666 + POWER_USER_NOTIFY_SHUTDOWN = 0x00000010, 3667 + POWER_FORCE_TRIGGER_RESET = 0x80000000; 3668 + 3669 +const size_t 3670 + DISCHARGE_POLICY_CRITICAL = 0, 3671 + DISCHARGE_POLICY_LOW = 1, 3672 + NUM_DISCHARGE_POLICIES = 4; 3673 + 3674 +enum : BYTE { 3675 + PO_THROTTLE_NONE, 3676 + PO_THROTTLE_CONSTANT, 3677 + PO_THROTTLE_DEGRADE, 3678 + PO_THROTTLE_ADAPTIVE, 3679 + PO_THROTTLE_MAXIMUM 3680 +} 3681 + 3682 +struct SYSTEM_POWER_LEVEL { 3683 + BOOLEAN Enable; 3684 + UCHAR[3] Spare; 3685 + ULONG BatteryLevel; 3686 + POWER_ACTION_POLICY PowerPolicy; 3687 + SYSTEM_POWER_STATE MinSystemState; 3688 +} 3689 +alias SYSTEM_POWER_LEVEL* PSYSTEM_POWER_LEVEL; 3690 + 3691 +struct SYSTEM_POWER_POLICY { 3692 + ULONG Revision; 3693 + POWER_ACTION_POLICY PowerButton; 3694 + POWER_ACTION_POLICY SleepButton; 3695 + POWER_ACTION_POLICY LidClose; 3696 + SYSTEM_POWER_STATE LidOpenWake; 3697 + ULONG Reserved; 3698 + POWER_ACTION_POLICY Idle; 3699 + ULONG IdleTimeout; 3700 + UCHAR IdleSensitivity; 3701 + UCHAR DynamicThrottle; 3702 + UCHAR[2] Spare2; 3703 + SYSTEM_POWER_STATE MinSleep; 3704 + SYSTEM_POWER_STATE MaxSleep; 3705 + SYSTEM_POWER_STATE ReducedLatencySleep; 3706 + ULONG WinLogonFlags; 3707 + ULONG Spare3; 3708 + ULONG DozeS4Timeout; 3709 + ULONG BroadcastCapacityResolution; 3710 + SYSTEM_POWER_LEVEL[NUM_DISCHARGE_POLICIES] DischargePolicy; 3711 + ULONG VideoTimeout; 3712 + BOOLEAN VideoDimDisplay; 3713 + ULONG[3] VideoReserved; 3714 + ULONG SpindownTimeout; 3715 + BOOLEAN OptimizeForPower; 3716 + UCHAR FanThrottleTolerance; 3717 + UCHAR ForcedThrottle; 3718 + UCHAR MinThrottle; 3719 + POWER_ACTION_POLICY OverThrottled; 3720 +} 3721 +alias SYSTEM_POWER_POLICY* PSYSTEM_POWER_POLICY; 3722 + 3723 +struct SYSTEM_POWER_CAPABILITIES { 3724 + BOOLEAN PowerButtonPresent; 3725 + BOOLEAN SleepButtonPresent; 3726 + BOOLEAN LidPresent; 3727 + BOOLEAN SystemS1; 3728 + BOOLEAN SystemS2; 3729 + BOOLEAN SystemS3; 3730 + BOOLEAN SystemS4; 3731 + BOOLEAN SystemS5; 3732 + BOOLEAN HiberFilePresent; 3733 + BOOLEAN FullWake; 3734 + BOOLEAN VideoDimPresent; 3735 + BOOLEAN ApmPresent; 3736 + BOOLEAN UpsPresent; 3737 + BOOLEAN ThermalControl; 3738 + BOOLEAN ProcessorThrottle; 3739 + UCHAR ProcessorMinThrottle; 3740 + UCHAR ProcessorMaxThrottle; 3741 + UCHAR[4] spare2; 3742 + BOOLEAN DiskSpinDown; 3743 + UCHAR[8] spare3; 3744 + BOOLEAN SystemBatteriesPresent; 3745 + BOOLEAN BatteriesAreShortTerm; 3746 + BATTERY_REPORTING_SCALE[3] BatteryScale; 3747 + SYSTEM_POWER_STATE AcOnLineWake; 3748 + SYSTEM_POWER_STATE SoftLidWake; 3749 + SYSTEM_POWER_STATE RtcWake; 3750 + SYSTEM_POWER_STATE MinDeviceWakeState; 3751 + SYSTEM_POWER_STATE DefaultLowLatencyWake; 3752 +} 3753 +alias SYSTEM_POWER_CAPABILITIES* PSYSTEM_POWER_CAPABILITIES; 3754 + 3755 +struct SYSTEM_BATTERY_STATE { 3756 + BOOLEAN AcOnLine; 3757 + BOOLEAN BatteryPresent; 3758 + BOOLEAN Charging; 3759 + BOOLEAN Discharging; 3760 + BOOLEAN[4] Spare1; 3761 + ULONG MaxCapacity; 3762 + ULONG RemainingCapacity; 3763 + ULONG Rate; 3764 + ULONG EstimatedTime; 3765 + ULONG DefaultAlert1; 3766 + ULONG DefaultAlert2; 3767 +} 3768 +alias SYSTEM_BATTERY_STATE* PSYSTEM_BATTERY_STATE; 3769 + 3770 +enum POWER_INFORMATION_LEVEL { 3771 + SystemPowerPolicyAc, 3772 + SystemPowerPolicyDc, 3773 + VerifySystemPolicyAc, 3774 + VerifySystemPolicyDc, 3775 + SystemPowerCapabilities, 3776 + SystemBatteryState, 3777 + SystemPowerStateHandler, 3778 + ProcessorStateHandler, 3779 + SystemPowerPolicyCurrent, 3780 + AdministratorPowerPolicy, 3781 + SystemReserveHiberFile, 3782 + ProcessorInformation, 3783 + SystemPowerInformation, 3784 + ProcessorStateHandler2, 3785 + LastWakeTime, 3786 + LastSleepTime, 3787 + SystemExecutionState, 3788 + SystemPowerStateNotifyHandler, 3789 + ProcessorPowerPolicyAc, 3790 + ProcessorPowerPolicyDc, 3791 + VerifyProcessorPowerPolicyAc, 3792 + VerifyProcessorPowerPolicyDc, 3793 + ProcessorPowerPolicyCurrent 3794 +} 3795 + 3796 +//#if 1 /* (WIN32_WINNT >= 0x0500) */ 3797 +struct SYSTEM_POWER_INFORMATION { 3798 + ULONG MaxIdlenessAllowed; 3799 + ULONG Idleness; 3800 + ULONG TimeRemaining; 3801 + UCHAR CoolingMode; 3802 +} 3803 +alias SYSTEM_POWER_INFORMATION* PSYSTEM_POWER_INFORMATION; 3804 +//#endif 3805 + 3806 +struct PROCESSOR_POWER_POLICY_INFO { 3807 + ULONG TimeCheck; 3808 + ULONG DemoteLimit; 3809 + ULONG PromoteLimit; 3810 + UCHAR DemotePercent; 3811 + UCHAR PromotePercent; 3812 + UCHAR[2] Spare; 3813 + uint _bf; 3814 + 3815 + bool AllowDemotion() { return cast(bool)(_bf & 1); } 3816 + bool AllowPromotion() { return cast(bool)(_bf & 2); } 3817 + 3818 + bool AllowDemotion(bool a) { _bf = (_bf & ~1) | a; return a; } 3819 + bool AllowPromotion(bool a) { _bf = (_bf & ~2) | (a << 1); return a; } 3820 +/+ 3821 + ULONG AllowDemotion : 1; 3822 + ULONG AllowPromotion : 1; 3823 + ULONG Reserved : 30; 3824 ++/ 3825 +} 3826 +alias PROCESSOR_POWER_POLICY_INFO* PPROCESSOR_POWER_POLICY_INFO; 3827 + 3828 +struct PROCESSOR_POWER_POLICY { 3829 + ULONG Revision; 3830 + UCHAR DynamicThrottle; 3831 + UCHAR[3] Spare; 3832 + ULONG Reserved; 3833 + ULONG PolicyCount; 3834 + PROCESSOR_POWER_POLICY_INFO[3] Policy; 3835 +} 3836 +alias PROCESSOR_POWER_POLICY* PPROCESSOR_POWER_POLICY; 3837 + 3838 +struct ADMINISTRATOR_POWER_POLICY { 3839 + SYSTEM_POWER_STATE MinSleep; 3840 + SYSTEM_POWER_STATE MaxSleep; 3841 + ULONG MinVideoTimeout; 3842 + ULONG MaxVideoTimeout; 3843 + ULONG MinSpindownTimeout; 3844 + ULONG MaxSpindownTimeout; 3383 3845 } 3384 -alias _IMAGE_FILE_HEADER IMAGE_FILE_HEADER; 3385 -alias _IMAGE_FILE_HEADER* PIMAGE_FILE_HEADER; 3386 - 3387 -enum : uint { IMAGE_SIZEOF_FILE_HEADER = 20 } 3388 - 3389 -enum : uint { IMAGE_FILE_RELOCS_STRIPPED = 0x0001 } 3390 -enum : uint { IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002 } 3391 -enum : uint { IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004 } 3392 -enum : uint { IMAGE_FILE_LOCAL_SYMS_STRIPPED = 0x0008 } 3393 -enum : uint { IMAGE_FILE_AGGRESIVE_WS_TRIM = 0x0010 } 3394 -enum : uint { IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020 } 3395 -enum : uint { IMAGE_FILE_BYTES_REVERSED_LO = 0x0080 } 3396 -enum : uint { IMAGE_FILE_32BIT_MACHINE = 0x0100 } 3397 -enum : uint { IMAGE_FILE_DEBUG_STRIPPED = 0x0200 } 3398 -enum : uint { IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400 } 3399 -enum : uint { IMAGE_FILE_NET_RUN_FROM_SWAP = 0x0800 } 3400 -enum : uint { IMAGE_FILE_SYSTEM = 0x1000 } 3401 -enum : uint { IMAGE_FILE_DLL = 0x2000 } 3402 -enum : uint { IMAGE_FILE_UP_SYSTEM_ONLY = 0x4000 } 3403 -enum : uint { IMAGE_FILE_BYTES_REVERSED_HI = 0x8000 } 3404 - 3405 -enum : uint { IMAGE_FILE_MACHINE_UNKNOWN = 0 } 3406 -enum : uint { IMAGE_FILE_MACHINE_I386 = 0x014c } 3407 -enum : uint { IMAGE_FILE_MACHINE_R3000 = 0x0162 } 3408 -enum : uint { IMAGE_FILE_MACHINE_R4000 = 0x0166 } 3409 -enum : uint { IMAGE_FILE_MACHINE_R10000 = 0x0168 } 3410 -enum : uint { IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x0169 } 3411 -enum : uint { IMAGE_FILE_MACHINE_ALPHA = 0x0184 } 3412 -enum : uint { IMAGE_FILE_MACHINE_SH3 = 0x01a2 } 3413 -enum : uint { IMAGE_FILE_MACHINE_SH3DSP = 0x01a3 } 3414 -enum : uint { IMAGE_FILE_MACHINE_SH3E = 0x01a4 } 3415 -enum : uint { IMAGE_FILE_MACHINE_SH4 = 0x01a6 } 3416 -enum : uint { IMAGE_FILE_MACHINE_SH5 = 0x01a8 } 3417 -enum : uint { IMAGE_FILE_MACHINE_ARM = 0x01c0 } 3418 -enum : uint { IMAGE_FILE_MACHINE_THUMB = 0x01c2 } 3419 -enum : uint { IMAGE_FILE_MACHINE_AM33 = 0x01d3 } 3420 -enum : uint { IMAGE_FILE_MACHINE_POWERPC = 0x01F0 } 3421 -enum : uint { IMAGE_FILE_MACHINE_POWERPCFP = 0x01f1 } 3422 -enum : uint { IMAGE_FILE_MACHINE_IA64 = 0x0200 } 3423 -enum : uint { IMAGE_FILE_MACHINE_MIPS16 = 0x0266 } 3424 -enum : uint { IMAGE_FILE_MACHINE_ALPHA64 = 0x0284 } 3425 -enum : uint { IMAGE_FILE_MACHINE_MIPSFPU = 0x0366 } 3426 -enum : uint { IMAGE_FILE_MACHINE_MIPSFPU16 = 0x0466 } 3427 -alias IMAGE_FILE_MACHINE_ALPHA64 IMAGE_FILE_MACHINE_AXP64; 3428 -enum : uint { IMAGE_FILE_MACHINE_TRICORE = 0x0520 } 3429 -enum : uint { IMAGE_FILE_MACHINE_CEF = 0x0CEF } 3430 -enum : uint { IMAGE_FILE_MACHINE_EBC = 0x0EBC } 3431 -enum : uint { IMAGE_FILE_MACHINE_AMD64 = 0x8664 } 3432 -enum : uint { IMAGE_FILE_MACHINE_M32R = 0x9041 } 3433 -enum : uint { IMAGE_FILE_MACHINE_CEE = 0xC0EE } 3434 - 3435 -struct _IMAGE_DATA_DIRECTORY { 3436 - DWORD VirtualAddress; 3437 - DWORD Size; 3846 +alias ADMINISTRATOR_POWER_POLICY* PADMINISTRATOR_POWER_POLICY; 3847 + 3848 +//}//#endif /* WINVER >= 0x0500 */ 3849 + 3850 +extern (Windows) { 3851 + alias void function(PVOID, DWORD, PVOID) PIMAGE_TLS_CALLBACK; 3852 + 3853 + static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 3854 + alias LONG function(PEXCEPTION_POINTERS) PVECTORED_EXCEPTION_HANDLER; 3855 + alias void function(PVOID, BOOLEAN) WAITORTIMERCALLBACKFUNC; 3856 + } 3438 3857 } 3439 -alias _IMAGE_DATA_DIRECTORY IMAGE_DATA_DIRECTORY; 3440 -alias _IMAGE_DATA_DIRECTORY* PIMAGE_DATA_DIRECTORY; 3441 3858 3442 -enum : uint { IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16 } 3859 +static if (WINVER >= 0x501) { 3860 + enum HEAP_INFORMATION_CLASS { 3861 + HeapCompatibilityInformation 3862 + } 3863 + 3864 + enum ACTIVATION_CONTEXT_INFO_CLASS { 3865 + ActivationContextBasicInformation = 1, 3866 + ActivationContextDetailedInformation, 3867 + AssemblyDetailedInformationInActivationContext, 3868 + FileInformationInAssemblyOfAssemblyInActivationContext 3869 + } 3870 + 3871 + struct ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION { 3872 + DWORD ulFlags; 3873 + DWORD ulEncodedAssemblyIdentityLength; 3874 + DWORD ulManifestPathType; 3875 + DWORD ulManifestPathLength; 3876 + LARGE_INTEGER liManifestLastWriteTime; 3877 + DWORD ulPolicyPathType; 3878 + DWORD ulPolicyPathLength; 3879 + LARGE_INTEGER liPolicyLastWriteTime; 3880 + DWORD ulMetadataSatelliteRosterIndex; 3881 + DWORD ulManifestVersionMajor; 3882 + DWORD ulManifestVersionMinor; 3883 + DWORD ulPolicyVersionMajor; 3884 + DWORD ulPolicyVersionMinor; 3885 + DWORD ulAssemblyDirectoryNameLength; 3886 + PCWSTR lpAssemblyEncodedAssemblyIdentity; 3887 + PCWSTR lpAssemblyManifestPath; 3888 + PCWSTR lpAssemblyPolicyPath; 3889 + PCWSTR lpAssemblyDirectoryName; 3890 + } 3891 + alias ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* 3892 + PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; 3893 + alias CPtr!(ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION) 3894 + PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; 3443 3895 3444 -struct _IMAGE_OPTIONAL_HEADER { 3896 + struct ACTIVATION_CONTEXT_DETAILED_INFORMATION { 3897 + DWORD dwFlags; 3898 + DWORD ulFormatVersion; 3899 + DWORD ulAssemblyCount; 3900 + DWORD ulRootManifestPathType; 3901 + DWORD ulRootManifestPathChars; 3902 + DWORD ulRootConfigurationPathType; 3903 + DWORD ulRootConfigurationPathChars; 3904 + DWORD ulAppDirPathType; 3905 + DWORD ulAppDirPathChars; 3906 + PCWSTR lpRootManifestPath; 3907 + PCWSTR lpRootConfigurationPath; 3908 + PCWSTR lpAppDirPath; 3909 + } 3910 + alias ACTIVATION_CONTEXT_DETAILED_INFORMATION* 3911 + PACTIVATION_CONTEXT_DETAILED_INFORMATION; 3912 + alias CPtr!(ACTIVATION_CONTEXT_DETAILED_INFORMATION) 3913 + PCACTIVATION_CONTEXT_DETAILED_INFORMATION; 3445 3914 3446 - WORD Magic; 3447 - BYTE MajorLinkerVersion; 3448 - BYTE MinorLinkerVersion; 3449 - DWORD SizeOfCode; 3450 - DWORD SizeOfInitializedData; 3451 - DWORD SizeOfUninitializedData; 3452 - DWORD AddressOfEntryPoint; 3453 - DWORD BaseOfCode; 3454 - DWORD BaseOfData; 3915 + struct ACTIVATION_CONTEXT_QUERY_INDEX { 3916 + ULONG ulAssemblyIndex; 3917 + ULONG ulFileIndexInAssembly; 3918 + } 3919 + alias ACTIVATION_CONTEXT_QUERY_INDEX* PACTIVATION_CONTEXT_QUERY_INDEX; 3920 + alias CPtr!(ACTIVATION_CONTEXT_QUERY_INDEX) PCACTIVATION_CONTEXT_QUERY_INDEX; 3455 3921 3456 - DWORD ImageBase; 3457 - DWORD SectionAlignment; 3458 - DWORD FileAlignment; 3459 - WORD MajorOperatingSystemVersion; 3460 - WORD MinorOperatingSystemVersion; 3461 - WORD MajorImageVersion; 3462 - WORD MinorImageVersion; 3463 - WORD MajorSubsystemVersion; 3464 - WORD MinorSubsystemVersion; 3465 - DWORD Win32VersionValue; 3466 - DWORD SizeOfImage; 3467 - DWORD SizeOfHeaders; 3468 - DWORD CheckSum; 3469 - WORD Subsystem; 3470 - WORD DllCharacteristics; 3471 - DWORD SizeOfStackReserve; 3472 - DWORD SizeOfStackCommit; 3473 - DWORD SizeOfHeapReserve; 3474 - DWORD SizeOfHeapCommit; 3475 - DWORD LoaderFlags; 3476 - DWORD NumberOfRvaAndSizes; 3477 - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; 3922 + struct ASSEMBLY_FILE_DETAILED_INFORMATION { 3923 + DWORD ulFlags; 3924 + DWORD ulFilenameLength; 3925 + DWORD ulPathLength; 3926 + PCWSTR lpFileName; 3927 + PCWSTR lpFilePath; 3928 + } 3929 + alias ASSEMBLY_FILE_DETAILED_INFORMATION* 3930 + PASSEMBLY_FILE_DETAILED_INFORMATION; 3931 + alias CPtr!(ASSEMBLY_FILE_DETAILED_INFORMATION) 3932 + PCASSEMBLY_FILE_DETAILED_INFORMATION; 3478 3933 } 3479 -alias _IMAGE_OPTIONAL_HEADER IMAGE_OPTIONAL_HEADER32; 3480 -alias _IMAGE_OPTIONAL_HEADER* PIMAGE_OPTIONAL_HEADER32; 3481 - 3482 -struct _IMAGE_ROM_OPTIONAL_HEADER { 3483 - WORD Magic; 3484 - BYTE MajorLinkerVersion; 3485 - BYTE MinorLinkerVersion; 3486 - DWORD SizeOfCode; 3487 - DWORD SizeOfInitializedData; 3488 - DWORD SizeOfUninitializedData; 3489 - DWORD AddressOfEntryPoint; 3490 - DWORD BaseOfCode; 3491 - DWORD BaseOfData; 3492 - DWORD BaseOfBss; 3493 - DWORD GprMask; 3494 - DWORD CprMask[4]; 3495 - DWORD GpValue; 3496 -} 3497 -alias _IMAGE_ROM_OPTIONAL_HEADER IMAGE_ROM_OPTIONAL_HEADER; 3498 -alias _IMAGE_ROM_OPTIONAL_HEADER* PIMAGE_ROM_OPTIONAL_HEADER; 3499 3934 3500 -struct _IMAGE_OPTIONAL_HEADER64 { 3501 - WORD Magic; 3502 - BYTE MajorLinkerVersion; 3503 - BYTE MinorLinkerVersion; 3504 - DWORD SizeOfCode; 3505 - DWORD SizeOfInitializedData; 3506 - DWORD SizeOfUninitializedData; 3507 - DWORD AddressOfEntryPoint; 3508 - DWORD BaseOfCode; 3509 - ULONGLONG ImageBase; 3510 - DWORD SectionAlignment; 3511 - DWORD FileAlignment; 3512 - WORD MajorOperatingSystemVersion; 3513 - WORD MinorOperatingSystemVersion; 3514 - WORD MajorImageVersion; 3515 - WORD MinorImageVersion; 3516 - WORD MajorSubsystemVersion; 3517 - WORD MinorSubsystemVersion; 3518 - DWORD Win32VersionValue; 3519 - DWORD SizeOfImage; 3520 - DWORD SizeOfHeaders; 3521 - DWORD CheckSum; 3522 - WORD Subsystem; 3523 - WORD DllCharacteristics; 3524 - ULONGLONG SizeOfStackReserve; 3525 - ULONGLONG SizeOfStackCommit; 3526 - ULONGLONG SizeOfHeapReserve; 3527 - ULONGLONG SizeOfHeapCommit; 3528 - DWORD LoaderFlags; 3529 - DWORD NumberOfRvaAndSizes; 3530 - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; 3935 +version (Unicode) { 3936 + alias OSVERSIONINFOW OSVERSIONINFO; 3937 + alias OSVERSIONINFOEXW OSVERSIONINFOEX; 3938 +} else { 3939 + alias OSVERSIONINFOA OSVERSIONINFO; 3940 + alias OSVERSIONINFOEXA OSVERSIONINFOEX; 3531 3941 } 3532 -alias _IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER64; 3533 -alias _IMAGE_OPTIONAL_HEADER64* PIMAGE_OPTIONAL_HEADER64; 3534 3942 3535 -enum : uint { IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = 56 } 3536 -enum : uint { IMAGE_SIZEOF_STD_OPTIONAL_HEADER = 28 } 3537 -enum : uint { IMAGE_SIZEOF_NT_OPTIONAL32_HEADER = 224 } 3538 -enum : uint { IMAGE_SIZEOF_NT_OPTIONAL64_HEADER = 240 } 3943 +alias OSVERSIONINFO* POSVERSIONINFO, LPOSVERSIONINFO; 3944 +alias OSVERSIONINFOEX* POSVERSIONINFOEX, LPOSVERSIONINFOEX; 3945 + 3539 3946 3540 -enum : uint { IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x10b } 3541 -enum : uint { IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x20b } 3542 -enum : uint { IMAGE_ROM_OPTIONAL_HDR_MAGIC = 0x107 } 3543 - 3544 -// #ifdef _WIN64 3545 -// ... 3546 -// #... 3547 -// #... 3548 -// #else 3549 -alias IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER; 3550 -alias PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER; 3551 -alias IMAGE_SIZEOF_NT_OPTIONAL32_HEADER IMAGE_SIZEOF_NT_OPTIONAL_HEADER; 3552 -alias IMAGE_NT_OPTIONAL_HDR32_MAGIC IMAGE_NT_OPTIONAL_HDR_MAGIC; 3553 -// #endif 3554 - 3555 -struct _IMAGE_NT_HEADERS64 { 3556 - DWORD Signature; 3557 - IMAGE_FILE_HEADER FileHeader; 3558 - IMAGE_OPTIONAL_HEADER64 OptionalHeader; 3559 -} 3560 -alias _IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS64; 3561 -alias _IMAGE_NT_HEADERS64* PIMAGE_NT_HEADERS64; 3562 - 3563 -struct _IMAGE_NT_HEADERS { 3564 - DWORD Signature; 3565 - IMAGE_FILE_HEADER FileHeader; 3566 - IMAGE_OPTIONAL_HEADER32 OptionalHeader; 3567 -} 3568 -alias _IMAGE_NT_HEADERS IMAGE_NT_HEADERS32; 3569 -alias _IMAGE_NT_HEADERS* PIMAGE_NT_HEADERS32; 3570 - 3571 -struct _IMAGE_ROM_HEADERS { 3572 - IMAGE_FILE_HEADER FileHeader; 3573 - IMAGE_ROM_OPTIONAL_HEADER OptionalHeader; 3574 -} 3575 -alias _IMAGE_ROM_HEADERS IMAGE_ROM_HEADERS; 3576 -alias _IMAGE_ROM_HEADERS* PIMAGE_ROM_HEADERS; 3577 - 3578 -// #ifdef _WIN64 3579 -// ... 3580 -// #else 3581 -alias IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS; 3582 -alias PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS; 3583 -// #endif 3584 - 3585 -// #define IMAGE_FIRST_SECTION( ntheader ) ((PIMAGE_SECTION_HEADER) ((ULONG_PTR)ntheader + FIELD_OFFSET( IMAGE_NT_HEADERS, OptionalHeader ) + ((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader )) 3586 - 3587 -enum : uint { IMAGE_SUBSYSTEM_UNKNOWN = 0 } 3588 -enum : uint { IMAGE_SUBSYSTEM_NATIVE = 1 } 3589 -enum : uint { IMAGE_SUBSYSTEM_WINDOWS_GUI = 2 } 3590 -enum : uint { IMAGE_SUBSYSTEM_WINDOWS_CUI = 3 } 3591 -enum : uint { IMAGE_SUBSYSTEM_OS2_CUI = 5 } 3592 -enum : uint { IMAGE_SUBSYSTEM_POSIX_CUI = 7 } 3593 -enum : uint { IMAGE_SUBSYSTEM_NATIVE_WINDOWS = 8 } 3594 -enum : uint { IMAGE_SUBSYSTEM_WINDOWS_CE_GUI = 9 } 3595 -enum : uint { IMAGE_SUBSYSTEM_EFI_APPLICATION = 10 } 3596 -enum : uint { IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER = 11 } 3597 -enum : uint { IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER = 12 } 3598 -enum : uint { IMAGE_SUBSYSTEM_EFI_ROM = 13 } 3599 -enum : uint { IMAGE_SUBSYSTEM_XBOX = 14 } 3600 - 3601 -enum : uint { IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800 } 3602 - 3603 -enum : uint { IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000 } 3604 - 3605 -enum : uint { IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000 } 3606 - 3607 -enum : uint { IMAGE_DIRECTORY_ENTRY_EXPORT = 0 } 3608 -enum : uint { IMAGE_DIRECTORY_ENTRY_IMPORT = 1 } 3609 -enum : uint { IMAGE_DIRECTORY_ENTRY_RESOURCE = 2 } 3610 -enum : uint { IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3 } 3611 -enum : uint { IMAGE_DIRECTORY_ENTRY_SECURITY = 4 } 3612 -enum : uint { IMAGE_DIRECTORY_ENTRY_BASERELOC = 5 } 3613 -enum : uint { IMAGE_DIRECTORY_ENTRY_DEBUG = 6 } 3614 - 3615 -enum : uint { IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7 } 3616 -enum : uint { IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8 } 3617 -enum : uint { IMAGE_DIRECTORY_ENTRY_TLS = 9 } 3618 -enum : uint { IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10 } 3619 -enum : uint { IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11 } 3620 -enum : uint { IMAGE_DIRECTORY_ENTRY_IAT = 12 } 3621 -enum : uint { IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13 } 3622 -enum : uint { IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14 } 3623 - 3624 -struct ANON_OBJECT_HEADER { 3625 - WORD Sig1; 3626 - WORD Sig2; 3627 - WORD Version; 3628 - WORD Machine; 3629 - DWORD TimeDateStamp; 3630 - CLSID ClassID; 3631 - DWORD SizeOfData; 3947 +static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 3948 + extern (Windows) ULONGLONG VerSetConditionMask(ULONGLONG, DWORD, BYTE); 3632 3949 } 3633 3950 3634 -enum : uint { IMAGE_SIZEOF_SHORT_NAME = 8 } 3635 - 3636 -struct _IMAGE_SECTION_HEADER { 3637 - BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; 3638 -union { 3639 - DWORD PhysicalAddress; 3640 - DWORD VirtualSize; 3641 -} 3642 - 3643 - DWORD VirtualAddress; 3644 - DWORD SizeOfRawData; 3645 - DWORD PointerToRawData; 3646 - DWORD PointerToRelocations; 3647 - DWORD PointerToLinenumbers; 3648 - WORD NumberOfRelocations; 3649 - WORD NumberOfLinenumbers; 3650 - DWORD Characteristics; 3651 -} 3652 -alias _IMAGE_SECTION_HEADER IMAGE_SECTION_HEADER; 3653 -alias _IMAGE_SECTION_HEADER* PIMAGE_SECTION_HEADER; 3951 +version (Win64) { 3952 + const WORD IMAGE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR64_MAGIC; 3654 3953 3655 -enum : uint { IMAGE_SIZEOF_SECTION_HEADER = 40 } 3656 - 3657 -enum : uint { IMAGE_SCN_TYPE_NO_PAD = 0x00000008 } 3658 - 3659 -enum : uint { IMAGE_SCN_CNT_CODE = 0x00000020 } 3660 -enum : uint { IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040 } 3661 -enum : uint { IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080 } 3662 - 3663 -enum : uint { IMAGE_SCN_LNK_OTHER = 0x00000100 } 3664 -enum : uint { IMAGE_SCN_LNK_INFO = 0x00000200 } 3665 - 3666 -enum : uint { IMAGE_SCN_LNK_REMOVE = 0x00000800 } 3667 -enum : uint { IMAGE_SCN_LNK_COMDAT = 0x00001000 } 3668 - 3669 -enum : uint { IMAGE_SCN_NO_DEFER_SPEC_EXC = 0x00004000 } 3670 -enum : uint { IMAGE_SCN_GPREL = 0x00008000 } 3671 -enum : uint { IMAGE_SCN_MEM_FARDATA = 0x00008000 } 3672 - 3673 -enum : uint { IMAGE_SCN_MEM_PURGEABLE = 0x00020000 } 3674 -enum : uint { IMAGE_SCN_MEM_16BIT = 0x00020000 } 3675 -enum : uint { IMAGE_SCN_MEM_LOCKED = 0x00040000 } 3676 -enum : uint { IMAGE_SCN_MEM_PRELOAD = 0x00080000 } 3677 - 3678 -enum : uint { IMAGE_SCN_ALIGN_1BYTES = 0x00100000 } 3679 -enum : uint { IMAGE_SCN_ALIGN_2BYTES = 0x00200000 } 3680 -enum : uint { IMAGE_SCN_ALIGN_4BYTES = 0x00300000 } 3681 -enum : uint { IMAGE_SCN_ALIGN_8BYTES = 0x00400000 } 3682 -enum : uint { IMAGE_SCN_ALIGN_16BYTES = 0x00500000 } 3683 -enum : uint { IMAGE_SCN_ALIGN_32BYTES = 0x00600000 } 3684 -enum : uint { IMAGE_SCN_ALIGN_64BYTES = 0x00700000 } 3685 -enum : uint { IMAGE_SCN_ALIGN_128BYTES = 0x00800000 } 3686 -enum : uint { IMAGE_SCN_ALIGN_256BYTES = 0x00900000 } 3687 -enum : uint { IMAGE_SCN_ALIGN_512BYTES = 0x00A00000 } 3688 -enum : uint { IMAGE_SCN_ALIGN_1024BYTES = 0x00B00000 } 3689 -enum : uint { IMAGE_SCN_ALIGN_2048BYTES = 0x00C00000 } 3690 -enum : uint { IMAGE_SCN_ALIGN_4096BYTES = 0x00D00000 } 3691 -enum : uint { IMAGE_SCN_ALIGN_8192BYTES = 0x00E00000 } 3692 - 3693 -enum : uint { IMAGE_SCN_ALIGN_MASK = 0x00F00000 } 3694 - 3695 -enum : uint { IMAGE_SCN_LNK_NRELOC_OVFL = 0x01000000 } 3696 -enum : uint { IMAGE_SCN_MEM_DISCARDABLE = 0x02000000 } 3697 -enum : uint { IMAGE_SCN_MEM_NOT_CACHED = 0x04000000 } 3698 -enum : uint { IMAGE_SCN_MEM_NOT_PAGED = 0x08000000 } 3699 -enum : uint { IMAGE_SCN_MEM_SHARED = 0x10000000 } 3700 -enum : uint { IMAGE_SCN_MEM_EXECUTE = 0x20000000 } 3701 -enum : uint { IMAGE_SCN_MEM_READ = 0x40000000 } 3702 -enum : uint { IMAGE_SCN_MEM_WRITE = 0x80000000 } 3703 - 3704 -enum : uint { IMAGE_SCN_SCALE_INDEX = 0x00000001 } 3705 - 3706 -// #ifndef _MAC 3707 -align(2): 3708 -// #endif 3709 - 3710 -struct _IMAGE_SYMBOL { 3711 -union { 3712 - BYTE ShortName[8]; 3713 -struct { 3714 - DWORD Short; 3715 - DWORD Long; 3716 -} 3717 - 3718 - DWORD LongName[2]; 3719 -} 3720 - 3721 - DWORD Value; 3722 - SHORT SectionNumber; 3723 - WORD Type; 3724 - BYTE StorageClass; 3725 - BYTE NumberOfAuxSymbols; 3726 -} 3727 -alias _IMAGE_SYMBOL IMAGE_SYMBOL; 3728 - 3729 -alias IMAGE_SYMBOL* PIMAGE_SYMBOL; 3730 - 3731 -enum : uint { IMAGE_SIZEOF_SYMBOL = 18 } 3954 + alias IMAGE_ORDINAL_FLAG64 IMAGE_ORDINAL_FLAG; 3955 + alias IMAGE_SNAP_BY_ORDINAL64 IMAGE_SNAP_BY_ORDINAL; 3956 + alias IMAGE_ORDINAL64 IMAGE_ORDINAL; 3957 + alias IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER; 3958 + alias IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS; 3959 + alias IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA; 3960 + alias IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY; 3961 +} else { 3962 + const WORD IMAGE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR32_MAGIC; 3732 3963 3733 -enum : SHORT { IMAGE_SYM_UNDEFINED = 0 } 3734 -enum : SHORT { IMAGE_SYM_ABSOLUTE = -1 } 3735 -enum : SHORT { IMAGE_SYM_DEBUG = -2 } 3736 -enum : uint { IMAGE_SYM_SECTION_MAX = 0xFEFF } 3737 - 3738 -enum : uint { IMAGE_SYM_TYPE_NULL = 0x0000 } 3739 -enum : uint { IMAGE_SYM_TYPE_VOID = 0x0001 } 3740 -enum : uint { IMAGE_SYM_TYPE_CHAR = 0x0002 } 3741 -enum : uint { IMAGE_SYM_TYPE_SHORT = 0x0003 } 3742 -enum : uint { IMAGE_SYM_TYPE_INT = 0x0004 } 3743 -enum : uint { IMAGE_SYM_TYPE_LONG = 0x0005 } 3744 -enum : uint { IMAGE_SYM_TYPE_FLOAT = 0x0006 } 3745 -enum : uint { IMAGE_SYM_TYPE_DOUBLE = 0x0007 } 3746 -enum : uint { IMAGE_SYM_TYPE_STRUCT = 0x0008 } 3747 -enum : uint { IMAGE_SYM_TYPE_UNION = 0x0009 } 3748 -enum : uint { IMAGE_SYM_TYPE_ENUM = 0x000A } 3749 -enum : uint { IMAGE_SYM_TYPE_MOE = 0x000B } 3750 -enum : uint { IMAGE_SYM_TYPE_BYTE = 0x000C } 3751 -enum : uint { IMAGE_SYM_TYPE_WORD = 0x000D } 3752 -enum : uint { IMAGE_SYM_TYPE_UINT = 0x000E } 3753 -enum : uint { IMAGE_SYM_TYPE_DWORD = 0x000F } 3754 -enum : uint { IMAGE_SYM_TYPE_PCODE = 0x8000 } 3755 - 3756 -enum : uint { IMAGE_SYM_DTYPE_NULL = 0 } 3757 -enum : uint { IMAGE_SYM_DTYPE_POINTER = 1 } 3758 -enum : uint { IMAGE_SYM_DTYPE_FUNCTION = 2 } 3759 -enum : uint { IMAGE_SYM_DTYPE_ARRAY = 3 } 3760 - 3761 -enum : BYTE { IMAGE_SYM_CLASS_END_OF_FUNCTION = cast(BYTE)-1 } 3762 -enum : uint { IMAGE_SYM_CLASS_NULL = 0x0000 } 3763 -enum : uint { IMAGE_SYM_CLASS_AUTOMATIC = 0x0001 } 3764 -enum : uint { IMAGE_SYM_CLASS_EXTERNAL = 0x0002 } 3765 -enum : uint { IMAGE_SYM_CLASS_STATIC = 0x0003 } 3766 -enum : uint { IMAGE_SYM_CLASS_REGISTER = 0x0004 } 3767 -enum : uint { IMAGE_SYM_CLASS_EXTERNAL_DEF = 0x0005 } 3768 -enum : uint { IMAGE_SYM_CLASS_LABEL = 0x0006 } 3769 -enum : uint { IMAGE_SYM_CLASS_UNDEFINED_LABEL = 0x0007 } 3770 -enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = 0x0008 } 3771 -enum : uint { IMAGE_SYM_CLASS_ARGUMENT = 0x0009 } 3772 -enum : uint { IMAGE_SYM_CLASS_STRUCT_TAG = 0x000A } 3773 -enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_UNION = 0x000B } 3774 -enum : uint { IMAGE_SYM_CLASS_UNION_TAG = 0x000C } 3775 -enum : uint { IMAGE_SYM_CLASS_TYPE_DEFINITION = 0x000D } 3776 -enum : uint { IMAGE_SYM_CLASS_UNDEFINED_STATIC = 0x000E } 3777 -enum : uint { IMAGE_SYM_CLASS_ENUM_TAG = 0x000F } 3778 -enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_ENUM = 0x0010 } 3779 -enum : uint { IMAGE_SYM_CLASS_REGISTER_PARAM = 0x0011 } 3780 -enum : uint { IMAGE_SYM_CLASS_BIT_FIELD = 0x0012 } 3781 - 3782 -enum : uint { IMAGE_SYM_CLASS_FAR_EXTERNAL = 0x0044 } 3783 - 3784 -enum : uint { IMAGE_SYM_CLASS_BLOCK = 0x0064 } 3785 -enum : uint { IMAGE_SYM_CLASS_FUNCTION = 0x0065 } 3786 -enum : uint { IMAGE_SYM_CLASS_END_OF_STRUCT = 0x0066 } 3787 -enum : uint { IMAGE_SYM_CLASS_FILE = 0x0067 } 3788 - 3789 -enum : uint { IMAGE_SYM_CLASS_SECTION = 0x0068 } 3790 -enum : uint { IMAGE_SYM_CLASS_WEAK_EXTERNAL = 0x0069 } 3791 - 3792 -enum : uint { IMAGE_SYM_CLASS_CLR_TOKEN = 0x006B } 3793 - 3794 -enum : uint { N_BTMASK = 0x000F } 3795 -enum : uint { N_TMASK = 0x0030 } 3796 -enum : uint { N_TMASK1 = 0x00C0 } 3797 -enum : uint { N_TMASK2 = 0x00F0 } 3798 -enum : uint { N_BTSHFT = 4 } 3799 -enum : uint { N_TSHIFT = 2 } 3800 - 3801 -BYTE BTYPE(BYTE x){ return x & N_BTMASK; } 3802 - 3803 -// #ifndef ISPTR 3804 -bit ISPTR(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT); } 3805 -// #endif 3806 - 3807 -// #ifndef ISFCN 3808 -bit ISFCN(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT); } 3809 -// #endif 3810 - 3811 -// #ifndef ISARY 3812 -bit ISARY(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT); } 3813 -// #endif 3814 - 3815 -// #ifndef ISTAG 3816 -bit ISTAG(uint x){ return x == IMAGE_SYM_CLASS_STRUCT_TAG || x == IMAGE_SYM_CLASS_UNION_TAG || x == IMAGE_SYM_CLASS_ENUM_TAG; } 3817 -// #endif 3818 - 3819 -// #ifndef INCREF 3820 -uint INCREF(uint x){ return ((x&~N_BTMASK)<<N_TSHIFT)|(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT)|(x&N_BTMASK); } 3821 -// #endif 3822 -// #ifndef DECREF 3823 -uint DECREF(uint x){ return ((x >>> N_TSHIFT) & ~N_BTMASK)|(x & N_BTMASK); } 3824 -// #endif 3825 - 3826 -union _IMAGE_AUX_SYMBOL { 3827 -struct { 3828 - DWORD TagIndex; 3829 -union { 3830 -struct { 3831 - WORD Linenumber; 3832 - WORD Size; 3964 + alias IMAGE_ORDINAL_FLAG32 IMAGE_ORDINAL_FLAG; 3965 + alias IMAGE_ORDINAL32 IMAGE_ORDINAL; 3966 + alias IMAGE_SNAP_BY_ORDINAL32 IMAGE_SNAP_BY_ORDINAL; 3967 + alias IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER; 3968 + alias IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS; 3969 + alias IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA; 3970 + alias IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY; 3833 3971 } 3834 3972 3835 - DWORD TotalSize; 3836 -} 3837 - 3838 -union { 3839 -struct { 3840 - DWORD PointerToLinenumber; 3841 - DWORD PointerToNextFunction; 3842 -} 3843 - 3844 -struct { 3845 - WORD Dimension[4]; 3846 -} 3847 - 3848 -} 3849 - 3850 - WORD TvIndex; 3851 -} 3852 - 3853 -struct { 3854 - BYTE Name[IMAGE_SIZEOF_SYMBOL]; 3855 -} 3856 - 3857 -struct { 3858 - DWORD Length; 3859 - WORD NumberOfRelocations; 3860 - WORD NumberOfLinenumbers; 3861 - DWORD CheckSum; 3862 - SHORT Number; 3863 - BYTE Selection; 3864 -} 3865 - 3866 -} 3867 -alias _IMAGE_AUX_SYMBOL IMAGE_AUX_SYMBOL; 3868 - 3869 -alias IMAGE_AUX_SYMBOL* PIMAGE_AUX_SYMBOL; 3870 - 3871 -enum : uint { IMAGE_SIZEOF_AUX_SYMBOL = 18 } 3872 - 3873 -alias int IMAGE_AUX_SYMBOL_TYPE; 3874 -enum { 3875 - IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1, 3876 -} 3877 - 3878 -align(2): 3879 - 3880 -struct IMAGE_AUX_SYMBOL_TOKEN_DEF { 3881 - BYTE bAuxType; 3882 - BYTE bReserved; 3883 - DWORD SymbolTableIndex; 3884 - BYTE rgbReserved[12]; 3885 -} 3886 - 3887 -alias IMAGE_AUX_SYMBOL_TOKEN_DEF* PIMAGE_AUX_SYMBOL_TOKEN_DEF; 3888 - 3889 -align: 3890 - 3891 -enum : uint { IMAGE_COMDAT_SELECT_NODUPLICATES = 1 } 3892 -enum : uint { IMAGE_COMDAT_SELECT_ANY = 2 } 3893 -enum : uint { IMAGE_COMDAT_SELECT_SAME_SIZE = 3 } 3894 -enum : uint { IMAGE_COMDAT_SELECT_EXACT_MATCH = 4 } 3895 -enum : uint { IMAGE_COMDAT_SELECT_ASSOCIATIVE = 5 } 3896 -enum : uint { IMAGE_COMDAT_SELECT_LARGEST = 6 } 3897 -enum : uint { IMAGE_COMDAT_SELECT_NEWEST = 7 } 3898 - 3899 -enum : uint { IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1 } 3900 -enum : uint { IMAGE_WEAK_EXTERN_SEARCH_LIBRARY = 2 } 3901 -enum : uint { IMAGE_WEAK_EXTERN_SEARCH_ALIAS = 3 } 3902 - 3903 -struct _IMAGE_RELOCATION { 3904 -union { 3905 - DWORD VirtualAddress; 3906 - DWORD RelocCount; 3907 -} 3908 - 3909 - DWORD SymbolTableIndex; 3910 - WORD Type; 3911 -} 3912 -alias _IMAGE_RELOCATION IMAGE_RELOCATION; 3913 - 3914 -alias IMAGE_RELOCATION* PIMAGE_RELOCATION; 3915 - 3916 -enum : uint { IMAGE_SIZEOF_RELOCATION = 10 } 3917 - 3918 -enum : uint { IMAGE_REL_I386_ABSOLUTE = 0x0000 } 3919 -enum : uint { IMAGE_REL_I386_DIR16 = 0x0001 } 3920 -enum : uint { IMAGE_REL_I386_REL16 = 0x0002 } 3921 -enum : uint { IMAGE_REL_I386_DIR32 = 0x0006 } 3922 -enum : uint { IMAGE_REL_I386_DIR32NB = 0x0007 } 3923 -enum : uint { IMAGE_REL_I386_SEG12 = 0x0009 } 3924 -enum : uint { IMAGE_REL_I386_SECTION = 0x000A } 3925 -enum : uint { IMAGE_REL_I386_SECREL = 0x000B } 3926 -enum : uint { IMAGE_REL_I386_TOKEN = 0x000C } 3927 -enum : uint { IMAGE_REL_I386_SECREL7 = 0x000D } 3928 -enum : uint { IMAGE_REL_I386_REL32 = 0x0014 } 3929 - 3930 -enum : uint { IMAGE_REL_MIPS_ABSOLUTE = 0x0000 } 3931 -enum : uint { IMAGE_REL_MIPS_REFHALF = 0x0001 } 3932 -enum : uint { IMAGE_REL_MIPS_REFWORD = 0x0002 } 3933 -enum : uint { IMAGE_REL_MIPS_JMPADDR = 0x0003 } 3934 -enum : uint { IMAGE_REL_MIPS_REFHI = 0x0004 } 3935 -enum : uint { IMAGE_REL_MIPS_REFLO = 0x0005 } 3936 -enum : uint { IMAGE_REL_MIPS_GPREL = 0x0006 } 3937 -enum : uint { IMAGE_REL_MIPS_LITERAL = 0x0007 } 3938 -enum : uint { IMAGE_REL_MIPS_SECTION = 0x000A } 3939 -enum : uint { IMAGE_REL_MIPS_SECREL = 0x000B } 3940 -enum : uint { IMAGE_REL_MIPS_SECRELLO = 0x000C } 3941 -enum : uint { IMAGE_REL_MIPS_SECRELHI = 0x000D } 3942 -enum : uint { IMAGE_REL_MIPS_TOKEN = 0x000E } 3943 -enum : uint { IMAGE_REL_MIPS_JMPADDR16 = 0x0010 } 3944 -enum : uint { IMAGE_REL_MIPS_REFWORDNB = 0x0022 } 3945 -enum : uint { IMAGE_REL_MIPS_PAIR = 0x0025 } 3946 - 3947 -enum : uint { IMAGE_REL_ALPHA_ABSOLUTE = 0x0000 } 3948 -enum : uint { IMAGE_REL_ALPHA_REFLONG = 0x0001 } 3949 -enum : uint { IMAGE_REL_ALPHA_REFQUAD = 0x0002 } 3950 -enum : uint { IMAGE_REL_ALPHA_GPREL32 = 0x0003 } 3951 -enum : uint { IMAGE_REL_ALPHA_LITERAL = 0x0004 } 3952 -enum : uint { IMAGE_REL_ALPHA_LITUSE = 0x0005 } 3953 -enum : uint { IMAGE_REL_ALPHA_GPDISP = 0x0006 } 3954 -enum : uint { IMAGE_REL_ALPHA_BRADDR = 0x0007 } 3955 -enum : uint { IMAGE_REL_ALPHA_HINT = 0x0008 } 3956 -enum : uint { IMAGE_REL_ALPHA_INLINE_REFLONG = 0x0009 } 3957 -enum : uint { IMAGE_REL_ALPHA_REFHI = 0x000A } 3958 -enum : uint { IMAGE_REL_ALPHA_REFLO = 0x000B } 3959 -enum : uint { IMAGE_REL_ALPHA_PAIR = 0x000C } 3960 -enum : uint { IMAGE_REL_ALPHA_MATCH = 0x000D } 3961 -enum : uint { IMAGE_REL_ALPHA_SECTION = 0x000E } 3962 -enum : uint { IMAGE_REL_ALPHA_SECREL = 0x000F } 3963 -enum : uint { IMAGE_REL_ALPHA_REFLONGNB = 0x0010 } 3964 -enum : uint { IMAGE_REL_ALPHA_SECRELLO = 0x0011 } 3965 -enum : uint { IMAGE_REL_ALPHA_SECRELHI = 0x0012 } 3966 -enum : uint { IMAGE_REL_ALPHA_REFQ3 = 0x0013 } 3967 -enum : uint { IMAGE_REL_ALPHA_REFQ2 = 0x0014 } 3968 -enum : uint { IMAGE_REL_ALPHA_REFQ1 = 0x0015 } 3969 -enum : uint { IMAGE_REL_ALPHA_GPRELLO = 0x0016 } 3970 -enum : uint { IMAGE_REL_ALPHA_GPRELHI = 0x0017 } 3971 - 3972 -enum : uint { IMAGE_REL_PPC_ABSOLUTE = 0x0000 } 3973 -enum : uint { IMAGE_REL_PPC_ADDR64 = 0x0001 } 3974 -enum : uint { IMAGE_REL_PPC_ADDR32 = 0x0002 } 3975 -enum : uint { IMAGE_REL_PPC_ADDR24 = 0x0003 } 3976 -enum : uint { IMAGE_REL_PPC_ADDR16 = 0x0004 } 3977 -enum : uint { IMAGE_REL_PPC_ADDR14 = 0x0005 } 3978 -enum : uint { IMAGE_REL_PPC_REL24 = 0x0006 } 3979 -enum : uint { IMAGE_REL_PPC_REL14 = 0x0007 } 3980 -enum : uint { IMAGE_REL_PPC_TOCREL16 = 0x0008 } 3981 -enum : uint { IMAGE_REL_PPC_TOCREL14 = 0x0009 } 3982 - 3983 -enum : uint { IMAGE_REL_PPC_ADDR32NB = 0x000A } 3984 -enum : uint { IMAGE_REL_PPC_SECREL = 0x000B } 3985 -enum : uint { IMAGE_REL_PPC_SECTION = 0x000C } 3986 -enum : uint { IMAGE_REL_PPC_IFGLUE = 0x000D } 3987 -enum : uint { IMAGE_REL_PPC_IMGLUE = 0x000E } 3988 -enum : uint { IMAGE_REL_PPC_SECREL16 = 0x000F } 3989 -enum : uint { IMAGE_REL_PPC_REFHI = 0x0010 } 3990 -enum : uint { IMAGE_REL_PPC_REFLO = 0x0011 } 3991 -enum : uint { IMAGE_REL_PPC_PAIR = 0x0012 } 3992 -enum : uint { IMAGE_REL_PPC_SECRELLO = 0x0013 } 3993 -enum : uint { IMAGE_REL_PPC_SECRELHI = 0x0014 } 3994 -enum : uint { IMAGE_REL_PPC_GPREL = 0x0015 } 3995 -enum : uint { IMAGE_REL_PPC_TOKEN = 0x0016 } 3996 - 3997 -enum : uint { IMAGE_REL_PPC_TYPEMASK = 0x00FF } 3998 - 3999 -enum : uint { IMAGE_REL_PPC_NEG = 0x0100 } 4000 -enum : uint { IMAGE_REL_PPC_BRTAKEN = 0x0200 } 4001 -enum : uint { IMAGE_REL_PPC_BRNTAKEN = 0x0400 } 4002 -enum : uint { IMAGE_REL_PPC_TOCDEFN = 0x0800 } 4003 - 4004 -enum : uint { IMAGE_REL_SH3_ABSOLUTE = 0x0000 } 4005 -enum : uint { IMAGE_REL_SH3_DIRECT16 = 0x0001 } 4006 -enum : uint { IMAGE_REL_SH3_DIRECT32 = 0x0002 } 4007 -enum : uint { IMAGE_REL_SH3_DIRECT8 = 0x0003 } 4008 -enum : uint { IMAGE_REL_SH3_DIRECT8_WORD = 0x0004 } 4009 -enum : uint { IMAGE_REL_SH3_DIRECT8_LONG = 0x0005 } 4010 -enum : uint { IMAGE_REL_SH3_DIRECT4 = 0x0006 } 4011 -enum : uint { IMAGE_REL_SH3_DIRECT4_WORD = 0x0007 } 4012 -enum : uint { IMAGE_REL_SH3_DIRECT4_LONG = 0x0008 } 4013 -enum : uint { IMAGE_REL_SH3_PCREL8_WORD = 0x0009 } 4014 -enum : uint { IMAGE_REL_SH3_PCREL8_LONG = 0x000A } 4015 -enum : uint { IMAGE_REL_SH3_PCREL12_WORD = 0x000B } 4016 -enum : uint { IMAGE_REL_SH3_STARTOF_SECTION = 0x000C } 4017 -enum : uint { IMAGE_REL_SH3_SIZEOF_SECTION = 0x000D } 4018 -enum : uint { IMAGE_REL_SH3_SECTION = 0x000E } 4019 -enum : uint { IMAGE_REL_SH3_SECREL = 0x000F } 4020 -enum : uint { IMAGE_REL_SH3_DIRECT32_NB = 0x0010 } 4021 -enum : uint { IMAGE_REL_SH3_GPREL4_LONG = 0x0011 } 4022 -enum : uint { IMAGE_REL_SH3_TOKEN = 0x0012 } 4023 - 4024 -enum : uint { IMAGE_REL_ARM_ABSOLUTE = 0x0000 } 4025 -enum : uint { IMAGE_REL_ARM_ADDR32 = 0x0001 } 4026 -enum : uint { IMAGE_REL_ARM_ADDR32NB = 0x0002 } 4027 -enum : uint { IMAGE_REL_ARM_BRANCH24 = 0x0003 } 4028 -enum : uint { IMAGE_REL_ARM_BRANCH11 = 0x0004 } 4029 -enum : uint { IMAGE_REL_ARM_TOKEN = 0x0005 } 4030 -enum : uint { IMAGE_REL_ARM_GPREL12 = 0x0006 } 4031 -enum : uint { IMAGE_REL_ARM_GPREL7 = 0x0007 } 4032 -enum : uint { IMAGE_REL_ARM_BLX24 = 0x0008 } 4033 -enum : uint { IMAGE_REL_ARM_BLX11 = 0x0009 } 4034 -enum : uint { IMAGE_REL_ARM_SECTION = 0x000E } 4035 -enum : uint { IMAGE_REL_ARM_SECREL = 0x000F } 4036 - 4037 -enum : uint { IMAGE_REL_AM_ABSOLUTE = 0x0000 } 4038 -enum : uint { IMAGE_REL_AM_ADDR32 = 0x0001 } 4039 -enum : uint { IMAGE_REL_AM_ADDR32NB = 0x0002 } 4040 -enum : uint { IMAGE_REL_AM_CALL32 = 0x0003 } 4041 -enum : uint { IMAGE_REL_AM_FUNCINFO = 0x0004 } 4042 -enum : uint { IMAGE_REL_AM_REL32_1 = 0x0005 } 4043 -enum : uint { IMAGE_REL_AM_REL32_2 = 0x0006 } 4044 -enum : uint { IMAGE_REL_AM_SECREL = 0x0007 } 4045 -enum : uint { IMAGE_REL_AM_SECTION = 0x0008 } 4046 -enum : uint { IMAGE_REL_AM_TOKEN = 0x0009 } 4047 - 4048 -enum : uint { IMAGE_REL_AMD64_ABSOLUTE = 0x0000 } 4049 -enum : uint { IMAGE_REL_AMD64_ADDR64 = 0x0001 } 4050 -enum : uint { IMAGE_REL_AMD64_ADDR32 = 0x0002 } 4051 -enum : uint { IMAGE_REL_AMD64_ADDR32NB = 0x0003 } 4052 -enum : uint { IMAGE_REL_AMD64_REL32 = 0x0004 } 4053 -enum : uint { IMAGE_REL_AMD64_REL32_1 = 0x0005 } 4054 -enum : uint { IMAGE_REL_AMD64_REL32_2 = 0x0006 } 4055 -enum : uint { IMAGE_REL_AMD64_REL32_3 = 0x0007 } 4056 -enum : uint { IMAGE_REL_AMD64_REL32_4 = 0x0008 } 4057 -enum : uint { IMAGE_REL_AMD64_REL32_5 = 0x0009 } 4058 -enum : uint { IMAGE_REL_AMD64_SECTION = 0x000A } 4059 -enum : uint { IMAGE_REL_AMD64_SECREL = 0x000B } 4060 -enum : uint { IMAGE_REL_AMD64_SECREL7 = 0x000C } 4061 -enum : uint { IMAGE_REL_AMD64_TOKEN = 0x000D } 4062 - 4063 -enum : uint { IMAGE_REL_IA64_ABSOLUTE = 0x0000 } 4064 -enum : uint { IMAGE_REL_IA64_IMM14 = 0x0001 } 4065 -enum : uint { IMAGE_REL_IA64_IMM22 = 0x0002 } 4066 -enum : uint { IMAGE_REL_IA64_IMM64 = 0x0003 } 4067 -enum : uint { IMAGE_REL_IA64_DIR32 = 0x0004 } 4068 -enum : uint { IMAGE_REL_IA64_DIR64 = 0x0005 } 4069 -enum : uint { IMAGE_REL_IA64_PCREL21B = 0x0006 } 4070 -enum : uint { IMAGE_REL_IA64_PCREL21M = 0x0007 } 4071 -enum : uint { IMAGE_REL_IA64_PCREL21F = 0x0008 } 4072 -enum : uint { IMAGE_REL_IA64_GPREL22 = 0x0009 } 4073 -enum : uint { IMAGE_REL_IA64_LTOFF22 = 0x000A } 4074 -enum : uint { IMAGE_REL_IA64_SECTION = 0x000B } 4075 -enum : uint { IMAGE_REL_IA64_SECREL22 = 0x000C } 4076 -enum : uint { IMAGE_REL_IA64_SECREL64I = 0x000D } 4077 -enum : uint { IMAGE_REL_IA64_SECREL32 = 0x000E } 4078 - 4079 -enum : uint { IMAGE_REL_IA64_DIR32NB = 0x0010 } 4080 -enum : uint { IMAGE_REL_IA64_SREL14 = 0x0011 } 4081 -enum : uint { IMAGE_REL_IA64_SREL22 = 0x0012 } 4082 -enum : uint { IMAGE_REL_IA64_SREL32 = 0x0013 } 4083 -enum : uint { IMAGE_REL_IA64_UREL32 = 0x0014 } 4084 -enum : uint { IMAGE_REL_IA64_PCREL60X = 0x0015 } 4085 -enum : uint { IMAGE_REL_IA64_PCREL60B = 0x0016 } 4086 -enum : uint { IMAGE_REL_IA64_PCREL60F = 0x0017 } 4087 -enum : uint { IMAGE_REL_IA64_PCREL60I = 0x0018 } 4088 -enum : uint { IMAGE_REL_IA64_PCREL60M = 0x0019 } 4089 -enum : uint { IMAGE_REL_IA64_IMMGPREL64 = 0x001A } 4090 -enum : uint { IMAGE_REL_IA64_TOKEN = 0x001B } 4091 -enum : uint { IMAGE_REL_IA64_GPREL32 = 0x001C } 4092 -enum : uint { IMAGE_REL_IA64_ADDEND = 0x001F } 4093 - 4094 -enum : uint { IMAGE_REL_CEF_ABSOLUTE = 0x0000 } 4095 -enum : uint { IMAGE_REL_CEF_ADDR32 = 0x0001 } 4096 -enum : uint { IMAGE_REL_CEF_ADDR64 = 0x0002 } 4097 -enum : uint { IMAGE_REL_CEF_ADDR32NB = 0x0003 } 4098 -enum : uint { IMAGE_REL_CEF_SECTION = 0x0004 } 4099 -enum : uint { IMAGE_REL_CEF_SECREL = 0x0005 } 4100 -enum : uint { IMAGE_REL_CEF_TOKEN = 0x0006 } 4101 - 4102 -enum : uint { IMAGE_REL_CEE_ABSOLUTE = 0x0000 } 4103 -enum : uint { IMAGE_REL_CEE_ADDR32 = 0x0001 } 4104 -enum : uint { IMAGE_REL_CEE_ADDR64 = 0x0002 } 4105 -enum : uint { IMAGE_REL_CEE_ADDR32NB = 0x0003 } 4106 -enum : uint { IMAGE_REL_CEE_SECTION = 0x0004 } 4107 -enum : uint { IMAGE_REL_CEE_SECREL = 0x0005 } 4108 -enum : uint { IMAGE_REL_CEE_TOKEN = 0x0006 } 4109 - 4110 -enum : uint { IMAGE_REL_M32R_ABSOLUTE = 0x0000 } 4111 -enum : uint { IMAGE_REL_M32R_ADDR32 = 0x0001 } 4112 -enum : uint { IMAGE_REL_M32R_ADDR32NB = 0x0002 } 4113 -enum : uint { IMAGE_REL_M32R_ADDR24 = 0x0003 } 4114 -enum : uint { IMAGE_REL_M32R_GPREL16 = 0x0004 } 4115 -enum : uint { IMAGE_REL_M32R_PCREL24 = 0x0005 } 4116 -enum : uint { IMAGE_REL_M32R_PCREL16 = 0x0006 } 4117 -enum : uint { IMAGE_REL_M32R_PCREL8 = 0x0007 } 4118 -enum : uint { IMAGE_REL_M32R_REFHALF = 0x0008 } 4119 -enum : uint { IMAGE_REL_M32R_REFHI = 0x0009 } 4120 -enum : uint { IMAGE_REL_M32R_REFLO = 0x000A } 4121 -enum : uint { IMAGE_REL_M32R_PAIR = 0x000B } 4122 -enum : uint { IMAGE_REL_M32R_SECTION = 0x000C } 4123 -enum : uint { IMAGE_REL_M32R_SECREL32 = 0x000D } 4124 -enum : uint { IMAGE_REL_M32R_TOKEN = 0x000E } 3973 +alias IMAGE_OPTIONAL_HEADER* PIMAGE_OPTIONAL_HEADER; 3974 +alias IMAGE_NT_HEADERS* PIMAGE_NT_HEADERS; 3975 +alias IMAGE_THUNK_DATA* PIMAGE_THUNK_DATA; 3976 +alias IMAGE_TLS_DIRECTORY* PIMAGE_TLS_DIRECTORY; 4125 3977 4126 -// #define EXT_IMM64(Value, Address, Size, InstPos, ValPos) Value |= (((ULONGLONG)((*(Address) >> InstPos) & (((ULONGLONG)1 << Size) - 1))) << ValPos) 4127 - 4128 -// #define INS_IMM64(Value, Address, Size, InstPos, ValPos) *(PDWORD)Address = (*(PDWORD)Address & ~(((1 << Size) - 1) << InstPos)) | ((DWORD)((((ULONGLONG)Value >> ValPos) & (((ULONGLONG)1 << Size) - 1))) << InstPos) 4129 - 4130 -enum : uint { EMARCH_ENC_I17_IMM7B_INST_WORD_X = 3 } 4131 -enum : uint { EMARCH_ENC_I17_IMM7B_SIZE_X = 7 } 4132 -enum : uint { EMARCH_ENC_I17_IMM7B_INST_WORD_POS_X = 4 } 4133 -enum : uint { EMARCH_ENC_I17_IMM7B_VAL_POS_X = 0 } 4134 - 4135 -enum : uint { EMARCH_ENC_I17_IMM9D_INST_WORD_X = 3 } 4136 -enum : uint { EMARCH_ENC_I17_IMM9D_SIZE_X = 9 } 4137 -enum : uint { EMARCH_ENC_I17_IMM9D_INST_WORD_POS_X = 18 } 4138 -enum : uint { EMARCH_ENC_I17_IMM9D_VAL_POS_X = 7 } 4139 - 4140 -enum : uint { EMARCH_ENC_I17_IMM5C_INST_WORD_X = 3 } 4141 -enum : uint { EMARCH_ENC_I17_IMM5C_SIZE_X = 5 } 4142 -enum : uint { EMARCH_ENC_I17_IMM5C_INST_WORD_POS_X = 13 } 4143 -enum : uint { EMARCH_ENC_I17_IMM5C_VAL_POS_X = 16 } 4144 - 4145 -enum : uint { EMARCH_ENC_I17_IC_INST_WORD_X = 3 } 4146 -enum : uint { EMARCH_ENC_I17_IC_SIZE_X = 1 } 4147 -enum : uint { EMARCH_ENC_I17_IC_INST_WORD_POS_X = 12 } 4148 -enum : uint { EMARCH_ENC_I17_IC_VAL_POS_X = 21 } 4149 - 4150 -enum : uint { EMARCH_ENC_I17_IMM41a_INST_WORD_X = 1 } 4151 -enum : uint { EMARCH_ENC_I17_IMM41a_SIZE_X = 10 } 4152 -enum : uint { EMARCH_ENC_I17_IMM41a_INST_WORD_POS_X = 14 } 4153 -enum : uint { EMARCH_ENC_I17_IMM41a_VAL_POS_X = 22 } 4154 - 4155 -enum : uint { EMARCH_ENC_I17_IMM41b_INST_WORD_X = 1 } 4156 -enum : uint { EMARCH_ENC_I17_IMM41b_SIZE_X = 8 } 4157 -enum : uint { EMARCH_ENC_I17_IMM41b_INST_WORD_POS_X = 24 } 4158 -enum : uint { EMARCH_ENC_I17_IMM41b_VAL_POS_X = 32 } 4159 - 4160 -enum : uint { EMARCH_ENC_I17_IMM41c_INST_WORD_X = 2 } 4161 -enum : uint { EMARCH_ENC_I17_IMM41c_SIZE_X = 23 } 4162 -enum : uint { EMARCH_ENC_I17_IMM41c_INST_WORD_POS_X = 0 } 4163 -enum : uint { EMARCH_ENC_I17_IMM41c_VAL_POS_X = 40 } 4164 - 4165 -enum : uint { EMARCH_ENC_I17_SIGN_INST_WORD_X = 3 } 4166 -enum : uint { EMARCH_ENC_I17_SIGN_SIZE_X = 1 } 4167 -enum : uint { EMARCH_ENC_I17_SIGN_INST_WORD_POS_X = 27 } 4168 -enum : uint { EMARCH_ENC_I17_SIGN_VAL_POS_X = 63 } 4169 - 4170 -struct _IMAGE_LINENUMBER { 4171 -union { 4172 - DWORD SymbolTableIndex; 4173 - DWORD VirtualAddress; 4174 -} 4175 - 4176 - WORD Linenumber; 4177 -} 4178 -alias _IMAGE_LINENUMBER IMAGE_LINENUMBER; 4179 - 4180 -alias IMAGE_LINENUMBER* PIMAGE_LINENUMBER; 4181 - 4182 -enum : uint { IMAGE_SIZEOF_LINENUMBER = 6 } 4183 - 4184 -// #ifndef _MAC 4185 -align: 4186 -// #endif 4187 - 4188 -struct _IMAGE_BASE_RELOCATION { 4189 - DWORD VirtualAddress; 4190 - DWORD SizeOfBlock; 4191 -} 4192 -alias _IMAGE_BASE_RELOCATION IMAGE_BASE_RELOCATION; 4193 - 4194 -alias IMAGE_BASE_RELOCATION* PIMAGE_BASE_RELOCATION; 4195 - 4196 -enum : uint { IMAGE_SIZEOF_BASE_RELOCATION = 8 } 4197 - 4198 -enum : uint { IMAGE_REL_BASED_ABSOLUTE = 0 } 4199 -enum : uint { IMAGE_REL_BASED_HIGH = 1 } 4200 -enum : uint { IMAGE_REL_BASED_LOW = 2 } 4201 -enum : uint { IMAGE_REL_BASED_HIGHLOW = 3 } 4202 -enum : uint { IMAGE_REL_BASED_HIGHADJ = 4 } 4203 -enum : uint { IMAGE_REL_BASED_MIPS_JMPADDR = 5 } 4204 -enum : uint { IMAGE_REL_BASED_MIPS_JMPADDR16 = 9 } 4205 -enum : uint { IMAGE_REL_BASED_IA64_IMM64 = 9 } 4206 -enum : uint { IMAGE_REL_BASED_DIR64 = 10 } 4207 - 4208 -enum : uint { IMAGE_ARCHIVE_START_SIZE = 8 } 4209 -const char[] IMAGE_ARCHIVE_START = "!<arch>\n"; 4210 -const char[] IMAGE_ARCHIVE_END = "`\n"; 4211 -const char[] IMAGE_ARCHIVE_PAD = "\n"; 4212 -const char[] IMAGE_ARCHIVE_LINKER_MEMBER = "/ "; 4213 -const char[] IMAGE_ARCHIVE_LONGNAMES_MEMBER = "// "; 4214 - 4215 -struct _IMAGE_ARCHIVE_MEMBER_HEADER { 4216 - BYTE Name[16]; 4217 - BYTE Date[12]; 4218 - BYTE UserID[6]; 4219 - BYTE GroupID[6]; 4220 - BYTE Mode[8]; 4221 - BYTE Size[10]; 4222 - BYTE EndHeader[2]; 4223 -} 4224 -alias _IMAGE_ARCHIVE_MEMBER_HEADER IMAGE_ARCHIVE_MEMBER_HEADER; 4225 -alias _IMAGE_ARCHIVE_MEMBER_HEADER* PIMAGE_ARCHIVE_MEMBER_HEADER; 4226 - 4227 -enum : uint { IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60 } 4228 - 4229 -struct _IMAGE_EXPORT_DIRECTORY { 4230 - DWORD Characteristics; 4231 - DWORD TimeDateStamp; 4232 - WORD MajorVersion; 4233 - WORD MinorVersion; 4234 - DWORD Name; 4235 - DWORD Base; 4236 - DWORD NumberOfFunctions; 4237 - DWORD NumberOfNames; 4238 - DWORD AddressOfFunctions; 4239 - DWORD AddressOfNames; 4240 - DWORD AddressOfNameOrdinals; 4241 -} 4242 -alias _IMAGE_EXPORT_DIRECTORY IMAGE_EXPORT_DIRECTORY; 4243 -alias _IMAGE_EXPORT_DIRECTORY* PIMAGE_EXPORT_DIRECTORY; 4244 - 4245 -struct _IMAGE_IMPORT_BY_NAME { 4246 - WORD Hint; 4247 - BYTE Name[1]; 4248 -} 4249 -alias _IMAGE_IMPORT_BY_NAME IMAGE_IMPORT_BY_NAME; 4250 -alias _IMAGE_IMPORT_BY_NAME* PIMAGE_IMPORT_BY_NAME; 4251 - 4252 -align(8): 4253 - 4254 -struct _IMAGE_THUNK_DATA64 { 4255 -union { 4256 - ULONGLONG ForwarderString; 4257 - ULONGLONG Function; 4258 - ULONGLONG Ordinal; 4259 - ULONGLONG AddressOfData; 4260 -} 4261 - 4262 -} 4263 -alias _IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA64; 4264 - 4265 -alias IMAGE_THUNK_DATA64* PIMAGE_THUNK_DATA64; 4266 - 4267 -align: 4268 - 4269 -struct _IMAGE_THUNK_DATA32 { 4270 -union { 4271 - DWORD ForwarderString; 4272 - DWORD Function; 4273 - DWORD Ordinal; 4274 - DWORD AddressOfData; 4275 -} 4276 - 4277 -} 4278 -alias _IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA32; 4279 - 4280 -alias IMAGE_THUNK_DATA32* PIMAGE_THUNK_DATA32; 4281 - 4282 -const ulong IMAGE_ORDINAL_FLAG64 = 0x8000000000000000; 4283 -enum : uint { IMAGE_ORDINAL_FLAG32 = 0x80000000 } 4284 -ulong IMAGE_ORDINAL64(ulong Ordinal){ return Ordinal & 0xffff; } 4285 -uint IMAGE_ORDINAL32(uint Ordinal){ return Ordinal & 0xffff; } 4286 -bit IMAGE_SNAP_BY_ORDINAL64(ulong Ordinal){ return (Ordinal & IMAGE_ORDINAL_FLAG64) != 0; } 4287 -bit IMAGE_SNAP_BY_ORDINAL32(uint Ordinal){ return (Ordinal & IMAGE_ORDINAL_FLAG32) != 0; } 4288 - 4289 -extern(Windows) alias VOID function( PVOID DllHandle, DWORD Reason, PVOID Reserved ) PIMAGE_TLS_CALLBACK; 4290 - 4291 -struct _IMAGE_TLS_DIRECTORY64 { 4292 - ULONGLONG StartAddressOfRawData; 4293 - ULONGLONG EndAddressOfRawData; 4294 - ULONGLONG AddressOfIndex; 4295 - ULONGLONG AddressOfCallBacks; 4296 - DWORD SizeOfZeroFill; 4297 - DWORD Characteristics; 4298 -} 4299 -alias _IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY64; 4300 - 4301 -alias IMAGE_TLS_DIRECTORY64* PIMAGE_TLS_DIRECTORY64; 4302 - 4303 -struct _IMAGE_TLS_DIRECTORY32 { 4304 - DWORD StartAddressOfRawData; 4305 - DWORD EndAddressOfRawData; 4306 - DWORD AddressOfIndex; 4307 - DWORD AddressOfCallBacks; 4308 - DWORD SizeOfZeroFill; 4309 - DWORD Characteristics; 4310 -} 4311 -alias _IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY32; 4312 - 4313 -alias IMAGE_TLS_DIRECTORY32* PIMAGE_TLS_DIRECTORY32; 4314 - 4315 -// #ifdef _WIN64 4316 -// #... 4317 -// #... 4318 -// ... 4319 -// #... 4320 -// ... 4321 -// #else 4322 -alias IMAGE_ORDINAL_FLAG32 IMAGE_ORDINAL_FLAG; 4323 -alias IMAGE_ORDINAL32 IMAGE_ORDINAL; 4324 -alias IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA; 4325 -alias PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA; 4326 -alias IMAGE_SNAP_BY_ORDINAL32 IMAGE_SNAP_BY_ORDINAL; 4327 -alias IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY; 4328 -alias PIMAGE_TLS_DIRECTORY32 PIMAGE_TLS_DIRECTORY; 4329 -// #endif 4330 - 4331 -struct _IMAGE_IMPORT_DESCRIPTOR { 4332 -union { 4333 - DWORD Characteristics; 4334 - DWORD OriginalFirstThunk; 4335 -} 4336 - 4337 - DWORD TimeDateStamp; 4338 - 4339 - DWORD ForwarderChain; 4340 - DWORD Name; 4341 - DWORD FirstThunk; 4342 -} 4343 -alias _IMAGE_IMPORT_DESCRIPTOR IMAGE_IMPORT_DESCRIPTOR; 4344 - 4345 -alias IMAGE_IMPORT_DESCRIPTOR* PIMAGE_IMPORT_DESCRIPTOR; 4346 - 4347 -struct _IMAGE_BOUND_IMPORT_DESCRIPTOR { 4348 - DWORD TimeDateStamp; 4349 - WORD OffsetModuleName; 4350 - WORD NumberOfModuleForwarderRefs; 4351 -} 4352 -alias _IMAGE_BOUND_IMPORT_DESCRIPTOR IMAGE_BOUND_IMPORT_DESCRIPTOR; 4353 -alias _IMAGE_BOUND_IMPORT_DESCRIPTOR* PIMAGE_BOUND_IMPORT_DESCRIPTOR; 4354 - 4355 -struct _IMAGE_BOUND_FORWARDER_REF { 4356 - DWORD TimeDateStamp; 4357 - WORD OffsetModuleName; 4358 - WORD Reserved; 4359 -} 4360 -alias _IMAGE_BOUND_FORWARDER_REF IMAGE_BOUND_FORWARDER_REF; 4361 -alias _IMAGE_BOUND_FORWARDER_REF* PIMAGE_BOUND_FORWARDER_REF; 4362 - 4363 -struct _IMAGE_RESOURCE_DIRECTORY { 4364 - DWORD Characteristics; 4365 - DWORD TimeDateStamp; 4366 - WORD MajorVersion; 4367 - WORD MinorVersion; 4368 - WORD NumberOfNamedEntries; 4369 - WORD NumberOfIdEntries; 4370 -} 4371 -alias _IMAGE_RESOURCE_DIRECTORY IMAGE_RESOURCE_DIRECTORY; 4372 -alias _IMAGE_RESOURCE_DIRECTORY* PIMAGE_RESOURCE_DIRECTORY; 4373 - 4374 -enum : uint { IMAGE_RESOURCE_NAME_IS_STRING = 0x80000000 } 4375 -enum : uint { IMAGE_RESOURCE_DATA_IS_DIRECTORY = 0x80000000 } 4376 - 4377 -struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { 4378 -union { 4379 -struct { 4380 -// DWORD NameOffset:31; 4381 -// DWORD NameIsString:1; 4382 -} 4383 - 4384 - DWORD Name; 4385 - WORD Id; 4386 -} 4387 - 4388 -union { 4389 - DWORD OffsetToData; 4390 -struct { 4391 -// DWORD OffsetToDirectory:31; 4392 -// DWORD DataIsDirectory:1; 4393 -} 4394 - 4395 -} 4396 - 4397 -} 4398 -alias _IMAGE_RESOURCE_DIRECTORY_ENTRY IMAGE_RESOURCE_DIRECTORY_ENTRY; 4399 -alias _IMAGE_RESOURCE_DIRECTORY_ENTRY* PIMAGE_RESOURCE_DIRECTORY_ENTRY; 4400 - 4401 -struct _IMAGE_RESOURCE_DIRECTORY_STRING { 4402 - WORD Length; 4403 - CHAR NameString[ 1 ]; 4404 -} 4405 -alias _IMAGE_RESOURCE_DIRECTORY_STRING IMAGE_RESOURCE_DIRECTORY_STRING; 4406 -alias _IMAGE_RESOURCE_DIRECTORY_STRING* PIMAGE_RESOURCE_DIRECTORY_STRING; 4407 - 4408 -struct _IMAGE_RESOURCE_DIR_STRING_U { 4409 - WORD Length; 4410 - WCHAR NameString[ 1 ]; 4411 -} 4412 -alias _IMAGE_RESOURCE_DIR_STRING_U IMAGE_RESOURCE_DIR_STRING_U; 4413 -alias _IMAGE_RESOURCE_DIR_STRING_U* PIMAGE_RESOURCE_DIR_STRING_U; 4414 - 4415 -struct _IMAGE_RESOURCE_DATA_ENTRY { 4416 - DWORD OffsetToData; 4417 - DWORD Size; 4418 - DWORD CodePage; 4419 - DWORD Reserved; 4420 -} 4421 -alias _IMAGE_RESOURCE_DATA_ENTRY IMAGE_RESOURCE_DATA_ENTRY; 4422 -alias _IMAGE_RESOURCE_DATA_ENTRY* PIMAGE_RESOURCE_DATA_ENTRY; 4423 - 4424 -struct _12 { 4425 - DWORD Characteristics; 4426 - DWORD TimeDateStamp; 4427 - WORD MajorVersion; 4428 - WORD MinorVersion; 4429 - DWORD GlobalFlagsClear; 4430 - DWORD GlobalFlagsSet; 4431 - DWORD CriticalSectionDefaultTimeout; 4432 - DWORD DeCommitFreeBlockThreshold; 4433 - DWORD DeCommitTotalFreeThreshold; 4434 - DWORD LockPrefixTable; 4435 - DWORD MaximumAllocationSize; 4436 - DWORD VirtualMemoryThreshold; 4437 - DWORD ProcessHeapFlags; 4438 - DWORD ProcessAffinityMask; 4439 - WORD CSDVersion; 4440 - WORD Reserved1; 4441 - DWORD EditList; 4442 - DWORD Reserved[ 1 ]; 4443 -} 4444 -alias _12 IMAGE_LOAD_CONFIG_DIRECTORY32; 4445 -alias _12* PIMAGE_LOAD_CONFIG_DIRECTORY32; 4446 - 4447 -struct _13 { 4448 - DWORD Characteristics; 4449 - DWORD TimeDateStamp; 4450 - WORD MajorVersion; 4451 - WORD MinorVersion; 4452 - DWORD GlobalFlagsClear; 4453 - DWORD GlobalFlagsSet; 4454 - DWORD CriticalSectionDefaultTimeout; 4455 - ULONGLONG DeCommitFreeBlockThreshold; 4456 - ULONGLONG DeCommitTotalFreeThreshold; 4457 - ULONGLONG LockPrefixTable; 4458 - ULONGLONG MaximumAllocationSize; 4459 - ULONGLONG VirtualMemoryThreshold; 4460 - ULONGLONG ProcessAffinityMask; 4461 - DWORD ProcessHeapFlags; 4462 - WORD CSDVersion; 4463 - WORD Reserved1; 4464 - ULONGLONG EditList; 4465 - DWORD Reserved[ 2 ]; 4466 -} 4467 -alias _13 IMAGE_LOAD_CONFIG_DIRECTORY64; 4468 -alias _13* PIMAGE_LOAD_CONFIG_DIRECTORY64; 4469 - 4470 -// #ifdef _WIN64 4471 -// ... 4472 -// #else 4473 -alias IMAGE_LOAD_CONFIG_DIRECTORY32 IMAGE_LOAD_CONFIG_DIRECTORY; 4474 -alias PIMAGE_LOAD_CONFIG_DIRECTORY32 PIMAGE_LOAD_CONFIG_DIRECTORY; 4475 -// #endif 4476 - 4477 -struct _IMAGE_CE_RUNTIME_FUNCTION_ENTRY { 4478 - DWORD FuncStart; 4479 -// DWORD PrologLen : 8; 4480 -// DWORD FuncLen : 22; 4481 -// DWORD ThirtyTwoBit : 1; 4482 -// DWORD ExceptionFlag : 1; 4483 -} 4484 -alias _IMAGE_CE_RUNTIME_FUNCTION_ENTRY IMAGE_CE_RUNTIME_FUNCTION_ENTRY; 4485 -alias _IMAGE_CE_RUNTIME_FUNCTION_ENTRY* PIMAGE_CE_RUNTIME_FUNCTION_ENTRY; 4486 - 4487 -struct _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY { 4488 - ULONGLONG BeginAddress; 4489 - ULONGLONG EndAddress; 4490 - ULONGLONG ExceptionHandler; 4491 - ULONGLONG HandlerData; 4492 - ULONGLONG PrologEndAddress; 4493 -} 4494 -alias _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY; 4495 -alias _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY* PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY; 4496 - 4497 -struct _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY { 4498 - DWORD BeginAddress; 4499 - DWORD EndAddress; 4500 - DWORD ExceptionHandler; 4501 - DWORD HandlerData; 4502 - DWORD PrologEndAddress; 4503 -} 4504 -alias _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY; 4505 -alias _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY* PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY; 4506 - 4507 -struct _IMAGE_RUNTIME_FUNCTION_ENTRY { 4508 - DWORD BeginAddress; 4509 - DWORD EndAddress; 4510 - DWORD UnwindInfoAddress; 4511 -} 4512 -alias _IMAGE_RUNTIME_FUNCTION_ENTRY* _PIMAGE_RUNTIME_FUNCTION_ENTRY; 4513 - 4514 -alias _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_IA64_RUNTIME_FUNCTION_ENTRY; 4515 -alias _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY; 4516 - 4517 -// #if defined(_AXP64_) 4518 - 4519 -// ... 4520 - 4521 -// #elif defined(_ALPHA_) 4522 - 4523 -// ... 4524 - 4525 -// #else 4526 - 4527 -alias _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY; 4528 -alias _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY; 4529 - 4530 -// #endif 4531 - 4532 -struct _IMAGE_DEBUG_DIRECTORY { 4533 - DWORD Characteristics; 4534 - DWORD TimeDateStamp; 4535 - WORD MajorVersion; 4536 - WORD MinorVersion; 4537 - DWORD Type; 4538 - DWORD SizeOfData; 4539 - DWORD AddressOfRawData; 4540 - DWORD PointerToRawData; 4541 -} 4542 -alias _IMAGE_DEBUG_DIRECTORY IMAGE_DEBUG_DIRECTORY; 4543 -alias _IMAGE_DEBUG_DIRECTORY* PIMAGE_DEBUG_DIRECTORY; 4544 - 4545 -enum : uint { IMAGE_DEBUG_TYPE_UNKNOWN = 0 } 4546 -enum : uint { IMAGE_DEBUG_TYPE_COFF = 1 } 4547 -enum : uint { IMAGE_DEBUG_TYPE_CODEVIEW = 2 } 4548 -enum : uint { IMAGE_DEBUG_TYPE_FPO = 3 } 4549 -enum : uint { IMAGE_DEBUG_TYPE_MISC = 4 } 4550 -enum : uint { IMAGE_DEBUG_TYPE_EXCEPTION = 5 } 4551 -enum : uint { IMAGE_DEBUG_TYPE_FIXUP = 6 } 4552 -enum : uint { IMAGE_DEBUG_TYPE_OMAP_TO_SRC = 7 } 4553 -enum : uint { IMAGE_DEBUG_TYPE_OMAP_FROM_SRC = 8 } 4554 -enum : uint { IMAGE_DEBUG_TYPE_BORLAND = 9 } 4555 -enum : uint { IMAGE_DEBUG_TYPE_RESERVED10 = 10 } 4556 -enum : uint { IMAGE_DEBUG_TYPE_CLSID = 11 } 4557 - 4558 -struct _IMAGE_COFF_SYMBOLS_HEADER { 4559 - DWORD NumberOfSymbols; 4560 - DWORD LvaToFirstSymbol; 4561 - DWORD NumberOfLinenumbers; 4562 - DWORD LvaToFirstLinenumber; 4563 - DWORD RvaToFirstByteOfCode; 4564 - DWORD RvaToLastByteOfCode; 4565 - DWORD RvaToFirstByteOfData; 4566 - DWORD RvaToLastByteOfData; 4567 -} 4568 -alias _IMAGE_COFF_SYMBOLS_HEADER IMAGE_COFF_SYMBOLS_HEADER; 4569 -alias _IMAGE_COFF_SYMBOLS_HEADER* PIMAGE_COFF_SYMBOLS_HEADER; 4570 - 4571 -enum : uint { FRAME_FPO = 0 } 4572 -enum : uint { FRAME_TRAP = 1 } 4573 -enum : uint { FRAME_TSS = 2 } 4574 -enum : uint { FRAME_NONFPO = 3 } 4575 - 4576 -struct _FPO_DATA { 4577 - DWORD ulOffStart; 4578 - DWORD cbProcSize; 4579 - DWORD cdwLocals; 4580 - WORD cdwParams; 4581 -// WORD cbProlog : 8; 4582 -// WORD cbRegs : 3; 4583 -// WORD fHasSEH : 1; 4584 -// WORD fUseBP : 1; 4585 -// WORD reserved : 1; 4586 -// WORD cbFrame : 2; 4587 -} 4588 -alias _FPO_DATA FPO_DATA; 4589 -alias _FPO_DATA* PFPO_DATA; 4590 - 4591 -enum : uint { SIZEOF_RFPO_DATA = 16 } 4592 - 4593 -enum : uint { IMAGE_DEBUG_MISC_EXENAME = 1 } 4594 - 4595 -struct _IMAGE_DEBUG_MISC { 4596 - DWORD DataType; 4597 - DWORD Length; 4598 - 4599 - BOOLEAN Unicode; 4600 - BYTE Reserved[ 3 ]; 4601 - BYTE Data[ 1 ]; 4602 -} 4603 -alias _IMAGE_DEBUG_MISC IMAGE_DEBUG_MISC; 4604 -alias _IMAGE_DEBUG_MISC* PIMAGE_DEBUG_MISC; 4605 - 4606 -struct _IMAGE_FUNCTION_ENTRY { 4607 - DWORD StartingAddress; 4608 - DWORD EndingAddress; 4609 - DWORD EndOfPrologue; 4610 -} 4611 -alias _IMAGE_FUNCTION_ENTRY IMAGE_FUNCTION_ENTRY; 4612 -alias _IMAGE_FUNCTION_ENTRY* PIMAGE_FUNCTION_ENTRY; 4613 - 4614 -struct _IMAGE_FUNCTION_ENTRY64 { 4615 - ULONGLONG StartingAddress; 4616 - ULONGLONG EndingAddress; 4617 -union { 4618 - ULONGLONG EndOfPrologue; 4619 - ULONGLONG UnwindInfoAddress; 4620 -} 4621 - 4622 -} 4623 -alias _IMAGE_FUNCTION_ENTRY64 IMAGE_FUNCTION_ENTRY64; 4624 -alias _IMAGE_FUNCTION_ENTRY64* PIMAGE_FUNCTION_ENTRY64; 4625 - 4626 -struct _IMAGE_SEPARATE_DEBUG_HEADER { 4627 - WORD Signature; 4628 - WORD Flags; 4629 - WORD Machine; 4630 - WORD Characteristics; 4631 - DWORD TimeDateStamp; 4632 - DWORD CheckSum; 4633 - DWORD ImageBase; 4634 - DWORD SizeOfImage; 4635 - DWORD NumberOfSections; 4636 - DWORD ExportedNamesSize; 4637 - DWORD DebugDirectorySize; 4638 - DWORD SectionAlignment; 4639 - DWORD Reserved[2]; 4640 -} 4641 -alias _IMAGE_SEPARATE_DEBUG_HEADER IMAGE_SEPARATE_DEBUG_HEADER; 4642 -alias _IMAGE_SEPARATE_DEBUG_HEADER* PIMAGE_SEPARATE_DEBUG_HEADER; 4643 - 4644 -struct _NON_PAGED_DEBUG_INFO { 4645 - WORD Signature; 4646 - WORD Flags; 4647 - DWORD Size; 4648 - WORD Machine; 4649 - WORD Characteristics; 4650 - DWORD TimeDateStamp; 4651 - DWORD CheckSum; 4652 - DWORD SizeOfImage; 4653 - ULONGLONG ImageBase; 4654 - 4655 -} 4656 -alias _NON_PAGED_DEBUG_INFO NON_PAGED_DEBUG_INFO; 4657 -alias _NON_PAGED_DEBUG_INFO* PNON_PAGED_DEBUG_INFO; 4658 - 4659 -// #ifndef _MAC 4660 -enum : uint { IMAGE_SEPARATE_DEBUG_SIGNATURE = 0x4944 } 4661 -enum : uint { NON_PAGED_DEBUG_SIGNATURE = 0x494E } 4662 -// #else 4663 -// #... 4664 -// #... 4665 -// #endif 4666 - 4667 -enum : uint { IMAGE_SEPARATE_DEBUG_FLAGS_MASK = 0x8000 } 4668 -enum : uint { IMAGE_SEPARATE_DEBUG_MISMATCH = 0x8000 } 4669 - 4670 -struct _ImageArchitectureHeader { 4671 -// unsigned int AmaskValue: 1; 4672 - 4673 -// int :7; 4674 -// unsigned int AmaskShift: 8; 4675 -// int :16; 4676 - DWORD FirstEntryRVA; 4677 -} 4678 -alias _ImageArchitectureHeader IMAGE_ARCHITECTURE_HEADER; 4679 -alias _ImageArchitectureHeader* PIMAGE_ARCHITECTURE_HEADER; 4680 - 4681 -struct _ImageArchitectureEntry { 4682 - DWORD FixupInstRVA; 4683 - DWORD NewInst; 4684 -} 4685 -alias _ImageArchitectureEntry IMAGE_ARCHITECTURE_ENTRY; 4686 -alias _ImageArchitectureEntry* PIMAGE_ARCHITECTURE_ENTRY; 4687 - 4688 -align: 4689 - 4690 -enum : uint { IMPORT_OBJECT_HDR_SIG2 = 0xffff } 4691 - 4692 -struct IMPORT_OBJECT_HEADER { 4693 - WORD Sig1; 4694 - WORD Sig2; 4695 - WORD Version; 4696 - WORD Machine; 4697 - DWORD TimeDateStamp; 4698 - DWORD SizeOfData; 4699 - 4700 -union { 4701 - WORD Ordinal; 4702 - WORD Hint; 4703 -} 4704 - 4705 -// WORD Type : 2; 4706 -// WORD NameType : 3; 4707 -// WORD Reserved : 11; 4708 -} 4709 - 4710 -alias int IMPORT_OBJECT_TYPE; 4711 -enum { 4712 - IMPORT_OBJECT_CODE = 0, 4713 - IMPORT_OBJECT_DATA = 1, 4714 - IMPORT_OBJECT_CONST = 2, 4715 -} 4716 - 4717 -alias int IMPORT_OBJECT_NAME_TYPE; 4718 -enum { 4719 - IMPORT_OBJECT_ORDINAL = 0, 4720 - IMPORT_OBJECT_NAME = 1, 4721 - IMPORT_OBJECT_NAME_NO_PREFIX = 2, 4722 - IMPORT_OBJECT_NAME_UNDECORATE = 3, 4723 - 4724 -} 4725 - 4726 -// #ifndef __IMAGE_COR20_HEADER_DEFINED__ 4727 -// #define __IMAGE_COR20_HEADER_DEFINED__ 4728 - 4729 -alias int ReplacesCorHdrNumericDefines; 4730 -enum { 4731 - 4732 - COMIMAGE_FLAGS_ILONLY = 0x00000001, 4733 - COMIMAGE_FLAGS_32BITREQUIRED = 0x00000002, 4734 - COMIMAGE_FLAGS_IL_LIBRARY = 0x00000004, 4735 - COMIMAGE_FLAGS_TRACKDEBUGDATA = 0x00010000, 4736 - 4737 - COR_VERSION_MAJOR_V2 = 2, 4738 - COR_VERSION_MAJOR = COR_VERSION_MAJOR_V2, 4739 - COR_VERSION_MINOR = 0, 4740 - COR_DELETED_NAME_LENGTH = 8, 4741 - COR_VTABLEGAP_NAME_LENGTH = 8, 4742 - 4743 - NATIVE_TYPE_MAX_CB = 1, 4744 - COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE = 0xFF, 4745 - 4746 - IMAGE_COR_MIH_METHODRVA = 0x01, 4747 - IMAGE_COR_MIH_EHRVA = 0x02, 4748 - IMAGE_COR_MIH_BASICBLOCK = 0x08, 4749 - 4750 - COR_VTABLE_32BIT = 0x01, 4751 - COR_VTABLE_64BIT = 0x02, 4752 - COR_VTABLE_FROM_UNMANAGED = 0x04, 4753 - COR_VTABLE_CALL_MOST_DERIVED = 0x10, 4754 - 4755 - IMAGE_COR_EATJ_THUNK_SIZE = 32, 4756 - 4757 - MAX_CLASS_NAME = 1024, 4758 - MAX_PACKAGE_NAME = 1024, 4759 -} 4760 - 4761 -struct IMAGE_COR20_HEADER { 4762 - 4763 - DWORD cb; 4764 - WORD MajorRuntimeVersion; 4765 - WORD MinorRuntimeVersion; 4766 - IMAGE_DATA_DIRECTORY MetaData; 4767 - DWORD Flags; 4768 - DWORD EntryPointToken; 4769 - IMAGE_DATA_DIRECTORY Resources; 4770 - IMAGE_DATA_DIRECTORY StrongNameSignature; 4771 - IMAGE_DATA_DIRECTORY CodeManagerTable; 4772 - IMAGE_DATA_DIRECTORY VTableFixups; 4773 - IMAGE_DATA_DIRECTORY ExportAddressTableJumps; 4774 - IMAGE_DATA_DIRECTORY ManagedNativeHeader; 4775 -} 4776 -alias IMAGE_COR20_HEADER* PIMAGE_COR20_HEADER; 4777 - 4778 -// #endif // __IMAGE_COR20_HEADER_DEFINED__ 4779 - 4780 -// #ifdef _MAC 4781 -// #ifndef _INC_STRING 4782 -// #... 4783 -// #endif /* _INC_STRING */ 4784 -// #else 4785 -// #include <string.h> 4786 -// #endif // _MAC 4787 - 4788 -// #ifndef _SLIST_HEADER_ 4789 -// #define _SLIST_HEADER_ 4790 - 4791 -alias SINGLE_LIST_ENTRY SLIST_ENTRY; 4792 -alias _SINGLE_LIST_ENTRY _SLIST_ENTRY; 4793 -alias PSINGLE_LIST_ENTRY PSLIST_ENTRY; 4794 - 4795 -// #if defined(_WIN64) 4796 - 4797 -// ... 4798 - 4799 -// ... 4800 - 4801 -// #else 4802 - 4803 -union _SLIST_HEADER { 4804 - ULONGLONG Alignment; 4805 -struct { 4806 - SLIST_ENTRY Next; 4807 - WORD Depth; 4808 - WORD Sequence; 4809 -} 4810 - 4811 -} 4812 -alias _SLIST_HEADER SLIST_HEADER; 4813 -alias _SLIST_HEADER* PSLIST_HEADER; 4814 - 4815 -// #endif 4816 - 4817 -// #endif 4818 - 4819 -extern(Windows) export VOID RtlInitializeSListHead( 4820 - PSLIST_HEADER ListHead); 4821 - 4822 -extern(Windows) export PSLIST_ENTRY RtlFirstEntrySList( 4823 - SLIST_HEADER *ListHead); 4824 - 4825 -extern(Windows) export PSLIST_ENTRY RtlInterlockedPopEntrySList( 4826 - PSLIST_HEADER ListHead); 4827 - 4828 -extern(Windows) export PSLIST_ENTRY RtlInterlockedPushEntrySList( 4829 - PSLIST_HEADER ListHead, 4830 - PSLIST_ENTRY ListEntry); 4831 - 4832 -extern(Windows) export PSLIST_ENTRY RtlInterlockedFlushSList( 4833 - PSLIST_HEADER ListHead); 4834 - 4835 -extern(Windows) export WORD RtlQueryDepthSList( 4836 - PSLIST_HEADER ListHead); 4837 - 4838 -enum : uint { HEAP_NO_SERIALIZE = 0x00000001 } 4839 -enum : uint { HEAP_GROWABLE = 0x00000002 } 4840 -enum : uint { HEAP_GENERATE_EXCEPTIONS = 0x00000004 } 4841 -enum : uint { HEAP_ZERO_MEMORY = 0x00000008 } 4842 -enum : uint { HEAP_REALLOC_IN_PLACE_ONLY = 0x00000010 } 4843 -enum : uint { HEAP_TAIL_CHECKING_ENABLED = 0x00000020 } 4844 -enum : uint { HEAP_FREE_CHECKING_ENABLED = 0x00000040 } 4845 -enum : uint { HEAP_DISABLE_COALESCE_ON_FREE = 0x00000080 } 4846 -enum : uint { HEAP_CREATE_ALIGN_16 = 0x00010000 } 4847 -enum : uint { HEAP_CREATE_ENABLE_TRACING = 0x00020000 } 4848 -enum : uint { HEAP_MAXIMUM_TAG = 0x0FFF } 4849 -enum : uint { HEAP_PSEUDO_TAG_FLAG = 0x8000 } 4850 -enum : uint { HEAP_TAG_SHIFT = 18 } 4851 -uint HEAP_MAKE_TAG_FLAGS(uint b, uint o){ return b + (o << 18); } 4852 - 4853 -enum : uint { IS_TEXT_UNICODE_ASCII16 = 0x0001 } 4854 -enum : uint { IS_TEXT_UNICODE_REVERSE_ASCII16 = 0x0010 } 4855 - 4856 -enum : uint { IS_TEXT_UNICODE_STATISTICS = 0x0002 } 4857 -enum : uint { IS_TEXT_UNICODE_REVERSE_STATISTICS = 0x0020 } 4858 - 4859 -enum : uint { IS_TEXT_UNICODE_CONTROLS = 0x0004 } 4860 -enum : uint { IS_TEXT_UNICODE_REVERSE_CONTROLS = 0x0040 } 4861 - 4862 -enum : uint { IS_TEXT_UNICODE_SIGNATURE = 0x0008 } 4863 -enum : uint { IS_TEXT_UNICODE_REVERSE_SIGNATURE = 0x0080 } 4864 - 4865 -enum : uint { IS_TEXT_UNICODE_ILLEGAL_CHARS = 0x0100 } 4866 -enum : uint { IS_TEXT_UNICODE_ODD_LENGTH = 0x0200 } 4867 -enum : uint { IS_TEXT_UNICODE_DBCS_LEADBYTE = 0x0400 } 4868 -enum : uint { IS_TEXT_UNICODE_NULL_BYTES = 0x1000 } 4869 - 4870 -enum : uint { IS_TEXT_UNICODE_UNICODE_MASK = 0x000F } 4871 -enum : uint { IS_TEXT_UNICODE_REVERSE_MASK = 0x00F0 } 4872 -enum : uint { IS_TEXT_UNICODE_NOT_UNICODE_MASK = 0x0F00 } 4873 -enum : uint { IS_TEXT_UNICODE_NOT_ASCII_MASK = 0xF000 } 4874 - 4875 -enum : uint { COMPRESSION_FORMAT_NONE = 0x0000 } 4876 -enum : uint { COMPRESSION_FORMAT_DEFAULT = 0x0001 } 4877 -enum : uint { COMPRESSION_FORMAT_LZNT1 = 0x0002 } 4878 -enum : uint { COMPRESSION_ENGINE_STANDARD = 0x0000 } 4879 -enum : uint { COMPRESSION_ENGINE_MAXIMUM = 0x0100 } 4880 -enum : uint { COMPRESSION_ENGINE_HIBER = 0x0200 } 4881 - 4882 -extern(Windows) export SIZE_T RtlCompareMemory( 4883 - VOID *Source1, 4884 - VOID *Source2, 4885 - SIZE_T Length); 4886 - 4887 -// #if defined(_M_AMD64) || defined(_M_IA64) 4888 - 4889 -// #... 4890 -// ... 4891 - 4892 -// ... 4893 - 4894 -// #if !defined(_M_AMD64) 4895 - 4896 -// ... 4897 - 4898 -// #endif 4899 - 4900 -// ... 4901 - 4902 -// ... 4903 - 4904 -// ... 4905 - 4906 -// #else 4907 - 4908 -bit RtlEqualMemory(void* x, void* y, uint len){ return memcmp(x, y, len) == 0; } 4909 -void RtlMoveMemory(void* d, void* s, uint len){ memmove(d, s, len); } 4910 -void RtlCopyMemory(void* d, void* s, uint len){ memcpy(d, s, len); } 4911 -void RtlFillMemory(void* d, uint len, ubyte f){ memset(d, f, len); } 4912 -void RtlZeroMemory(void* d, uint len){ memset(d, 0, len); } 4913 - 4914 -// #endif 4915 - 4916 -struct _MESSAGE_RESOURCE_ENTRY { 4917 - WORD Length; 4918 - WORD Flags; 4919 - BYTE Text[ 1 ]; 4920 -} 4921 -alias _MESSAGE_RESOURCE_ENTRY MESSAGE_RESOURCE_ENTRY; 4922 -alias _MESSAGE_RESOURCE_ENTRY* PMESSAGE_RESOURCE_ENTRY; 4923 - 4924 -enum : uint { MESSAGE_RESOURCE_UNICODE = 0x0001 } 4925 - 4926 -struct _MESSAGE_RESOURCE_BLOCK { 4927 - DWORD LowId; 4928 - DWORD HighId; 4929 - DWORD OffsetToEntries; 4930 -} 4931 -alias _MESSAGE_RESOURCE_BLOCK MESSAGE_RESOURCE_BLOCK; 4932 -alias _MESSAGE_RESOURCE_BLOCK* PMESSAGE_RESOURCE_BLOCK; 4933 - 4934 -struct _MESSAGE_RESOURCE_DATA { 4935 - DWORD NumberOfBlocks; 4936 - MESSAGE_RESOURCE_BLOCK Blocks[ 1 ]; 4937 -} 4938 -alias _MESSAGE_RESOURCE_DATA MESSAGE_RESOURCE_DATA; 4939 -alias _MESSAGE_RESOURCE_DATA* PMESSAGE_RESOURCE_DATA; 4940 - 4941 -struct _OSVERSIONINFOA { 4942 - DWORD dwOSVersionInfoSize; 4943 - DWORD dwMajorVersion; 4944 - DWORD dwMinorVersion; 4945 - DWORD dwBuildNumber; 4946 - DWORD dwPlatformId; 4947 - CHAR szCSDVersion[ 128 ]; 4948 -} 4949 -alias _OSVERSIONINFOA OSVERSIONINFOA; 4950 -alias _OSVERSIONINFOA* POSVERSIONINFOA; 4951 -alias _OSVERSIONINFOA* LPOSVERSIONINFOA; 4952 - 4953 -struct _OSVERSIONINFOW { 4954 - DWORD dwOSVersionInfoSize; 4955 - DWORD dwMajorVersion; 4956 - DWORD dwMinorVersion; 4957 - DWORD dwBuildNumber; 4958 - DWORD dwPlatformId; 4959 - WCHAR szCSDVersion[ 128 ]; 4960 -} 4961 -alias _OSVERSIONINFOW OSVERSIONINFOW; 4962 -alias _OSVERSIONINFOW* POSVERSIONINFOW; 4963 -alias _OSVERSIONINFOW* LPOSVERSIONINFOW; 4964 -alias _OSVERSIONINFOW RTL_OSVERSIONINFOW; 4965 -alias _OSVERSIONINFOW* PRTL_OSVERSIONINFOW; 4966 - 4967 -// #ifdef UNICODE 4968 -alias OSVERSIONINFOW OSVERSIONINFO; 4969 -alias POSVERSIONINFOW POSVERSIONINFO; 4970 -alias LPOSVERSIONINFOW LPOSVERSIONINFO; 4971 -// #else 4972 -// ... 4973 -// #endif // UNICODE 4974 - 4975 -struct _OSVERSIONINFOEXA { 4976 - DWORD dwOSVersionInfoSize; 4977 - DWORD dwMajorVersion; 4978 - DWORD dwMinorVersion; 4979 - DWORD dwBuildNumber; 4980 - DWORD dwPlatformId; 4981 - CHAR szCSDVersion[ 128 ]; 4982 - WORD wServicePackMajor; 4983 - WORD wServicePackMinor; 4984 - WORD wSuiteMask; 4985 - BYTE wProductType; 4986 - BYTE wReserved; 4987 -} 4988 -alias _OSVERSIONINFOEXA OSVERSIONINFOEXA; 4989 -alias _OSVERSIONINFOEXA* POSVERSIONINFOEXA; 4990 -alias _OSVERSIONINFOEXA* LPOSVERSIONINFOEXA; 4991 - 4992 -struct _OSVERSIONINFOEXW { 4993 - DWORD dwOSVersionInfoSize; 4994 - DWORD dwMajorVersion; 4995 - DWORD dwMinorVersion; 4996 - DWORD dwBuildNumber; 4997 - DWORD dwPlatformId; 4998 - WCHAR szCSDVersion[ 128 ]; 4999 - WORD wServicePackMajor; 5000 - WORD wServicePackMinor; 5001 - WORD wSuiteMask; 5002 - BYTE wProductType; 5003 - BYTE wReserved; 5004 -} 5005 -alias _OSVERSIONINFOEXW OSVERSIONINFOEXW; 5006 -alias _OSVERSIONINFOEXW* POSVERSIONINFOEXW; 5007 -alias _OSVERSIONINFOEXW* LPOSVERSIONINFOEXW; 5008 -alias _OSVERSIONINFOEXW RTL_OSVERSIONINFOEXW; 5009 -alias _OSVERSIONINFOEXW* PRTL_OSVERSIONINFOEXW; 5010 - 5011 -// #ifdef UNICODE 5012 -alias OSVERSIONINFOEXW OSVERSIONINFOEX; 5013 -alias POSVERSIONINFOEXW POSVERSIONINFOEX; 5014 -alias LPOSVERSIONINFOEXW LPOSVERSIONINFOEX; 5015 -// #else 5016 -// ... 5017 -// #endif // UNICODE 5018 - 5019 -enum : uint { VER_EQUAL = 1 } 5020 -enum : uint { VER_GREATER = 2 } 5021 -enum : uint { VER_GREATER_EQUAL = 3 } 5022 -enum : uint { VER_LESS = 4 } 5023 -enum : uint { VER_LESS_EQUAL = 5 } 5024 -enum : uint { VER_AND = 6 } 5025 -enum : uint { VER_OR = 7 } 5026 - 5027 -enum : uint { VER_CONDITION_MASK = 7 } 5028 -enum : uint { VER_NUM_BITS_PER_CONDITION_MASK = 3 } 5029 - 5030 -enum : uint { VER_MINORVERSION = 0x0000001 } 5031 -enum : uint { VER_MAJORVERSION = 0x0000002 } 5032 -enum : uint { VER_BUILDNUMBER = 0x0000004 } 5033 -enum : uint { VER_PLATFORMID = 0x0000008 } 5034 -enum : uint { VER_SERVICEPACKMINOR = 0x0000010 } 5035 -enum : uint { VER_SERVICEPACKMAJOR = 0x0000020 } 5036 -enum : uint { VER_SUITENAME = 0x0000040 } 5037 -enum : uint { VER_PRODUCT_TYPE = 0x0000080 } 5038 - 5039 -enum : uint { VER_NT_WORKSTATION = 0x0000001 } 5040 -enum : uint { VER_NT_DOMAIN_CONTROLLER = 0x0000002 } 5041 -enum : uint { VER_NT_SERVER = 0x0000003 } 5042 - 5043 -enum : uint { VER_PLATFORM_WIN32s = 0 } 5044 -enum : uint { VER_PLATFORM_WIN32_WINDOWS = 1 } 5045 -enum : uint { VER_PLATFORM_WIN32_NT = 2 } 5046 - 5047 -// #define VER_SET_CONDITION(_m_,_t_,_c_) ((_m_)=VerSetConditionMask((_m_),(_t_),(_c_))) 5048 - 5049 -extern(Windows) export ULONGLONG VerSetConditionMask( 5050 - ULONGLONG ConditionMask, 5051 - DWORD TypeMask, 5052 - BYTE Condition); 5053 - 5054 -struct _RTL_CRITICAL_SECTION_DEBUG { 5055 - WORD Type; 5056 - WORD CreatorBackTraceIndex; 5057 - _RTL_CRITICAL_SECTION *CriticalSection; 5058 - LIST_ENTRY ProcessLocksList; 5059 - DWORD EntryCount; 5060 - DWORD ContentionCount; 5061 - DWORD Spare[ 2 ]; 5062 -} 5063 -alias _RTL_CRITICAL_SECTION_DEBUG RTL_CRITICAL_SECTION_DEBUG; 5064 -alias _RTL_CRITICAL_SECTION_DEBUG* PRTL_CRITICAL_SECTION_DEBUG; 5065 -alias _RTL_CRITICAL_SECTION_DEBUG RTL_RESOURCE_DEBUG; 5066 -alias _RTL_CRITICAL_SECTION_DEBUG* PRTL_RESOURCE_DEBUG; 5067 - 5068 -enum : uint { RTL_CRITSECT_TYPE = 0 } 5069 -enum : uint { RTL_RESOURCE_TYPE = 1 } 5070 - 5071 -struct _RTL_CRITICAL_SECTION { 5072 - PRTL_CRITICAL_SECTION_DEBUG DebugInfo; 5073 - 5074 - LONG LockCount; 5075 - LONG RecursionCount; 5076 - HANDLE OwningThread; 5077 - HANDLE LockSemaphore; 5078 - ULONG_PTR SpinCount; 5079 -} 5080 -alias _RTL_CRITICAL_SECTION RTL_CRITICAL_SECTION; 5081 -alias _RTL_CRITICAL_SECTION* PRTL_CRITICAL_SECTION; 5082 - 5083 -extern(Windows) alias VOID function( PWSTR DllName, PVOID DllBase, SIZE_T DllSize, PVOID Reserved ) RTL_VERIFIER_DLL_LOAD_CALLBACK; 5084 - 5085 -extern(Windows) alias VOID function( PWSTR DllName, PVOID DllBase, SIZE_T DllSize, PVOID Reserved ) RTL_VERIFIER_DLL_UNLOAD_CALLBACK; 5086 - 5087 -struct _RTL_VERIFIER_THUNK_DESCRIPTOR { 5088 - 5089 - PCHAR ThunkName; 5090 - PVOID ThunkOldAddress; 5091 - PVOID ThunkNewAddress; 5092 -} 5093 -alias _RTL_VERIFIER_THUNK_DESCRIPTOR RTL_VERIFIER_THUNK_DESCRIPTOR; 5094 -alias _RTL_VERIFIER_THUNK_DESCRIPTOR* PRTL_VERIFIER_THUNK_DESCRIPTOR; 5095 - 5096 -struct _RTL_VERIFIER_DLL_DESCRIPTOR { 5097 - 5098 - PWCHAR DllName; 5099 - DWORD DllFlags; 5100 - PVOID DllAddress; 5101 - PRTL_VERIFIER_THUNK_DESCRIPTOR DllThunks; 5102 -} 5103 -alias _RTL_VERIFIER_DLL_DESCRIPTOR RTL_VERIFIER_DLL_DESCRIPTOR; 5104 -alias _RTL_VERIFIER_DLL_DESCRIPTOR* PRTL_VERIFIER_DLL_DESCRIPTOR; 5105 - 5106 -struct _RTL_VERIFIER_PROVIDER_DESCRIPTOR { 5107 - 5108 - DWORD Length; 5109 - PRTL_VERIFIER_DLL_DESCRIPTOR ProviderDlls; 5110 - RTL_VERIFIER_DLL_LOAD_CALLBACK ProviderDllLoadCallback; 5111 - RTL_VERIFIER_DLL_UNLOAD_CALLBACK ProviderDllUnloadCallback; 5112 - 5113 - PWSTR VerifierImage; 5114 - DWORD VerifierFlags; 5115 - DWORD VerifierDebug; 5116 -} 5117 -alias _RTL_VERIFIER_PROVIDER_DESCRIPTOR RTL_VERIFIER_PROVIDER_DESCRIPTOR; 5118 -alias _RTL_VERIFIER_PROVIDER_DESCRIPTOR* PRTL_VERIFIER_PROVIDER_DESCRIPTOR; 5119 - 5120 -enum : uint { RTL_VRF_FLG_FULL_PAGE_HEAP = 0x0001 } 5121 -enum : uint { RTL_VRF_FLG_LOCK_CHECKS = 0x0002 } 5122 -enum : uint { RTL_VRF_FLG_HANDLE_CHECKS = 0x0004 } 5123 -enum : uint { RTL_VRF_FLG_STACK_CHECKS = 0x0008 } 5124 -enum : uint { RTL_VRF_FLG_APPCOMPAT_CHECKS = 0x0010 } 5125 - 5126 -enum : uint { APPLICATION_VERIFIER_INTERNAL_ERROR = 0x80000000 } 5127 -enum : uint { APPLICATION_VERIFIER_INTERNAL_WARNING = 0x40000000 } 5128 -enum : uint { APPLICATION_VERIFIER_NO_BREAK = 0x20000000 } 5129 -enum : uint { APPLICATION_VERIFIER_RESERVED_BIT_28 = 0x10000000 } 5130 - 5131 -enum : uint { APPLICATION_VERIFIER_UNKNOWN_ERROR = 0x0001 } 5132 -enum : uint { APPLICATION_VERIFIER_ACCESS_VIOLATION = 0x0002 } 5133 -enum : uint { APPLICATION_VERIFIER_UNSYNCHRONIZED_ACCESS = 0x0003 } 5134 -enum : uint { APPLICATION_VERIFIER_EXTREME_SIZE_REQUEST = 0x0004 } 5135 -enum : uint { APPLICATION_VERIFIER_BAD_HEAP_HANDLE = 0x0005 } 5136 -enum : uint { APPLICATION_VERIFIER_SWITCHED_HEAP_HANDLE = 0x0006 } 5137 -enum : uint { APPLICATION_VERIFIER_DOUBLE_FREE = 0x0007 } 5138 -enum : uint { APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK = 0x0008 } 5139 -enum : uint { APPLICATION_VERIFIER_DESTROY_PROCESS_HEAP = 0x0009 } 5140 -enum : uint { APPLICATION_VERIFIER_UNEXPECTED_EXCEPTION = 0x000A } 5141 -enum : uint { APPLICATION_VERIFIER_STACK_OVERFLOW = 0x000B } 5142 - 5143 -enum : uint { APPLICATION_VERIFIER_TERMINATE_THREAD_CALL = 0x0100 } 5144 - 5145 -enum : uint { APPLICATION_VERIFIER_EXIT_THREAD_OWNS_LOCK = 0x0200 } 5146 -enum : uint { APPLICATION_VERIFIER_LOCK_IN_UNLOADED_DLL = 0x0201 } 5147 -enum : uint { APPLICATION_VERIFIER_LOCK_IN_FREED_HEAP = 0x0202 } 5148 -enum : uint { APPLICATION_VERIFIER_LOCK_DOUBLE_INITIALIZE = 0x0203 } 5149 -enum : uint { APPLICATION_VERIFIER_LOCK_IN_FREED_MEMORY = 0x0204 } 5150 -enum : uint { APPLICATION_VERIFIER_LOCK_CORRUPTED = 0x0205 } 5151 -enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_OWNER = 0x0206 } 5152 -enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_RECURSION_COUNT = 0x0207 } 5153 -enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_LOCK_COUNT = 0x0208 } 5154 -enum : uint { APPLICATION_VERIFIER_LOCK_OVER_RELEASED = 0x0209 } 5155 -enum : uint { APPLICATION_VERIFIER_LOCK_NOT_INITIALIZED = 0x0210 } 5156 - 5157 -enum : uint { APPLICATION_VERIFIER_INVALID_HANDLE = 0x0300 } 5158 - 5159 -// #define VERIFIER_STOP(Code, Msg, P1, S1, P2, S2, P3, S3, P4, S4) { RtlApplicationVerifierStop ((Code), (Msg), (ULONG_PTR)(P1),(S1), (ULONG_PTR)(P2),(S2), (ULONG_PTR)(P3),(S3), (ULONG_PTR)(P4),(S4)); } 5160 - 5161 -extern(Windows) export VOID RtlApplicationVerifierStop( 5162 - ULONG_PTR Code, 5163 - PCHAR Message, 5164 - ULONG_PTR Param1, PCHAR Description1, 5165 - ULONG_PTR Param2, PCHAR Description2, 5166 - ULONG_PTR Param3, PCHAR Description3, 5167 - ULONG_PTR Param4, PCHAR Description4); 5168 - 5169 -extern(Windows) alias LONG function( _EXCEPTION_POINTERS *ExceptionInfo ) PVECTORED_EXCEPTION_HANDLER; 5170 -enum : uint { SEF_DACL_AUTO_INHERIT = 0x01 } 5171 -enum : uint { SEF_SACL_AUTO_INHERIT = 0x02 } 5172 -enum : uint { SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT = 0x04 } 5173 -enum : uint { SEF_AVOID_PRIVILEGE_CHECK = 0x08 } 5174 -enum : uint { SEF_AVOID_OWNER_CHECK = 0x10 } 5175 -enum : uint { SEF_DEFAULT_OWNER_FROM_PARENT = 0x20 } 5176 -enum : uint { SEF_DEFAULT_GROUP_FROM_PARENT = 0x40 } 5177 - 5178 -alias int _HEAP_INFORMATION_CLASS; 5179 -enum { 5180 - 5181 - HeapCompatibilityInformation, 5182 - 5183 -} 5184 -alias _HEAP_INFORMATION_CLASS HEAP_INFORMATION_CLASS; 5185 - 5186 -extern(Windows) export DWORD RtlSetHeapInformation( 5187 - PVOID HeapHandle, 5188 - HEAP_INFORMATION_CLASS HeapInformationClass, 5189 - PVOID HeapInformation , 5190 - SIZE_T HeapInformationLength ); 5191 - 5192 -extern(Windows) export DWORD RtlQueryHeapInformation( 5193 - PVOID HeapHandle, 5194 - HEAP_INFORMATION_CLASS HeapInformationClass, 5195 - PVOID HeapInformation , 5196 - SIZE_T HeapInformationLength , 5197 - PSIZE_T ReturnLength ); 5198 - 5199 -enum : uint { WT_EXECUTEDEFAULT = 0x00000000 } 5200 -enum : uint { WT_EXECUTEINIOTHREAD = 0x00000001 } 5201 -enum : uint { WT_EXECUTEINUITHREAD = 0x00000002 } 5202 -enum : uint { WT_EXECUTEINWAITTHREAD = 0x00000004 } 5203 -enum : uint { WT_EXECUTEONLYONCE = 0x00000008 } 5204 -enum : uint { WT_EXECUTEINTIMERTHREAD = 0x00000020 } 5205 -enum : uint { WT_EXECUTELONGFUNCTION = 0x00000010 } 5206 -enum : uint { WT_EXECUTEINPERSISTENTIOTHREAD = 0x00000040 } 5207 -enum : uint { WT_EXECUTEINPERSISTENTTHREAD = 0x00000080 } 5208 -// #define WT_SET_MAX_THREADPOOL_THREADS(Flags, Limit) ((Flags) |= (Limit)<<16) 5209 -extern(Windows) alias VOID function(PVOID, BOOLEAN ) WAITORTIMERCALLBACKFUNC; 5210 -extern(Windows) alias VOID function(PVOID ) WORKERCALLBACKFUNC; 5211 -extern(Windows) alias VOID function(DWORD , PVOID, PVOID) APC_CALLBACK_FUNCTION; 5212 -enum : uint { WT_EXECUTEINLONGTHREAD = 0x00000010 } 5213 -enum : uint { WT_EXECUTEDELETEWAIT = 0x00000008 } 5214 - 5215 -alias int _ACTIVATION_CONTEXT_INFO_CLASS; 5216 -enum { 5217 - ActivationContextBasicInformation = 1, 5218 - ActivationContextDetailedInformation = 2, 5219 - AssemblyDetailedInformationInActivationContext = 3, 5220 - FileInformationInAssemblyOfAssemblyInActivationContext = 4, 5221 - MaxActivationContextInfoClass, 5222 - 5223 - AssemblyDetailedInformationInActivationContxt = 3, 5224 - FileInformationInAssemblyOfAssemblyInActivationContxt = 4, 5225 -} 5226 -alias _ACTIVATION_CONTEXT_INFO_CLASS ACTIVATION_CONTEXT_INFO_CLASS; 5227 - 5228 -alias ACTIVATION_CONTEXT_INFO_CLASS ACTIVATIONCONTEXTINFOCLASS; 5229 - 5230 -struct _ACTIVATION_CONTEXT_QUERY_INDEX { 5231 - DWORD ulAssemblyIndex; 5232 - DWORD ulFileIndexInAssembly; 5233 -} 5234 -alias _ACTIVATION_CONTEXT_QUERY_INDEX ACTIVATION_CONTEXT_QUERY_INDEX; 5235 -alias _ACTIVATION_CONTEXT_QUERY_INDEX* PACTIVATION_CONTEXT_QUERY_INDEX; 5236 - 5237 -alias _ACTIVATION_CONTEXT_QUERY_INDEX* PCACTIVATION_CONTEXT_QUERY_INDEX; 5238 - 5239 -enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_NONE = 1 } 5240 -enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE = 2 } 5241 -enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_URL = 3 } 5242 -enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_ASSEMBLYREF = 4 } 5243 - 5244 -struct _ASSEMBLY_FILE_DETAILED_INFORMATION { 5245 - DWORD ulFlags; 5246 - DWORD ulFilenameLength; 5247 - DWORD ulPathLength; 5248 - PCWSTR lpFileName; 5249 - PCWSTR lpFilePath; 5250 -} 5251 -alias _ASSEMBLY_FILE_DETAILED_INFORMATION ASSEMBLY_FILE_DETAILED_INFORMATION; 5252 -alias _ASSEMBLY_FILE_DETAILED_INFORMATION* PASSEMBLY_FILE_DETAILED_INFORMATION; 5253 - 5254 -alias ASSEMBLY_FILE_DETAILED_INFORMATION* PCASSEMBLY_FILE_DETAILED_INFORMATION; 5255 - 5256 -alias _ASSEMBLY_FILE_DETAILED_INFORMATION _ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION; 5257 -alias ASSEMBLY_FILE_DETAILED_INFORMATION ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION; 5258 -alias PASSEMBLY_FILE_DETAILED_INFORMATION PASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION; 5259 -alias PCASSEMBLY_FILE_DETAILED_INFORMATION PCASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION; 5260 - 5261 -struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION { 5262 - DWORD ulFlags; 5263 - DWORD ulEncodedAssemblyIdentityLength; 5264 - DWORD ulManifestPathType; 5265 - DWORD ulManifestPathLength; 5266 - LARGE_INTEGER liManifestLastWriteTime; 5267 - DWORD ulPolicyPathType; 5268 - DWORD ulPolicyPathLength; 5269 - LARGE_INTEGER liPolicyLastWriteTime; 5270 - DWORD ulMetadataSatelliteRosterIndex; 5271 - DWORD ulManifestVersionMajor; 5272 - DWORD ulManifestVersionMinor; 5273 - DWORD ulPolicyVersionMajor; 5274 - DWORD ulPolicyVersionMinor; 5275 - DWORD ulAssemblyDirectoryNameLength; 5276 - 5277 - PCWSTR lpAssemblyEncodedAssemblyIdentity; 5278 - PCWSTR lpAssemblyManifestPath; 5279 - PCWSTR lpAssemblyPolicyPath; 5280 - PCWSTR lpAssemblyDirectoryName; 5281 - DWORD ulFileCount; 5282 -} 5283 -alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; 5284 -alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; 5285 - 5286 -alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; 5287 - 5288 -struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION { 5289 - DWORD dwFlags; 5290 - DWORD ulFormatVersion; 5291 - DWORD ulAssemblyCount; 5292 - DWORD ulRootManifestPathType; 5293 - DWORD ulRootManifestPathChars; 5294 - DWORD ulRootConfigurationPathType; 5295 - DWORD ulRootConfigurationPathChars; 5296 - DWORD ulAppDirPathType; 5297 - DWORD ulAppDirPathChars; 5298 - PCWSTR lpRootManifestPath; 5299 - PCWSTR lpRootConfigurationPath; 5300 - PCWSTR lpAppDirPath; 5301 -} 5302 -alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION ACTIVATION_CONTEXT_DETAILED_INFORMATION; 5303 -alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION* PACTIVATION_CONTEXT_DETAILED_INFORMATION; 5304 - 5305 -alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION* PCACTIVATION_CONTEXT_DETAILED_INFORMATION; 5306 - 5307 -enum : uint { DLL_PROCESS_ATTACH = 1 } 5308 -enum : uint { DLL_THREAD_ATTACH = 2 } 5309 -enum : uint { DLL_THREAD_DETACH = 3 } 5310 -enum : uint { DLL_PROCESS_DETACH = 0 } 5311 -enum : uint { DLL_PROCESS_VERIFIER = 4 } 5312 - 5313 -enum : uint { EVENTLOG_SEQUENTIAL_READ = 0x0001 } 5314 -enum : uint { EVENTLOG_SEEK_READ = 0x0002 } 5315 -enum : uint { EVENTLOG_FORWARDS_READ = 0x0004 } 5316 -enum : uint { EVENTLOG_BACKWARDS_READ = 0x0008 } 5317 - 5318 -enum : uint { EVENTLOG_SUCCESS = 0x0000 } 5319 -enum : uint { EVENTLOG_ERROR_TYPE = 0x0001 } 5320 -enum : uint { EVENTLOG_WARNING_TYPE = 0x0002 } 5321 -enum : uint { EVENTLOG_INFORMATION_TYPE = 0x0004 } 5322 -enum : uint { EVENTLOG_AUDIT_SUCCESS = 0x0008 } 5323 -enum : uint { EVENTLOG_AUDIT_FAILURE = 0x0010 } 5324 - 5325 -enum : uint { EVENTLOG_START_PAIRED_EVENT = 0x0001 } 5326 -enum : uint { EVENTLOG_END_PAIRED_EVENT = 0x0002 } 5327 -enum : uint { EVENTLOG_END_ALL_PAIRED_EVENTS = 0x0004 } 5328 -enum : uint { EVENTLOG_PAIRED_EVENT_ACTIVE = 0x0008 } 5329 -enum : uint { EVENTLOG_PAIRED_EVENT_INACTIVE = 0x0010 } 5330 - 5331 -struct _EVENTLOGRECORD { 5332 - DWORD Length; 5333 - DWORD Reserved; 5334 - DWORD RecordNumber; 5335 - DWORD TimeGenerated; 5336 - DWORD TimeWritten; 5337 - DWORD EventID; 5338 - WORD EventType; 5339 - WORD NumStrings; 5340 - WORD EventCategory; 5341 - WORD ReservedFlags; 5342 - DWORD ClosingRecordNumber; 5343 - DWORD StringOffset; 5344 - DWORD UserSidLength; 5345 - DWORD UserSidOffset; 5346 - DWORD DataLength; 5347 - DWORD DataOffset; 5348 - 5349 -} 5350 -alias _EVENTLOGRECORD EVENTLOGRECORD; 5351 -alias _EVENTLOGRECORD* PEVENTLOGRECORD; 5352 - 5353 -enum : uint { MAXLOGICALLOGNAMESIZE = 256 } 5354 - 5355 -// #if _MSC_VER >= 1200 5356 -// #pragma warning(push) 5357 -// #endif 5358 -// #pragma warning(disable : 4200) 5359 -struct _EVENTSFORLOGFILE { 5360 - DWORD ulSize; 5361 - WCHAR szLogicalLogFile[MAXLOGICALLOGNAMESIZE]; 5362 - DWORD ulNumRecords; 5363 - EVENTLOGRECORD pEventLogRecords[]; 5364 -} 5365 -alias _EVENTSFORLOGFILE EVENTSFORLOGFILE; 5366 -alias _EVENTSFORLOGFILE* PEVENTSFORLOGFILE; 5367 - 5368 -struct _PACKEDEVENTINFO { 5369 - DWORD ulSize; 5370 - DWORD ulNumEventsForLogFile; 5371 - DWORD ulOffsets[]; 5372 -} 5373 -alias _PACKEDEVENTINFO PACKEDEVENTINFO; 5374 -alias _PACKEDEVENTINFO* PPACKEDEVENTINFO; 5375 - 5376 -// #if _MSC_VER >= 1200 5377 -// #pragma warning(pop) 5378 -// #else 5379 -// #... 5380 -// #endif 5381 - 5382 -enum : uint { KEY_QUERY_VALUE = 0x0001 } 5383 -enum : uint { KEY_SET_VALUE = 0x0002 } 5384 -enum : uint { KEY_CREATE_SUB_KEY = 0x0004 } 5385 -enum : uint { KEY_ENUMERATE_SUB_KEYS = 0x0008 } 5386 -enum : uint { KEY_NOTIFY = 0x0010 } 5387 -enum : uint { KEY_CREATE_LINK = 0x0020 } 5388 -enum : uint { KEY_WOW64_32KEY = 0x0200 } 5389 -enum : uint { KEY_WOW64_64KEY = 0x0100 } 5390 -enum : uint { KEY_WOW64_RES = 0x0300 } 5391 - 5392 -enum : uint { KEY_READ = (STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY) & (~SYNCHRONIZE) } 5393 - 5394 -enum : uint { KEY_WRITE = (STANDARD_RIGHTS_WRITE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY) & (~SYNCHRONIZE) } 5395 - 5396 -enum : uint { KEY_EXECUTE = KEY_READ & ~SYNCHRONIZE } 5397 - 5398 -enum : uint { KEY_ALL_ACCESS = (STANDARD_RIGHTS_ALL | KEY_QUERY_VALUE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY | KEY_CREATE_LINK) & (~SYNCHRONIZE) } 5399 - 5400 -enum : uint { REG_OPTION_RESERVED = 0x00000000 } 5401 - 5402 -enum : uint { REG_OPTION_NON_VOLATILE = 0x00000000 } 5403 - 5404 -enum : uint { REG_OPTION_VOLATILE = 0x00000001 } 5405 - 5406 -enum : uint { REG_OPTION_CREATE_LINK = 0x00000002 } 5407 - 5408 -enum : uint { REG_OPTION_BACKUP_RESTORE = 0x00000004 } 5409 - 5410 -enum : uint { REG_OPTION_OPEN_LINK = 0x00000008 } 5411 - 5412 -enum : uint { REG_LEGAL_OPTION = REG_OPTION_RESERVED | REG_OPTION_NON_VOLATILE | REG_OPTION_VOLATILE | REG_OPTION_CREATE_LINK | REG_OPTION_BACKUP_RESTORE | REG_OPTION_OPEN_LINK } 5413 - 5414 -enum : uint { REG_CREATED_NEW_KEY = 0x00000001 } 5415 -enum : uint { REG_OPENED_EXISTING_KEY = 0x00000002 } 5416 - 5417 -enum : uint { REG_STANDARD_FORMAT = 1 } 5418 -enum : uint { REG_LATEST_FORMAT = 2 } 5419 -enum : uint { REG_NO_COMPRESSION = 4 } 5420 - 5421 -enum : uint { REG_WHOLE_HIVE_VOLATILE = 0x00000001 } 5422 -enum : uint { REG_REFRESH_HIVE = 0x00000002 } 5423 -enum : uint { REG_NO_LAZY_FLUSH = 0x00000004 } 5424 -enum : uint { REG_FORCE_RESTORE = 0x00000008 } 5425 - 5426 -enum : uint { REG_NOTIFY_CHANGE_NAME = 0x00000001 } 5427 -enum : uint { REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002 } 5428 -enum : uint { REG_NOTIFY_CHANGE_LAST_SET = 0x00000004 } 5429 -enum : uint { REG_NOTIFY_CHANGE_SECURITY = 0x00000008 } 5430 - 5431 -enum : uint { REG_LEGAL_CHANGE_FILTER = REG_NOTIFY_CHANGE_NAME | REG_NOTIFY_CHANGE_ATTRIBUTES | REG_NOTIFY_CHANGE_LAST_SET | REG_NOTIFY_CHANGE_SECURITY } 5432 - 5433 -enum : uint { REG_NONE = 0 } 5434 -enum : uint { REG_SZ = 1 } 5435 -enum : uint { REG_EXPAND_SZ = 2 } 5436 - 5437 -enum : uint { REG_BINARY = 3 } 5438 -enum : uint { REG_DWORD = 4 } 5439 -enum : uint { REG_DWORD_LITTLE_ENDIAN = 4 } 5440 -enum : uint { REG_DWORD_BIG_ENDIAN = 5 } 5441 -enum : uint { REG_LINK = 6 } 5442 -enum : uint { REG_MULTI_SZ = 7 } 5443 -enum : uint { REG_RESOURCE_LIST = 8 } 5444 -enum : uint { REG_FULL_RESOURCE_DESCRIPTOR = 9 } 5445 -enum : uint { REG_RESOURCE_REQUIREMENTS_LIST = 10 } 5446 -enum : uint { REG_QWORD = 11 } 5447 -enum : uint { REG_QWORD_LITTLE_ENDIAN = 11 } 5448 - 5449 -enum : uint { SERVICE_KERNEL_DRIVER = 0x00000001 } 5450 -enum : uint { SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 } 5451 -enum : uint { SERVICE_ADAPTER = 0x00000004 } 5452 -enum : uint { SERVICE_RECOGNIZER_DRIVER = 0x00000008 } 5453 - 5454 -enum : uint { SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER } 5455 - 5456 -enum : uint { SERVICE_WIN32_OWN_PROCESS = 0x00000010 } 5457 -enum : uint { SERVICE_WIN32_SHARE_PROCESS = 0x00000020 } 5458 -enum : uint { SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS } 5459 - 5460 -enum : uint { SERVICE_INTERACTIVE_PROCESS = 0x00000100 } 5461 - 5462 -enum : uint { SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS } 5463 - 5464 -enum : uint { SERVICE_BOOT_START = 0x00000000 } 5465 -enum : uint { SERVICE_SYSTEM_START = 0x00000001 } 5466 -enum : uint { SERVICE_AUTO_START = 0x00000002 } 5467 -enum : uint { SERVICE_DEMAND_START = 0x00000003 } 5468 -enum : uint { SERVICE_DISABLED = 0x00000004 } 5469 - 5470 -enum : uint { SERVICE_ERROR_IGNORE = 0x00000000 } 5471 -enum : uint { SERVICE_ERROR_NORMAL = 0x00000001 } 5472 -enum : uint { SERVICE_ERROR_SEVERE = 0x00000002 } 5473 -enum : uint { SERVICE_ERROR_CRITICAL = 0x00000003 } 5474 - 5475 -alias int _CM_SERVICE_NODE_TYPE; 5476 -enum { 5477 - DriverType = SERVICE_KERNEL_DRIVER, 5478 - FileSystemType = SERVICE_FILE_SYSTEM_DRIVER, 5479 - Win32ServiceOwnProcess = SERVICE_WIN32_OWN_PROCESS, 5480 - Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS, 5481 - AdapterType = SERVICE_ADAPTER, 5482 - RecognizerType = SERVICE_RECOGNIZER_DRIVER, 5483 -} 5484 -alias _CM_SERVICE_NODE_TYPE SERVICE_NODE_TYPE; 5485 - 5486 -alias int _CM_SERVICE_LOAD_TYPE; 5487 -enum { 5488 - BootLoad = SERVICE_BOOT_START, 5489 - SystemLoad = SERVICE_SYSTEM_START, 5490 - AutoLoad = SERVICE_AUTO_START, 5491 - DemandLoad = SERVICE_DEMAND_START, 5492 - DisableLoad = SERVICE_DISABLED, 5493 -} 5494 -alias _CM_SERVICE_LOAD_TYPE SERVICE_LOAD_TYPE; 5495 - 5496 -alias int _CM_ERROR_CONTROL_TYPE; 5497 -enum { 5498 - IgnoreError = SERVICE_ERROR_IGNORE, 5499 - NormalError = SERVICE_ERROR_NORMAL, 5500 - SevereError = SERVICE_ERROR_SEVERE, 5501 - CriticalError = SERVICE_ERROR_CRITICAL, 5502 -} 5503 -alias _CM_ERROR_CONTROL_TYPE SERVICE_ERROR_TYPE; 5504 - 5505 -enum : uint { TAPE_ERASE_SHORT = 0 } 5506 -enum : uint { TAPE_ERASE_LONG = 1 } 5507 - 5508 -struct _TAPE_ERASE { 5509 - DWORD Type; 5510 - BOOLEAN Immediate; 5511 -} 5512 -alias _TAPE_ERASE TAPE_ERASE; 5513 -alias _TAPE_ERASE* PTAPE_ERASE; 5514 - 5515 -enum : uint { TAPE_LOAD = 0 } 5516 -enum : uint { TAPE_UNLOAD = 1 } 5517 -enum : uint { TAPE_TENSION = 2 } 5518 -enum : uint { TAPE_LOCK = 3 } 5519 -enum : uint { TAPE_UNLOCK = 4 } 5520 -enum : uint { TAPE_FORMAT = 5 } 5521 - 5522 -struct _TAPE_PREPARE { 5523 - DWORD Operation; 5524 - BOOLEAN Immediate; 5525 -} 5526 -alias _TAPE_PREPARE TAPE_PREPARE; 5527 -alias _TAPE_PREPARE* PTAPE_PREPARE; 5528 - 5529 -enum : uint { TAPE_SETMARKS = 0 } 5530 -enum : uint { TAPE_FILEMARKS = 1 } 5531 -enum : uint { TAPE_SHORT_FILEMARKS = 2 } 5532 -enum : uint { TAPE_LONG_FILEMARKS = 3 } 5533 - 5534 -struct _TAPE_WRITE_MARKS { 5535 - DWORD Type; 5536 - DWORD Count; 5537 - BOOLEAN Immediate; 5538 -} 5539 -alias _TAPE_WRITE_MARKS TAPE_WRITE_MARKS; 5540 -alias _TAPE_WRITE_MARKS* PTAPE_WRITE_MARKS; 5541 - 5542 -enum : uint { TAPE_ABSOLUTE_POSITION = 0 } 5543 -enum : uint { TAPE_LOGICAL_POSITION = 1 } 5544 -enum : uint { TAPE_PSEUDO_LOGICAL_POSITION = 2 } 5545 - 5546 -struct _TAPE_GET_POSITION { 5547 - DWORD Type; 5548 - DWORD Partition; 5549 - LARGE_INTEGER Offset; 5550 -} 5551 -alias _TAPE_GET_POSITION TAPE_GET_POSITION; 5552 -alias _TAPE_GET_POSITION* PTAPE_GET_POSITION; 5553 - 5554 -enum : uint { TAPE_REWIND = 0 } 5555 -enum : uint { TAPE_ABSOLUTE_BLOCK = 1 } 5556 -enum : uint { TAPE_LOGICAL_BLOCK = 2 } 5557 -enum : uint { TAPE_PSEUDO_LOGICAL_BLOCK = 3 } 5558 -enum : uint { TAPE_SPACE_END_OF_DATA = 4 } 5559 -enum : uint { TAPE_SPACE_RELATIVE_BLOCKS = 5 } 5560 -enum : uint { TAPE_SPACE_FILEMARKS = 6 } 5561 -enum : uint { TAPE_SPACE_SEQUENTIAL_FMKS = 7 } 5562 -enum : uint { TAPE_SPACE_SETMARKS = 8 } 5563 -enum : uint { TAPE_SPACE_SEQUENTIAL_SMKS = 9 } 5564 - 5565 -struct _TAPE_SET_POSITION { 5566 - DWORD Method; 5567 - DWORD Partition; 5568 - LARGE_INTEGER Offset; 5569 - BOOLEAN Immediate; 5570 -} 5571 -alias _TAPE_SET_POSITION TAPE_SET_POSITION; 5572 -alias _TAPE_SET_POSITION* PTAPE_SET_POSITION; 5573 - 5574 -enum : uint { TAPE_DRIVE_FIXED = 0x00000001 } 5575 -enum : uint { TAPE_DRIVE_SELECT = 0x00000002 } 5576 -enum : uint { TAPE_DRIVE_INITIATOR = 0x00000004 } 5577 - 5578 -enum : uint { TAPE_DRIVE_ERASE_SHORT = 0x00000010 } 5579 -enum : uint { TAPE_DRIVE_ERASE_LONG = 0x00000020 } 5580 -enum : uint { TAPE_DRIVE_ERASE_BOP_ONLY = 0x00000040 } 5581 -enum : uint { TAPE_DRIVE_ERASE_IMMEDIATE = 0x00000080 } 5582 - 5583 -enum : uint { TAPE_DRIVE_TAPE_CAPACITY = 0x00000100 } 5584 -enum : uint { TAPE_DRIVE_TAPE_REMAINING = 0x00000200 } 5585 -enum : uint { TAPE_DRIVE_FIXED_BLOCK = 0x00000400 } 5586 -enum : uint { TAPE_DRIVE_VARIABLE_BLOCK = 0x00000800 } 5587 - 5588 -enum : uint { TAPE_DRIVE_WRITE_PROTECT = 0x00001000 } 5589 -enum : uint { TAPE_DRIVE_EOT_WZ_SIZE = 0x00002000 } 5590 - 5591 -enum : uint { TAPE_DRIVE_ECC = 0x00010000 } 5592 -enum : uint { TAPE_DRIVE_COMPRESSION = 0x00020000 } 5593 -enum : uint { TAPE_DRIVE_PADDING = 0x00040000 } 5594 -enum : uint { TAPE_DRIVE_REPORT_SMKS = 0x00080000 } 5595 - 5596 -enum : uint { TAPE_DRIVE_GET_ABSOLUTE_BLK = 0x00100000 } 5597 -enum : uint { TAPE_DRIVE_GET_LOGICAL_BLK = 0x00200000 } 5598 -enum : uint { TAPE_DRIVE_SET_EOT_WZ_SIZE = 0x00400000 } 5599 - 5600 -enum : uint { TAPE_DRIVE_EJECT_MEDIA = 0x01000000 } 5601 -enum : uint { TAPE_DRIVE_CLEAN_REQUESTS = 0x02000000 } 5602 -enum : uint { TAPE_DRIVE_SET_CMP_BOP_ONLY = 0x04000000 } 5603 - 5604 -enum : uint { TAPE_DRIVE_RESERVED_BIT = 0x80000000 } 5605 - 5606 -enum : uint { TAPE_DRIVE_LOAD_UNLOAD = 0x80000001 } 5607 -enum : uint { TAPE_DRIVE_TENSION = 0x80000002 } 5608 -enum : uint { TAPE_DRIVE_LOCK_UNLOCK = 0x80000004 } 5609 -enum : uint { TAPE_DRIVE_REWIND_IMMEDIATE = 0x80000008 } 5610 - 5611 -enum : uint { TAPE_DRIVE_SET_BLOCK_SIZE = 0x80000010 } 5612 -enum : uint { TAPE_DRIVE_LOAD_UNLD_IMMED = 0x80000020 } 5613 -enum : uint { TAPE_DRIVE_TENSION_IMMED = 0x80000040 } 5614 -enum : uint { TAPE_DRIVE_LOCK_UNLK_IMMED = 0x80000080 } 5615 - 5616 -enum : uint { TAPE_DRIVE_SET_ECC = 0x80000100 } 5617 -enum : uint { TAPE_DRIVE_SET_COMPRESSION = 0x80000200 } 5618 -enum : uint { TAPE_DRIVE_SET_PADDING = 0x80000400 } 5619 -enum : uint { TAPE_DRIVE_SET_REPORT_SMKS = 0x80000800 } 5620 - 5621 -enum : uint { TAPE_DRIVE_ABSOLUTE_BLK = 0x80001000 } 5622 -enum : uint { TAPE_DRIVE_ABS_BLK_IMMED = 0x80002000 } 5623 -enum : uint { TAPE_DRIVE_LOGICAL_BLK = 0x80004000 } 5624 -enum : uint { TAPE_DRIVE_LOG_BLK_IMMED = 0x80008000 } 5625 - 5626 -enum : uint { TAPE_DRIVE_END_OF_DATA = 0x80010000 } 5627 -enum : uint { TAPE_DRIVE_RELATIVE_BLKS = 0x80020000 } 5628 -enum : uint { TAPE_DRIVE_FILEMARKS = 0x80040000 } 5629 -enum : uint { TAPE_DRIVE_SEQUENTIAL_FMKS = 0x80080000 } 5630 - 5631 -enum : uint { TAPE_DRIVE_SETMARKS = 0x80100000 } 5632 -enum : uint { TAPE_DRIVE_SEQUENTIAL_SMKS = 0x80200000 } 5633 -enum : uint { TAPE_DRIVE_REVERSE_POSITION = 0x80400000 } 5634 -enum : uint { TAPE_DRIVE_SPACE_IMMEDIATE = 0x80800000 } 5635 - 5636 -enum : uint { TAPE_DRIVE_WRITE_SETMARKS = 0x81000000 } 5637 -enum : uint { TAPE_DRIVE_WRITE_FILEMARKS = 0x82000000 } 5638 -enum : uint { TAPE_DRIVE_WRITE_SHORT_FMKS = 0x84000000 } 5639 -enum : uint { TAPE_DRIVE_WRITE_LONG_FMKS = 0x88000000 } 5640 - 5641 -enum : uint { TAPE_DRIVE_WRITE_MARK_IMMED = 0x90000000 } 5642 -enum : uint { TAPE_DRIVE_FORMAT = 0xA0000000 } 5643 -enum : uint { TAPE_DRIVE_FORMAT_IMMEDIATE = 0xC0000000 } 5644 -enum : uint { TAPE_DRIVE_HIGH_FEATURES = 0x80000000 } 5645 - 5646 -struct _TAPE_GET_DRIVE_PARAMETERS { 5647 - BOOLEAN ECC; 5648 - BOOLEAN Compression; 5649 - BOOLEAN DataPadding; 5650 - BOOLEAN ReportSetmarks; 5651 - DWORD DefaultBlockSize; 5652 - DWORD MaximumBlockSize; 5653 - DWORD MinimumBlockSize; 5654 - DWORD MaximumPartitionCount; 5655 - DWORD FeaturesLow; 5656 - DWORD FeaturesHigh; 5657 - DWORD EOTWarningZoneSize; 5658 -} 5659 -alias _TAPE_GET_DRIVE_PARAMETERS TAPE_GET_DRIVE_PARAMETERS; 5660 -alias _TAPE_GET_DRIVE_PARAMETERS* PTAPE_GET_DRIVE_PARAMETERS; 5661 - 5662 -struct _TAPE_SET_DRIVE_PARAMETERS { 5663 - BOOLEAN ECC; 5664 - BOOLEAN Compression; 5665 - BOOLEAN DataPadding; 5666 - BOOLEAN ReportSetmarks; 5667 - DWORD EOTWarningZoneSize; 5668 -} 5669 -alias _TAPE_SET_DRIVE_PARAMETERS TAPE_SET_DRIVE_PARAMETERS; 5670 -alias _TAPE_SET_DRIVE_PARAMETERS* PTAPE_SET_DRIVE_PARAMETERS; 5671 - 5672 -struct _TAPE_GET_MEDIA_PARAMETERS { 5673 - LARGE_INTEGER Capacity; 5674 - LARGE_INTEGER Remaining; 5675 - DWORD BlockSize; 5676 - DWORD PartitionCount; 5677 - BOOLEAN WriteProtected; 5678 -} 5679 -alias _TAPE_GET_MEDIA_PARAMETERS TAPE_GET_MEDIA_PARAMETERS; 5680 -alias _TAPE_GET_MEDIA_PARAMETERS* PTAPE_GET_MEDIA_PARAMETERS; 5681 - 5682 -struct _TAPE_SET_MEDIA_PARAMETERS { 5683 - DWORD BlockSize; 5684 -} 5685 -alias _TAPE_SET_MEDIA_PARAMETERS TAPE_SET_MEDIA_PARAMETERS; 5686 -alias _TAPE_SET_MEDIA_PARAMETERS* PTAPE_SET_MEDIA_PARAMETERS; 5687 - 5688 -enum : uint { TAPE_FIXED_PARTITIONS = 0 } 5689 -enum : uint { TAPE_SELECT_PARTITIONS = 1 } 5690 -enum : uint { TAPE_INITIATOR_PARTITIONS = 2 } 5691 - 5692 -struct _TAPE_CREATE_PARTITION { 5693 - DWORD Method; 5694 - DWORD Count; 5695 - DWORD Size; 5696 -} 5697 -alias _TAPE_CREATE_PARTITION TAPE_CREATE_PARTITION; 5698 -alias _TAPE_CREATE_PARTITION* PTAPE_CREATE_PARTITION; 5699 - 5700 -enum : uint { TAPE_QUERY_DRIVE_PARAMETERS = 0 } 5701 -enum : uint { TAPE_QUERY_MEDIA_CAPACITY = 1 } 5702 -enum : uint { TAPE_CHECK_FOR_DRIVE_PROBLEM = 2 } 5703 -enum : uint { TAPE_QUERY_IO_ERROR_DATA = 3 } 5704 -enum : uint { TAPE_QUERY_DEVICE_ERROR_DATA = 4 } 5705 - 5706 -struct _TAPE_WMI_OPERATIONS { 5707 - DWORD Method; 5708 - DWORD DataBufferSize; 5709 - PVOID DataBuffer; 5710 -} 5711 -alias _TAPE_WMI_OPERATIONS TAPE_WMI_OPERATIONS; 5712 -alias _TAPE_WMI_OPERATIONS* PTAPE_WMI_OPERATIONS; 5713 - 5714 -alias int _TAPE_DRIVE_PROBLEM_TYPE; 5715 -enum { 5716 - TapeDriveProblemNone, 5717 - TapeDriveReadWriteWarning, 5718 - TapeDriveReadWriteError, 5719 - TapeDriveReadWarning, 5720 - TapeDriveWriteWarning, 5721 - TapeDriveReadError, 5722 - TapeDriveWriteError, 5723 - TapeDriveHardwareError, 5724 - TapeDriveUnsupportedMedia, 5725 - TapeDriveScsiConnectionError, 5726 - TapeDriveTimetoClean, 5727 - TapeDriveCleanDriveNow, 5728 - TapeDriveMediaLifeExpired, 5729 - TapeDriveSnappedTape, 5730 -} 5731 -alias _TAPE_DRIVE_PROBLEM_TYPE TAPE_DRIVE_PROBLEM_TYPE; 5732 - 5733 -// #if defined(_M_AMD64) && !defined(__midl) 5734 - 5735 -// ... 5736 - 5737 -// ... 5738 - 5739 -// ... 5740 - 5741 -// ... 5742 - 5743 -// ... 5744 - 5745 -// ... 5746 - 5747 -// #endif // _M_AMD64 && !defined(__midl) 5748 - 5749 -// #if (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED // winnt_only 5750 -enum : uint { ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION = 1 } 5751 -enum : uint { ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION = 2 } 5752 -enum : uint { ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION = 3 } 5753 -enum : uint { ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION = 4 } 5754 -enum : uint { ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION = 5 } 5755 -enum : uint { ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION = 6 } 5756 -enum : uint { ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION = 7 } 5757 -enum : uint { ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE = 8 } 5758 -// #endif // winnt_only 5759 - 5760 -// #ifdef __cplusplus 5761 -// } 5762 -// #endif 5763 - 5764 -// #endif /* _WINNT_ */ 5765 - 3978 +// TODO: MinGW implements these in assembly. How to translate? 3979 +PVOID GetCurrentFiber(); 3980 +PVOID GetFiberData();