/* Signed Types */
typedef SHORT *PSHORT;
typedef LONG *PLONG;
-typedef LONG NTSTATUS;
+typedef _Return_type_success_(return >= 0) LONG NTSTATUS;
typedef NTSTATUS *PNTSTATUS;
typedef signed char SCHAR;
typedef SCHAR *PSCHAR;
typedef _Null_terminated_ PCSTR *PZPCSTR;
/* Pointer to an Asciiz string */
-typedef CHAR *PSZ;
-typedef CONST char *PCSZ;
+typedef _Null_terminated_ CHAR *PSZ;
+typedef _Null_terminated_ CONST char *PCSZ;
/* UNICODE (Wide Character) types */
typedef wchar_t WCHAR;
typedef _Null_terminated_ CONST WCHAR *LPCWSTR, *PCWSTR;
typedef _Null_terminated_ PCWSTR *PZPCWSTR;
typedef _Null_terminated_ CONST WCHAR UNALIGNED *LPCUWSTR, *PCUWSTR;
+typedef _NullNull_terminated_ WCHAR *PZZWSTR;
/* Cardinal Data Types */
typedef char CCHAR, *PCCHAR;
typedef struct _STRING {
USHORT Length;
USHORT MaximumLength;
- PCHAR Buffer;
+#ifdef MIDL_PASS
+ [size_is(MaximumLength), length_is(Length) ]
+#endif
+ _Field_size_bytes_part_opt_(MaximumLength, Length) PCHAR Buffer;
} STRING, *PSTRING;
typedef STRING ANSI_STRING;
struct _CONTEXT;
struct _EXCEPTION_RECORD;
+_IRQL_requires_same_
+_Function_class_(EXCEPTION_ROUTINE)
typedef EXCEPTION_DISPOSITION
(NTAPI *PEXCEPTION_ROUTINE)(
- struct _EXCEPTION_RECORD *ExceptionRecord,
- PVOID EstablisherFrame,
- struct _CONTEXT *ContextRecord,
- PVOID DispatcherContext);
+ _Inout_ struct _EXCEPTION_RECORD *ExceptionRecord,
+ _In_ PVOID EstablisherFrame,
+ _Inout_ struct _CONTEXT *ContextRecord,
+ _In_ PVOID DispatcherContext);
typedef struct _GROUP_AFFINITY {
KAFFINITY Mask;