1999-02-12 14:44:38 +01:00
|
|
|
#ifndef __WINE_NTDEF_H
|
|
|
|
#define __WINE_NTDEF_H
|
|
|
|
|
1999-07-04 17:56:03 +02:00
|
|
|
#include "basetsd.h"
|
1999-03-14 17:35:05 +01:00
|
|
|
#include "windef.h"
|
1999-03-09 18:46:10 +01:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
1999-02-12 14:44:38 +01:00
|
|
|
#define NTAPI __stdcall
|
|
|
|
|
1999-02-19 17:29:05 +01:00
|
|
|
#ifndef IN
|
|
|
|
#define IN
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef OUT
|
|
|
|
#define OUT
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef OPTIONAL
|
|
|
|
#define OPTIONAL
|
|
|
|
#endif
|
|
|
|
|
1999-03-09 18:46:10 +01:00
|
|
|
#ifndef VOID
|
|
|
|
#define VOID void
|
|
|
|
#endif
|
|
|
|
|
|
|
|
typedef LONG NTSTATUS;
|
|
|
|
typedef NTSTATUS *PNTSTATUS;
|
|
|
|
|
|
|
|
typedef short CSHORT;
|
|
|
|
typedef CSHORT *PCSHORT;
|
|
|
|
|
|
|
|
|
1999-02-12 14:44:38 +01:00
|
|
|
/* NT lowlevel Strings (handled by Rtl* functions in NTDLL)
|
|
|
|
* If they are zero terminated, Length does not include the terminating 0.
|
|
|
|
*/
|
|
|
|
|
|
|
|
typedef struct _STRING {
|
1999-03-09 18:46:10 +01:00
|
|
|
USHORT Length;
|
|
|
|
USHORT MaximumLength;
|
|
|
|
PSTR Buffer;
|
1999-02-12 14:44:38 +01:00
|
|
|
} STRING,*PSTRING,ANSI_STRING,*PANSI_STRING;
|
|
|
|
|
|
|
|
typedef struct _CSTRING {
|
1999-03-09 18:46:10 +01:00
|
|
|
USHORT Length;
|
|
|
|
USHORT MaximumLength;
|
|
|
|
PCSTR Buffer;
|
1999-02-12 14:44:38 +01:00
|
|
|
} CSTRING,*PCSTRING;
|
|
|
|
|
|
|
|
typedef struct _UNICODE_STRING {
|
1999-03-09 18:46:10 +01:00
|
|
|
USHORT Length; /* bytes */
|
|
|
|
USHORT MaximumLength; /* bytes */
|
|
|
|
PWSTR Buffer;
|
1999-02-12 14:44:38 +01:00
|
|
|
} 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;
|
1999-02-26 12:11:13 +01:00
|
|
|
HANDLE RootDirectory;
|
1999-02-12 14:44:38 +01:00
|
|
|
PUNICODE_STRING ObjectName;
|
|
|
|
ULONG Attributes;
|
|
|
|
PVOID SecurityDescriptor; /* type SECURITY_DESCRIPTOR */
|
|
|
|
PVOID SecurityQualityOfService; /* type SECURITY_QUALITY_OF_SERVICE */
|
|
|
|
} OBJECT_ATTRIBUTES;
|
|
|
|
|
|
|
|
typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;
|
|
|
|
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
#define InitializeObjectAttributes(p,n,a,r,s) \
|
|
|
|
{ (p)->Length = sizeof(OBJECT_ATTRIBUTES); \
|
|
|
|
(p)->RootDirectory = r; \
|
|
|
|
(p)->Attributes = a; \
|
|
|
|
(p)->ObjectName = n; \
|
|
|
|
(p)->SecurityDescriptor = s; \
|
|
|
|
(p)->SecurityQualityOfService = NULL; \
|
|
|
|
}
|
|
|
|
|
|
|
|
|
1999-03-09 18:46:10 +01:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
1999-02-12 14:44:38 +01:00
|
|
|
|
|
|
|
#endif
|