File Annotation

Not logged in
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: }
4e2933c620 2015-04-21        kinaba: alias UNICODE_STRING*       PUNICODE_STRING;
4e2933c620 2015-04-21        kinaba: alias CPtr!(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;