4e2933c620 2015-04-21 kinaba: /***********************************************************************\ 4e2933c620 2015-04-21 kinaba: * ntdef.d * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Windows API header module * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Translated from MinGW Windows headers * 4e2933c620 2015-04-21 kinaba: * by Stewart Gordon * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Placed into public domain * 4e2933c620 2015-04-21 kinaba: \***********************************************************************/ 4e2933c620 2015-04-21 kinaba: module win32.ntdef; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: private import win32.basetsd, win32.subauth, win32.windef, win32.winnt; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const uint 4e2933c620 2015-04-21 kinaba: OBJ_INHERIT = 0x0002, 4e2933c620 2015-04-21 kinaba: OBJ_PERMANENT = 0x0010, 4e2933c620 2015-04-21 kinaba: OBJ_EXCLUSIVE = 0x0020, 4e2933c620 2015-04-21 kinaba: OBJ_CASE_INSENSITIVE = 0x0040, 4e2933c620 2015-04-21 kinaba: OBJ_OPENIF = 0x0080, 4e2933c620 2015-04-21 kinaba: OBJ_OPENLINK = 0x0100, 4e2933c620 2015-04-21 kinaba: OBJ_VALID_ATTRIBUTES = 0x01F2; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: void InitializeObjectAttributes(OBJECT_ATTRIBUTES* p, UNICODE_STRING* n, 4e2933c620 2015-04-21 kinaba: uint a, HANDLE r, void* s) { 4e2933c620 2015-04-21 kinaba: with (*p) { 4e2933c620 2015-04-21 kinaba: Length = OBJECT_ATTRIBUTES.sizeof; 4e2933c620 2015-04-21 kinaba: RootDirectory = r; 4e2933c620 2015-04-21 kinaba: Attributes = a; 4e2933c620 2015-04-21 kinaba: ObjectName = n; 4e2933c620 2015-04-21 kinaba: SecurityDescriptor = s; 4e2933c620 2015-04-21 kinaba: SecurityQualityOfService = null; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: bool NT_SUCCESS(int x) { return x >= 0; } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /* In MinGW, NTSTATUS, UNICODE_STRING, STRING and their associated pointer 4e2933c620 2015-04-21 kinaba: * type aliases are defined in ntdef.h, ntsecapi.h and subauth.h, each of 4e2933c620 2015-04-21 kinaba: * which checks that none of the others is already included. 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: alias int NTSTATUS; 4e2933c620 2015-04-21 kinaba: alias int* PNTSTATUS; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct UNICODE_STRING { 4e2933c620 2015-04-21 kinaba: USHORT Length; 4e2933c620 2015-04-21 kinaba: USHORT MaximumLength; 4e2933c620 2015-04-21 kinaba: PWSTR Buffer; 4e2933c620 2015-04-21 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias UNICODE_STRING* PUNICODE_STRING; 9b639cf2d6 2015-05-05 kinaba: alias const(UNICODE_STRING)* PCUNICODE_STRING; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct STRING { 4e2933c620 2015-04-21 kinaba: USHORT Length; 4e2933c620 2015-04-21 kinaba: USHORT MaximumLength; 4e2933c620 2015-04-21 kinaba: PCHAR Buffer; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias STRING ANSI_STRING, OEM_STRING; 4e2933c620 2015-04-21 kinaba: alias STRING* PSTRING, PANSI_STRING, POEM_STRING; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias LARGE_INTEGER PHYSICAL_ADDRESS; 4e2933c620 2015-04-21 kinaba: alias LARGE_INTEGER* PPHYSICAL_ADDRESS; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum SECTION_INHERIT { 4e2933c620 2015-04-21 kinaba: ViewShare = 1, 4e2933c620 2015-04-21 kinaba: ViewUnmap 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /* In MinGW, this is defined in ntdef.h and ntsecapi.h, each of which checks 4e2933c620 2015-04-21 kinaba: * that the other isn't already included. 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: struct OBJECT_ATTRIBUTES { 4e2933c620 2015-04-21 kinaba: ULONG Length = OBJECT_ATTRIBUTES.sizeof; 4e2933c620 2015-04-21 kinaba: HANDLE RootDirectory; 4e2933c620 2015-04-21 kinaba: PUNICODE_STRING ObjectName; 4e2933c620 2015-04-21 kinaba: ULONG Attributes; 4e2933c620 2015-04-21 kinaba: PVOID SecurityDescriptor; 4e2933c620 2015-04-21 kinaba: PVOID SecurityQualityOfService; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias OBJECT_ATTRIBUTES* POBJECT_ATTRIBUTES;