ntdef.h 1.65 KB
Newer Older
1 2 3
#ifndef __WINE_NTDEF_H
#define __WINE_NTDEF_H

4
#include "basetsd.h"
5
#include "windef.h"
Juergen Schmied's avatar
Juergen Schmied committed
6 7 8 9 10

#ifdef __cplusplus
extern "C" {
#endif

11 12
#define NTAPI   __stdcall 

13 14 15 16 17 18 19 20 21 22 23 24
#ifndef IN
#define IN
#endif

#ifndef OUT
#define OUT
#endif

#ifndef OPTIONAL
#define OPTIONAL
#endif

Juergen Schmied's avatar
Juergen Schmied committed
25 26 27 28 29 30 31 32 33 34 35 36
#ifndef VOID
#define VOID void
#endif

typedef LONG NTSTATUS;
typedef NTSTATUS *PNTSTATUS;

typedef short CSHORT;
typedef CSHORT *PCSHORT;  

typedef WCHAR * PWCHAR;

37 38 39 40 41
/* NT lowlevel Strings (handled by Rtl* functions in NTDLL)
 * If they are zero terminated, Length does not include the terminating 0.
 */

typedef struct _STRING {
Juergen Schmied's avatar
Juergen Schmied committed
42 43 44
	USHORT	Length;
	USHORT	MaximumLength;
	PSTR	Buffer;
45 46 47
} STRING,*PSTRING,ANSI_STRING,*PANSI_STRING;

typedef struct _CSTRING {
Juergen Schmied's avatar
Juergen Schmied committed
48 49 50
	USHORT	Length;
	USHORT	MaximumLength;
	PCSTR	Buffer;
51 52 53
} CSTRING,*PCSTRING;

typedef struct _UNICODE_STRING {
Juergen Schmied's avatar
Juergen Schmied committed
54 55 56
	USHORT	Length;		/* bytes */
	USHORT	MaximumLength;	/* bytes */
	PWSTR	Buffer;
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
} UNICODE_STRING,*PUNICODE_STRING;

/*
	Objects
*/

#define OBJ_INHERIT             0x00000002L
#define OBJ_PERMANENT           0x00000010L
#define OBJ_EXCLUSIVE           0x00000020L
#define OBJ_CASE_INSENSITIVE    0x00000040L
#define OBJ_OPENIF              0x00000080L
#define OBJ_OPENLINK            0x00000100L
#define OBJ_KERNEL_HANDLE       0x00000200L
#define OBJ_VALID_ATTRIBUTES    0x000003F2L

typedef struct _OBJECT_ATTRIBUTES 
{   ULONG Length;
74
    HANDLE RootDirectory;
75 76 77 78 79 80 81 82
    PUNICODE_STRING ObjectName;
    ULONG Attributes;
    PVOID SecurityDescriptor;        /* type SECURITY_DESCRIPTOR */
    PVOID SecurityQualityOfService;  /* type SECURITY_QUALITY_OF_SERVICE */
} OBJECT_ATTRIBUTES;

typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;

Juergen Schmied's avatar
Juergen Schmied committed
83 84 85
#ifdef __cplusplus
}
#endif
86 87

#endif