Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygensal.h
Go to the documentation of this file.
00001 /* 00002 * sal.h 00003 * 00004 * Standard Annotation Language (SAL) definitions 00005 * 00006 * This file is part of the ReactOS PSDK package. 00007 * 00008 * Contributors: 00009 * Timo Kreuzer (timo.kreuzer@reactos.org) 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #pragma once 00024 #define __ATTR_SAL 00025 00026 /* HACK: gcc's C++ headers conflict with oldstyle macros */ 00027 #if !defined(__cplusplus) || !defined(__GNUC__) 00028 #include <sal_old.h> 00029 #endif 00030 00031 #ifdef _PREFAST_ 00032 00033 #pragma warning(disable:6320) /* disable warning about SEH filter */ 00034 #pragma warning(disable:28247) /* duplicated model file annotations */ 00035 #pragma warning(disable:28251) /* Inconsistent annotation */ 00036 00037 00038 #ifndef _USE_DECLSPECS_FOR_SAL 00039 #define _USE_DECLSPECS_FOR_SAL 1 00040 #endif 00041 00042 #if !defined(_USE_ATTRIBUTES_FOR_SAL) || _USE_DECLSPECS_FOR_SAL 00043 #define _USE_ATTRIBUTES_FOR_SAL 0 00044 #endif 00045 00046 #if !_USE_DECLSPECS_FOR_SAL && !_USE_ATTRIBUTES_FOR_SAL 00047 #if _MSC_VER >= 1400 00048 #undef _USE_ATTRIBUTES_FOR_SAL 00049 #define _USE_ATTRIBUTES_FOR_SAL 1 00050 #else 00051 #undef _USE_DECLSPECS_FOR_SAL 00052 #define _USE_DECLSPECS_FOR_SAL 1 00053 #endif /* _MSC_VER >= 1400 */ 00054 #endif /* !_USE_DECLSPECS_FOR_SAL && !_USE_ATTRIBUTES_FOR_SAL */ 00055 00056 #else /* _PREFAST_ */ 00057 00058 #undef _USE_DECLSPECS_FOR_SAL 00059 #define _USE_DECLSPECS_FOR_SAL 0 00060 #undef _USE_ATTRIBUTES_FOR_SAL 00061 #define _USE_ATTRIBUTES_FOR_SAL 0 00062 00063 #endif /* _PREFAST_ */ 00064 00065 #if defined(MIDL_PASS) || defined(__midl) || defined(RC_INVOKED) 00066 #undef _USE_DECLSPECS_FOR_SAL 00067 #define _USE_DECLSPECS_FOR_SAL 0 00068 #undef _USE_ATTRIBUTES_FOR_SAL 00069 #define _USE_ATTRIBUTES_FOR_SAL 0 00070 #endif 00071 00072 #if !defined(_MSC_EXTENSIONS) || defined(_M_CEE_SAFE) 00073 #undef _USE_ATTRIBUTES_FOR_SAL 00074 #define _USE_ATTRIBUTES_FOR_SAL 0 00075 #endif 00076 00077 00078 #if _USE_ATTRIBUTES_FOR_SAL || _USE_DECLSPECS_FOR_SAL 00079 00080 #define _SA_SPECSTRIZE(x) #x 00081 00082 #if _USE_ATTRIBUTES_FOR_SAL 00083 00084 #if (_MSC_VER < 1400) 00085 #error attribute sal only works with _MSC_VER >= 1400 00086 #endif 00087 00088 #if !defined(_W64) 00089 # if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 00090 # define _W64 __w64 00091 # else 00092 # define _W64 00093 # endif 00094 #endif 00095 00096 #ifndef _SIZE_T_DEFINED 00097 # ifdef _WIN64 00098 typedef unsigned __int64 size_t; 00099 # else 00100 typedef _W64 unsigned int size_t; 00101 # endif 00102 # define _SIZE_T_DEFINED 00103 #endif 00104 00105 #ifndef _WCHAR_T_DEFINED 00106 typedef unsigned short wchar_t; 00107 # define _WCHAR_T_DEFINED 00108 #endif 00109 00110 #ifdef __cplusplus 00111 # define SA(id) id 00112 # define REPEATABLE [repeatable] 00113 # define CONSTRUCTOR(name) name(); 00114 namespace vc_attributes { 00115 #else 00116 # define SA(id) SA_##id 00117 # define REPEATABLE 00118 # define CONSTRUCTOR(name) 00119 #endif 00120 #define ATTR_SA_ALL [source_annotation_attribute(SA(All))] 00121 00122 typedef enum SA(YesNoMaybe) 00123 { 00124 SA(No) = 0x0fff0001, 00125 SA(Maybe) = 0x0fff0010, 00126 SA(Yes) = 0x0fff0100 00127 } SA(YesNoMaybe); 00128 00129 typedef enum SA(AccessType) 00130 { 00131 SA(NoAccess) = 0, 00132 SA(Read) = 1, 00133 SA(Write) = 2, 00134 SA(ReadWrite) = 3 00135 } SA(AccessType); 00136 00137 #define DECLARE_ATTR(Name, ...) \ 00138 ATTR_SA_ALL \ 00139 typedef struct Name \ 00140 { \ 00141 CONSTRUCTOR(Name) \ 00142 __VA_ARGS__ \ 00143 } Name, 00144 00145 REPEATABLE DECLARE_ATTR(PreAttribute, unsigned int Deref;SA(YesNoMaybe) Valid;SA(YesNoMaybe) Null;SA(YesNoMaybe) Tainted;SA(AccessType) Access;unsigned int Notref; 00146 size_t ValidElementsConst;size_t ValidBytesConst;const wchar_t* ValidElements;const wchar_t* ValidBytes;const wchar_t* ValidElementsLength;const wchar_t* ValidBytesLength; 00147 size_t WritableElementsConst;size_t WritableBytesConst;const wchar_t* WritableElements;const wchar_t* WritableBytes;const wchar_t* WritableElementsLength; 00148 const wchar_t* WritableBytesLength;size_t ElementSizeConst;const wchar_t* ElementSize;SA(YesNoMaybe) NullTerminated;const wchar_t* Condition;) SA_Pre; 00149 REPEATABLE DECLARE_ATTR(PostAttribute, unsigned int Deref;SA(YesNoMaybe) Valid;SA(YesNoMaybe) Null;SA(YesNoMaybe) Tainted;SA(AccessType) Access; 00150 unsigned int Notref;size_t ValidElementsConst;size_t ValidBytesConst;const wchar_t* ValidElements;const wchar_t* ValidBytes; 00151 const wchar_t* ValidElementsLength;const wchar_t* ValidBytesLength;size_t WritableElementsConst;size_t WritableBytesConst; 00152 const wchar_t* WritableElements;const wchar_t* WritableBytes;const wchar_t* WritableElementsLength;const wchar_t* WritableBytesLength; 00153 size_t ElementSizeConst;const wchar_t* ElementSize;SA(YesNoMaybe) NullTerminated;SA(YesNoMaybe) MustCheck;const wchar_t* Condition;) SA_Post; 00154 DECLARE_ATTR(FormatStringAttribute, const wchar_t* Style; const wchar_t* UnformattedAlternative;) SA_FormatString; 00155 REPEATABLE DECLARE_ATTR(PreBoundAttribute, unsigned int Deref;) SA_PreBound; 00156 REPEATABLE DECLARE_ATTR(PostBoundAttribute, unsigned int Deref;) SA_PostBound; 00157 REPEATABLE DECLARE_ATTR(PreRangeAttribute, unsigned int Deref;const char* MinVal;const char* MaxVal;) SA_PreRange; 00158 REPEATABLE DECLARE_ATTR(PostRangeAttribute, unsigned int Deref;const char* MinVal;const char* MaxVal;) SA_PostRange; 00159 REPEATABLE DECLARE_ATTR(DerefAttribute, int unused;) SAL_deref; 00160 REPEATABLE DECLARE_ATTR(NotrefAttribute, int unused;) SAL_notref; 00161 REPEATABLE DECLARE_ATTR(AnnotesAttribute, wchar_t *Name;wchar_t *p1;wchar_t *p2;wchar_t *p3;wchar_t *p4;wchar_t *p5;wchar_t *p6;wchar_t *p7;wchar_t *p8;wchar_t *p9;) SAL_annotes; 00162 REPEATABLE DECLARE_ATTR(AtAttribute, wchar_t *p1;) SAL_at; 00163 REPEATABLE DECLARE_ATTR(AtBufferAttribute, wchar_t *p1;wchar_t *p2;wchar_t *p3;) SAL_at_buffer; 00164 REPEATABLE DECLARE_ATTR(WhenAttribute, wchar_t *p1;) SAL_when; 00165 REPEATABLE DECLARE_ATTR(TypefixAttribute, wchar_t *p1;) SAL_typefix; 00166 REPEATABLE DECLARE_ATTR(ContextAttribute, wchar_t *p1;) SAL_context; 00167 REPEATABLE DECLARE_ATTR(ExceptAttribute, int unused;) SAL_except; 00168 REPEATABLE DECLARE_ATTR(PreOpAttribute, int unused;) SAL_pre; 00169 REPEATABLE DECLARE_ATTR(PostOpAttribute, int unused;) SAL_post; 00170 REPEATABLE DECLARE_ATTR(BeginAttribute, int unused;) SAL_begin; 00171 REPEATABLE DECLARE_ATTR(EndAttribute, int unused;) SAL_end; 00172 00173 #ifdef __cplusplus 00174 }; 00175 #endif 00176 00177 #undef REPEATABLE 00178 #undef SA 00179 #undef DECLARE_ATTR 00180 00181 00182 #if (_MSC_VER >= 1610) 00183 #define NL_(size) "\n"#size 00184 #else 00185 #define NL_(size) #size 00186 #endif 00187 00188 #define _SA_annotes0(n) [SAL_annotes(Name=#n)] 00189 #define _SA_annotes1(n,pp1) [SAL_annotes(Name=#n, p1=_SA_SPECSTRIZE(pp1))] 00190 #define _SA_annotes2(n,pp1,pp2) [SAL_annotes(Name=#n, p1=_SA_SPECSTRIZE(pp1), p2=_SA_SPECSTRIZE(pp2))] 00191 #define _SA_annotes3(n,pp1,pp2,pp3) [SAL_annotes(Name=#n, p1=_SA_SPECSTRIZE(pp1), p2=_SA_SPECSTRIZE(pp2), p3=_SA_SPECSTRIZE(pp3))] 00192 00193 #define _SA_Deref_pre1_(p1) [SA_Pre(Deref=1,p1)] 00194 #define _SA_Deref_pre2_(p1,p2) [SA_Pre(Deref=1,p1,p2)] 00195 #define _SA_Deref_pre3_(p1,p2,p3) [SA_Pre(Deref=1,p1,p2,p3)] 00196 #define _SA_Deref_post1_(p1) [SA_Post(Deref=1,p1)] 00197 #define _SA_Deref_post2_(p1,p2) [SA_Post(Deref=1,p1,p2)] 00198 #define _SA_Deref_post3_(p1,p2,p3) [SA_Post(Deref=1,p1,p2,p3)] 00199 #define _SA_Deref_in_bound_ [SA_PreBound(Deref=1)] 00200 #define _SA_Pre1_(p1) [SA_Pre(p1)] 00201 #define _SA_Pre2_(p1,p2) [SA_Pre(p1,p2)] 00202 #define _SA_Pre3_(p1,p2,p3) [SA_Pre(p1,p2,p3)] 00203 #define _SA_Post1_(p1) [SA_Post(p1)] 00204 #define _SA_Post2_(p1,p2) [SA_Post(p1,p2)] 00205 #define _SA_Post3_(p1,p2,p3) [SA_Post(p1,p2,p3)] 00206 #define _SA_Deref_ret1_(p1) [returnvalue:SA_Post(Deref=1,p1)] 00207 #define _SA_Deref2_pre1_(p1) [SA_Pre(Deref=2,Notref=1,p1)] 00208 #define _SA_Ret1_(p1) [returnvalue:SA_Post(p1)] 00209 #define _SA_Ret2_(p1,p2) [returnvalue:SA_Post(p1,p2)] 00210 #define _SA_Ret3_(p1,p2,p3) [returnvalue:SA_Post(p1,p2,p3)] 00211 00212 #define __null_impl Null=SA_Yes 00213 #define __null_impl_notref Null=SA_Yes,Notref=1 00214 #define __notnull_impl Null=SA_No 00215 #define __notnull_impl_notref Null=SA_No,Notref=1 00216 #define __maybenull_impl Null=SA_Maybe 00217 #define __maybenull_impl_notref Null=SA_Maybe,Notref=1 00218 #define __valid_impl Valid=SA_Yes 00219 #define __notvalid_impl Valid=SA_No 00220 #define __maybevalid_impl Valid=SA_Maybe 00221 #define __readaccess_impl_notref Access=SA_Read,Notref=1 00222 #define __writeaccess_impl_notref Access=SA_Write,Notref=1 00223 #define __bytecap_impl(size) WritableBytes=_NL_(size) 00224 #define __bytecap_c_impl(size) WritableBytesConst=size 00225 #define __bytecap_x_impl(size) WritableBytes="\n@"#size 00226 #define __cap_impl(size) WritableElements=_NL_(size) 00227 #define __cap_c_impl(size) WritableElementsConst=size 00228 #define __cap_c_one_notref_impl WritableElementsConst=1,Notref=1 00229 #define __cap_for_impl(param) WritableElementsLength=#param 00230 #define __cap_x_impl(size) WritableElements="\n@"#size 00231 #define __bytecount_impl(size) ValidBytes=_NL_(size) 00232 #define __bytecount_c_impl(size) ValidBytesConst=size 00233 #define __bytecount_x_impl(size) ValidBytes="\n@"#size 00234 #define __count_impl(size) ValidElements=_NL_(size) 00235 #define __count_c_impl(size) ValidElementsConst=size 00236 #define __count_x_impl(size) ValidElements="\n@"#size 00237 #define __zterm_impl NullTerminated=SA_Yes 00238 #define __notzterm_impl NullTerminated=SA_No 00239 #define __maybezterm_impl NullTerminated=SA_Maybe 00240 #define __mult_impl(mult,size) __cap_impl((mult)*(size)) 00241 00242 #else /* #if _USE_DECLSPECS_FOR_SAL */ 00243 00244 #define _SA_annotes0(n) __declspec(#n) 00245 #define _SA_annotes1(n,pp1) __declspec(#n "(" _SA_SPECSTRIZE(pp1) ")" ) 00246 #define _SA_annotes2(n,pp1,pp2) __declspec(#n "(" _SA_SPECSTRIZE(pp1) "," _SA_SPECSTRIZE(pp2) ")") 00247 #define _SA_annotes3(n,pp1,pp2,pp3) __declspec(#n "(" _SA_SPECSTRIZE(pp1) "," _SA_SPECSTRIZE(pp2) "," _SA_SPECSTRIZE(pp3) ")") 00248 00249 #define _SA_Deref_pre_ _Pre_ _Notref_ _SA_Deref_ 00250 #define _SA_Deref_pre1_(p1) _SA_Deref_pre_ p1 00251 #define _SA_Deref_pre2_(p1,p2) _SA_Deref_pre_ p1 _SA_Deref_pre_ p2 00252 #define _SA_Deref_pre3_(p1,p2,p3) _SA_Deref_pre_ p1 _SA_Deref_pre_ p2 _SA_Deref_pre_ p3 00253 #define _SA_Deref_post_ _Post_ _Notref_ _SA_Deref_ 00254 #define _SA_Deref_post1_(p1) _SA_Deref_post_ p1 00255 #define _SA_Deref_post2_(p1,p2) _SA_Deref_post_ p1 _SA_Deref_post_ p2 00256 #define _SA_Deref_post3_(p1,p2,p3) _SA_Deref_post_ p1 _SA_Deref_post_ p2 _SA_Deref_post_ p3 00257 #define _SA_Deref_in_bound_ _Pre_ _Notref_ _SA_Deref_ _SA_Bound_ 00258 #define _SA_Pre1_(p1) _Pre_ p1 00259 #define _SA_Pre2_(p1,p2) _Pre_ p1 _Pre_ p2 00260 #define _SA_Pre3_(p1,p2,p3) _Pre_ p1 _Pre_ p2 _Pre_ p3 00261 #define _SA_Post1_(p1) _Post_ p1 00262 #define _SA_Post2_(p1,p2) _Post_ p1 _Post_ p2 00263 #define _SA_Post3_(p1,p2,p3) _Post_ p1 _Post_ p2 _Post_ p3 00264 #define _SA_Deref_ret1_(p1) _SA_Deref_post_ p1 00265 #define _SA_Deref2_pre1_(p1) _SA_Deref_pre_ _Notref_ _SA_Deref_ p1 00266 #define _SA_Ret1_(p1) _Post_ p1 00267 #define _SA_Ret2_(p1,p2) _Post_ p1 _Post_ p2 00268 #define _SA_Ret3_(p1,p2,p3) _Post_ p1 _Post_ p2 _Post_ p3 00269 00270 #define __null_impl _Null_ 00271 #define __null_impl_notref _Notref_ _Null_ 00272 #define __notnull_impl _Notnull_ 00273 #define __notnull_impl_notref _Notref_ _Notnull_ 00274 #define __maybenull_impl __inner_exceptthat _Maybenull_ 00275 #define __maybenull_impl_notref _Notref_ __inner_exceptthat _Maybenull_ 00276 #define __valid_impl __declspec("SAL_valid") // __declspec("SAL_valid(__yes)") 00277 #define __maybevalid_impl __declspec("SAL_maybevalid") // __declspec("SAL_valid(__maybe)") 00278 #define __notvalid_impl __declspec("SAL_notvalid") // __declspec("SAL_valid(__no)") 00279 #define __readaccess_impl_notref _Notref_ __declspec("SAL_readonly") // __declspec("SAL_access(0x1)") 00280 #define __writeaccess_impl_notref _Notref_ __declspec("SAL_notreadonly") // __declspec("SAL_access(0x2)") 00281 #define __bytecap_impl(size) _SA_annotes1(SAL_writableTo,byteCount(size)) 00282 #define __bytecap_c_impl(size) _SA_annotes1(SAL_writableTo,byteCount(size)) 00283 #define __bytecap_x_impl(size) _SA_annotes1(SAL_writableTo,inexpressibleCount(#size)) 00284 #define __cap_impl(size) _SA_annotes1(SAL_writableTo,elementCount(size)) 00285 #define __cap_c_impl(size) _SA_annotes1(SAL_writableTo,elementCount(size)) 00286 #define __cap_c_one_notref_impl _Notref_ __cap_c_impl(1) 00287 #define __cap_for_impl(param) _SA_annotes1(SAL_writableTo,inexpressibleCount(sizeof(param))) 00288 #define __cap_x_impl(size) _SA_annotes1(SAL_writableTo,inexpressibleCount(#size)) 00289 #define __bytecount_impl(size) _SA_annotes1(SAL_readableTo,byteCount(size)) 00290 #define __bytecount_c_impl(size) _SA_annotes1(SAL_readableTo,byteCount(size)) 00291 #define __bytecount_x_impl(size) _SA_annotes1(SAL_readableTo,inexpressibleCount(#size)) 00292 #define __count_impl(size) _SA_annotes1(SAL_readableTo,elementCount(size)) 00293 #define __count_c_impl(size) _SA_annotes1(SAL_readableTo,elementCount(size)) 00294 #define __count_x_impl(size) _SA_annotes1(SAL_readableTo,inexpressibleCount(#size)) 00295 #define __zterm_impl _SA_annotes1(SAL_nullTerminated, __yes) 00296 #define __notzterm_impl _SA_annotes1(SAL_nullTerminated, __no) 00297 #define __maybezterm_impl _SA_annotes1(SAL_nullTerminated, __maybe) 00298 #define __mult_impl(mult,size) _SA_annotes1(SAL_writableTo,(mult)*(size)) 00299 00300 #endif 00301 00302 /* Common internal */ 00303 #define _SA_Bound_ _SA_annotes0(SAL_bound) 00304 #define _SA_Deref_ _SA_annotes0(SAL_deref) 00305 #define _SA_Satisfies_(cond) _SA_annotes1(SAL_satisfies, cond) 00306 #if (_MSC_VER >= 1600) 00307 #define _SA_Must_inspect_ _Post_ _SA_annotes0(SAL_mustInspect) 00308 #else 00309 #define _SA_Must_inspect_ 00310 #endif 00311 #define _Old_(x) x 00312 #define __AuToQuOtE _SA_annotes0(SAL_AuToQuOtE) 00313 00314 /****************************************************************************** 00315 * Public macros * 00316 ******************************************************************************/ 00317 00318 #if _USE_ATTRIBUTES_FOR_SAL 00319 00320 #define _Check_return_ [returnvalue:SA_Post(MustCheck=SA_Yes)] 00321 #define _Deref_in_bound_ [SA_PreBound(Deref=1)] 00322 #define _Deref_out_bound_ [SA_PostBound(Deref=1)] 00323 #define _Deref_in_range_(min,max) [SA_PreRange(Deref=1,MinVal=#min,MaxVal=#max)] 00324 #define _Deref_out_range_(min,max) [SA_PostRange(Deref=1,MinVal=#min,MaxVal=#max)] 00325 #define _Deref_ret_bound_ [returnvalue:SA_PostBound(Deref=1)] 00326 #define _Deref_ret_range_(min,max) [returnvalue:SA_PostRange(Deref=1,MinVal=#min,MaxVal=#max)] 00327 #define _In_bound_ [SA_PreBound(Deref=0)] 00328 #define _In_range_(min,max) [SA_PreRange(MinVal=#min,MaxVal=#max)] 00329 #define _Out_bound_ [SA_PostBound(Deref=0)] 00330 #define _Out_range_(min,max) [SA_PostRange(MinVal=#min,MaxVal=#max)] 00331 #define _Printf_format_string_ [SA_FormatString(Style="printf")] 00332 #define _Scanf_format_string_ [SA_FormatString(Style="scanf")] 00333 #define _Scanf_s_format_string_ [SA_FormatString(Style="scanf_s")] 00334 #define _Ret_bound_ [returnvalue:SA_PostBound(Deref=0)] 00335 #define _Ret_range_(min,max) [returnvalue:SA_PostRange(MinVal=#min,MaxVal=#max)] 00336 #define _Use_decl_annotations_ _SA_annotes0(SAL_useHeader) 00337 #define __inner_exceptthat [SAL_except] 00338 #define __inner_typefix(ctype) [SAL_typefix(p1=_SA_SPECSTRIZE(ctype))] 00339 00340 #elif _USE_DECLSPECS_FOR_SAL 00341 00342 #define _Check_return_ _Post_ __declspec("SAL_checkReturn") 00343 #define _Deref_in_bound_ _SA_Deref_pre_ _SA_Bound_ 00344 #define _Deref_out_bound_ _SA_Deref_post_ _SA_Bound_ 00345 #define _Deref_in_range_(min,max) _SA_Deref_pre_ _Field_range_(min,max) 00346 #define _Deref_out_range_(min,max) _SA_Deref_post_ _Field_range_(min,max) 00347 #define _Deref_ret_bound_ _SA_Deref_post_ _SA_Bound_ 00348 #define _Deref_ret_range_(min,max) _SA_Deref_post_ _Field_range_(min,max) 00349 #define _In_bound_ _Pre_ _SA_Bound_ 00350 #define _In_range_(min,max) _Pre_ _Field_range_(min,max) 00351 #define _Out_bound_ _Post_ _SA_Bound_ 00352 #define _Out_range_(min,max) _Post_ _Field_range_(min,max) 00353 #define _Printf_format_string_ _SA_annotes1(SAL_IsFormatString, "printf") 00354 #define _Scanf_format_string_ _SA_annotes1(SAL_IsFormatString, "scanf") 00355 #define _Scanf_s_format_string_ _SA_annotes1(SAL_IsFormatString, "scanf_s") 00356 #define _Ret_bound_ _Post_ _SA_Bound_ 00357 #define _Ret_range_(min,max) _Post_ _Field_range_(min,max) 00358 #define _Use_decl_annotations_ _ _declspec("SAL_useHeader()") 00359 #define __inner_exceptthat _SA_annotes0(SAL_except) 00360 #define __inner_typefix(ctype) _SA_annotes1(SAL_typefix, ctype) 00361 00362 #endif 00363 00364 #define _Post_ _SA_annotes0(SAL_post) 00365 #define _Pre_ _SA_annotes0(SAL_pre) 00366 #ifdef __cplusplus 00367 #define _Notref_ _SA_annotes0(SAL_notref) 00368 #else 00369 #define _Notref_ 00370 #endif 00371 #define _Null_ _SA_annotes1(SAL_null, __yes) 00372 #define _Notnull_ _SA_annotes1(SAL_null, __no) 00373 #define _Maybenull_ __inner_exceptthat _SA_annotes1(SAL_null, __maybe) 00374 #define _Valid_ _SA_annotes1(SAL_valid, __yes) 00375 #define _Notvalid_ _SA_annotes1(SAL_valid, __no) 00376 #define _Maybevalid_ _SA_annotes1(SAL_valid, __maybe) 00377 #define _Const_ _SA_Pre1_(__readaccess_impl_notref) 00378 #define _Literal_ _Pre_ _SA_annotes1(SAL_constant, __yes) 00379 #define _Notliteral_ _Pre_ _SA_annotes1(SAL_constant, __no) 00380 #define _Null_terminated_ _SA_annotes1(SAL_nullTerminated, __yes) 00381 #define _NullNull_terminated_ _Group_(_SA_annotes1(SAL_nullTerminated, __yes) _SA_annotes1(SAL_readableTo,inexpressibleCount("NullNull terminated string"))) 00382 #define _Field_range_(min,max) _SA_annotes2(SAL_range, min, max) 00383 #define _Readable_bytes_(size) _SA_annotes1(SAL_readableTo, byteCount(size)) 00384 #define _Readable_elements_(size) _SA_annotes1(SAL_readableTo, elementCount(size)) 00385 #define _Writable_bytes_(size) _SA_annotes1(SAL_writableTo, byteCount(size)) 00386 #define _Writable_elements_(size) _SA_annotes1(SAL_writableTo, elementCount(size)) 00387 #define _Success_(expr) _SA_annotes1(SAL_success, expr) 00388 #define _When_(expr, annos) _SA_annotes0(SAL_when(expr)) _Group_(annos) 00389 #define _Group_(annos) _SA_annotes0(SAL_begin) annos _SA_annotes0(SAL_end) 00390 #define _On_failure_(annos) _SA_annotes1(SAL_context, SAL_failed) _Group_(_Post_ _Group_(annos)) 00391 #define _At_(target, annos) _SA_annotes0(SAL_at(target)) _Group_(annos) 00392 #define _At_buffer_(t, i, b, a) _SA_annotes3(SAL_at_buffer, t, i, b) _Group_(a) 00393 #define _Must_inspect_result_ _SA_Must_inspect_ _Check_return_ 00394 #define _Always_(annos) _Group_(annos) _On_failure_(annos) 00395 00396 #if (_MSC_VER >= 1600) 00397 #define _Points_to_data_ _Pre_ _At_(*_Curr_, _SA_annotes1(SAL_mayBePointer, __no)) 00398 #else 00399 // FIXME 00400 #define _Points_to_data_ 00401 #endif 00402 00403 #define _Return_type_success_(expr) _Success_(expr) 00404 #define _Struct_size_bytes_(size) _Writable_bytes_(size) 00405 #define _Unchanged_(e) _At_(e, _Post_equal_to_(_Old_(e)) _Const_) 00406 #define _Analysis_noreturn_ _SA_annotes0(SAL_terminates) 00407 #define _Function_class_(x) _SA_annotes1(SAL_functionClassNew, #x) 00408 #define _Raises_SEH_exception_ _Group_(_Pre_ _SA_annotes1(SAL_inTry,__yes) _Analysis_noreturn_) 00409 #define _Maybe_raises_SEH_exception_ _Pre_ _SA_annotes1(SAL_inTry,__yes) 00410 #define _Interlocked_operand_ _Pre_ _SA_annotes0(SAL_interlocked) 00411 00412 #define _Field_size_(size) _Notnull_ _Writable_elements_(size) 00413 #define _Field_size_bytes_(size) _Notnull_ _Writable_bytes_(size) 00414 #define _Field_size_bytes_full_(sz) _Field_size_bytes_part_(sz, sz) 00415 #define _Field_size_bytes_full_opt_(sz) _Field_size_bytes_part_opt_(sz, sz) 00416 #define _Field_size_bytes_opt_(sz) _Writable_bytes_(sz) _Maybenull_ 00417 #define _Field_size_bytes_part_(sz, c) _Notnull_ _Writable_bytes_(sz) _Readable_bytes_(c) 00418 #define _Field_size_bytes_part_opt_(size, count) _Writable_bytes_(size) _Readable_bytes_(count) _Maybenull_ 00419 #define _Field_size_full_(size) _Field_size_part_(size, size) 00420 #define _Field_size_full_opt_(size) _Field_size_part_opt_(size, size) 00421 #define _Field_size_opt_(size) _Writable_elements_(size) _Maybenull_ 00422 #define _Field_size_part_(size, count) _Notnull_ _Writable_elements_(size) _Readable_elements_(count) 00423 #define _Field_size_part_opt_(sz, c) _Writable_elements_(sz) _Readable_elements_(c) _Maybenull_ 00424 #define _Field_z_ _Null_terminated_ 00425 00426 #define _Pre_bytecap_(size) _Pre_notnull_ _SA_Pre1_(__bytecap_impl(size)) 00427 #define _Pre_bytecap_c_(size) _Pre_notnull_ _SA_Pre1_(__bytecap_c_impl(size)) 00428 #define _Pre_bytecap_x_(size) _Pre_notnull_ _SA_Pre1_(__bytecap_x_impl(size)) 00429 #define _Pre_bytecount_(size) _Pre_notnull_ _SA_Pre1_(__bytecount_impl(size)) _SA_Pre1_(__valid_impl) 00430 #define _Pre_bytecount_c_(size) _Pre_notnull_ _SA_Pre1_(__bytecount_c_impl(size)) _SA_Pre1_(__valid_impl) 00431 #define _Pre_bytecount_x_(size) _Pre_notnull_ _SA_Pre1_(__bytecount_x_impl(size)) _SA_Pre1_(__valid_impl) 00432 #define _Pre_cap_(size) _Pre_notnull_ _SA_Pre1_(__cap_impl(size)) 00433 #define _Pre_cap_c_(size) _Pre_notnull_ _SA_Pre1_(__cap_c_impl(size)) 00434 #define _Pre_cap_c_one_ _Pre_notnull_ _SA_Pre1_(__cap_c_one_notref_impl) 00435 #define _Pre_cap_for_(param) _Pre_notnull_ _SA_Pre1_(__cap_for_impl(param)) 00436 #define _Pre_cap_m_(mult,size) _Pre_notnull_ _SA_Pre1_(__mult_impl(mult,size)) 00437 #define _Pre_cap_x_(size) _Pre_notnull_ _SA_Pre1_(__cap_x_impl(size)) 00438 #define _Pre_count_(size) _Pre_notnull_ _SA_Pre1_(__count_impl(size)) _SA_Pre1_(__valid_impl) 00439 #define _Pre_count_c_(size) _Pre_notnull_ _SA_Pre1_(__count_c_impl(size)) _SA_Pre1_(__valid_impl) 00440 #define _Pre_count_x_(size) _Pre_notnull_ _SA_Pre1_(__count_x_impl(size)) _SA_Pre1_(__valid_impl) 00441 #define _Pre_defensive_ _SA_annotes0(SAL_pre_defensive) 00442 #define _Pre_equal_to_(expr) _In_range_(==, expr) 00443 #define _Pre_invalid_ _SA_Deref_pre1_(__notvalid_impl) // note: this is appied to the memory referenced by the parameter! Same as _Deref_pre_invalid_ 00444 #define _Pre_maybenull_ _SA_Pre1_(__maybenull_impl_notref) 00445 #define _Pre_notnull_ _SA_Pre1_(__notnull_impl_notref) 00446 #define _Pre_null_ _SA_Pre1_(__null_impl_notref) 00447 #define _Pre_opt_bytecap_(size) _SA_Pre1_(__bytecap_impl(size)) _Pre_maybenull_ 00448 #define _Pre_opt_bytecap_c_(size) _SA_Pre1_(__bytecap_c_impl(size)) _Pre_maybenull_ 00449 #define _Pre_opt_bytecap_x_(size) _SA_Pre1_(__bytecap_x_impl(size)) _Pre_maybenull_ 00450 #define _Pre_opt_bytecount_(size) _SA_Pre1_(__bytecount_impl(size)) _Pre_opt_valid_ 00451 #define _Pre_opt_bytecount_c_(size) _SA_Pre1_(__bytecount_c_impl(size)) _Pre_opt_valid_ 00452 #define _Pre_opt_bytecount_x_(size) _SA_Pre1_(__bytecount_x_impl(size)) _Pre_opt_valid_ 00453 #define _Pre_opt_cap_(size) _SA_Pre1_(__cap_impl(size)) _Pre_maybenull_ 00454 #define _Pre_opt_cap_c_(size) _SA_Pre1_(__cap_c_impl(size)) _Pre_maybenull_ 00455 #define _Pre_opt_cap_c_one_ _SA_Pre1_(__cap_c_one_notref_impl) _Pre_maybenull_ 00456 #define _Pre_opt_cap_for_(param) _SA_Pre1_(__cap_for_impl(param)) _Pre_maybenull_ 00457 #define _Pre_opt_cap_m_(mult,size) _SA_Pre1_(__mult_impl(mult,size)) _Pre_maybenull_ 00458 #define _Pre_opt_cap_x_(size) _SA_Pre1_(__cap_x_impl(size)) _Pre_maybenull_ 00459 #define _Pre_opt_count_(size) _SA_Pre1_(__count_impl(size)) _Pre_opt_valid_ 00460 #define _Pre_opt_count_c_(size) _SA_Pre1_(__count_c_impl(size)) _Pre_opt_valid_ 00461 #define _Pre_opt_count_x_(size) _SA_Pre1_(__count_x_impl(size)) _Pre_opt_valid_ 00462 #define _Pre_opt_ptrdiff_cap_(ptr) _SA_Pre1_(__cap_x_impl(__ptrdiff(ptr))) 00463 #define _Pre_opt_ptrdiff_count_(ptr) _SA_Pre1_(__count_x_impl(__ptrdiff(ptr))) _SA_Pre1_(__valid_impl) 00464 #define _Pre_opt_valid_ _SA_Pre1_(__valid_impl) _Pre_maybenull_ 00465 #define _Pre_opt_valid_bytecap_(size) _SA_Pre1_(__bytecap_impl(size)) _Pre_opt_valid_ 00466 #define _Pre_opt_valid_bytecap_c_(size) _SA_Pre1_(__bytecap_c_impl(size)) _Pre_opt_valid_ 00467 #define _Pre_opt_valid_bytecap_x_(size) _SA_Pre1_(__bytecap_x_impl(size)) _Pre_opt_valid_ 00468 #define _Pre_opt_valid_cap_(size) _SA_Pre1_(__cap_impl(size)) _Pre_opt_valid_ 00469 #define _Pre_opt_valid_cap_c_(size) _SA_Pre1_(__cap_c_impl(size)) _Pre_opt_valid_ 00470 #define _Pre_opt_valid_cap_x_(size) _SA_Pre1_(__cap_x_impl(size)) _Pre_opt_valid_ 00471 #define _Pre_opt_z_ _SA_Pre1_(__zterm_impl) _Pre_opt_valid_ 00472 #define _Pre_opt_z_bytecap_(size) _SA_Pre2_(__zterm_impl,__bytecap_impl(size)) _Pre_opt_valid_ 00473 #define _Pre_opt_z_bytecap_c_(size) _SA_Pre2_(__zterm_impl,__bytecap_c_impl(size)) _Pre_opt_valid_ 00474 #define _Pre_opt_z_bytecap_x_(size) _SA_Pre2_(__zterm_impl,__bytecap_x_impl(size)) _Pre_opt_valid_ 00475 #define _Pre_opt_z_cap_(size) _SA_Pre2_(__zterm_impl,__cap_impl(size)) _Pre_opt_valid_ 00476 #define _Pre_opt_z_cap_c_(size) _SA_Pre2_(__zterm_impl,__cap_c_impl(size)) _Pre_opt_valid_ 00477 #define _Pre_opt_z_cap_x_(size) _SA_Pre2_(__zterm_impl,__cap_x_impl(size)) _Pre_opt_valid_ 00478 #define _Pre_ptrdiff_cap_(ptr) _Pre_notnull_ _SA_Pre1_(__cap_x_impl(__ptrdiff(ptr))) 00479 #define _Pre_ptrdiff_count_(ptr) _Pre_notnull_ _SA_Pre1_(__count_x_impl(__ptrdiff(ptr))) _SA_Pre1_(__valid_impl) 00480 #define _Pre_readable_byte_size_(size) _SA_Pre1_(__bytecount_impl(size)) _SA_Pre1_(__valid_impl) 00481 #define _Pre_readable_size_(size) _SA_Pre1_(__count_impl(size)) _SA_Pre1_(__valid_impl) 00482 #define _Pre_readonly_ _SA_Pre1_(__readaccess_impl_notref) 00483 #define _Pre_satisfies_(cond) _Pre_ _SA_Satisfies_(cond) 00484 #define _Pre_valid_ _Pre_notnull_ _SA_Pre1_(__valid_impl) 00485 #define _Pre_valid_bytecap_(size) _Pre_notnull_ _SA_Pre1_(__bytecap_impl(size)) _SA_Pre1_(__valid_impl) 00486 #define _Pre_valid_bytecap_c_(size) _Pre_notnull_ _SA_Pre1_(__bytecap_c_impl(size)) _SA_Pre1_(__valid_impl) 00487 #define _Pre_valid_bytecap_x_(size) _Pre_notnull_ _SA_Pre1_(__bytecap_x_impl(size)) _SA_Pre1_(__valid_impl) 00488 #define _Pre_valid_cap_(size) _Pre_notnull_ _SA_Pre1_(__cap_impl(size)) _SA_Pre1_(__valid_impl) 00489 #define _Pre_valid_cap_c_(size) _Pre_notnull_ _SA_Pre1_(__cap_c_impl(size)) _SA_Pre1_(__valid_impl) 00490 #define _Pre_valid_cap_x_(size) _Pre_notnull_ _SA_Pre1_(__cap_x_impl(size)) _SA_Pre1_(__valid_impl) 00491 #define _Pre_writable_byte_size_(size) _SA_Pre1_(__bytecap_impl(size)) 00492 #define _Pre_writable_size_(size) _SA_Pre1_(__cap_impl(size)) 00493 #define _Pre_writeonly_ _SA_Pre1_(__writeaccess_impl_notref) 00494 #define _Pre_z_ _Pre_notnull_ _SA_Pre1_(__zterm_impl) _SA_Pre1_(__valid_impl) 00495 #define _Pre_z_bytecap_(size) _Pre_notnull_ _SA_Pre2_(__zterm_impl,__bytecap_impl(size)) _SA_Pre1_(__valid_impl) 00496 #define _Pre_z_bytecap_c_(size) _Pre_notnull_ _SA_Pre2_(__zterm_impl,__bytecap_c_impl(size)) _SA_Pre1_(__valid_impl) 00497 #define _Pre_z_bytecap_x_(size) _Pre_notnull_ _SA_Pre2_(__zterm_impl,__bytecap_x_impl(size)) _SA_Pre1_(__valid_impl) 00498 #define _Pre_z_cap_(size) _Pre_notnull_ _SA_Pre2_(__zterm_impl,__cap_impl(size)) _SA_Pre1_(__valid_impl) 00499 #define _Pre_z_cap_c_(size) _Pre_notnull_ _SA_Pre2_(__zterm_impl,__cap_c_impl(size)) _SA_Pre1_(__valid_impl) 00500 #define _Pre_z_cap_x_(size) _Pre_notnull_ _SA_Pre2_(__zterm_impl,__cap_x_impl(size)) _SA_Pre1_(__valid_impl) 00501 00502 #define _Post_bytecap_(size) _SA_Post1_(__bytecap_impl(size)) 00503 #define _Post_bytecount_(size) _SA_Post1_(__bytecount_impl(size)) _Post_valid_ 00504 #define _Post_bytecount_c_(size) _SA_Post1_(__bytecount_c_impl(size)) _Post_valid_ 00505 #define _Post_bytecount_x_(size) _SA_Post1_(__bytecount_x_impl(size)) _Post_valid_ 00506 #define _Post_cap_(size) _SA_Post1_(__cap_impl(size)) 00507 #define _Post_count_(size) _SA_Post1_(__count_impl(size)) _Post_valid_ 00508 #define _Post_count_c_(size) _SA_Post1_(__count_c_impl(size)) _Post_valid_ 00509 #define _Post_count_x_(size) _SA_Post1_(__count_x_impl(size)) _Post_valid_ 00510 #define _Post_defensive_ _SA_annotes0(SAL_post_defensive) 00511 #define _Post_equal_to_(expr) _Out_range_(==, expr) 00512 #define _Post_invalid_ _SA_Deref_post1_(__notvalid_impl) // note: implicitly dereferenced! 00513 #define _Post_maybenull_ _SA_Post1_(__maybenull_impl_notref) 00514 #define _Post_maybez_ _SA_Post1_(__maybzterm_impl) 00515 #define _Post_notnull_ _SA_Post1_(__notnull_impl_notref) 00516 #define _Post_null_ _SA_Post1_(__null_impl_notref) 00517 #define _Post_ptr_invalid_ _SA_Post1_(__notvalid_impl) 00518 #define _Post_readable_byte_size_(size) _SA_Post1_(__bytecount_impl(size)) _Post_valid_ 00519 #define _Post_readable_size_(size) _SA_Post1_(__count_impl(size)) _Post_valid_ 00520 #define _Post_satisfies_(cond) _Post_ _SA_Satisfies_(cond) 00521 #define _Post_valid_ _SA_Post1_(__valid_impl) 00522 #define _Post_writable_byte_size_(size) _SA_Post1_(__bytecap_impl(size)) 00523 #define _Post_writable_size_(size) _SA_Post1_(__cap_impl(size)) 00524 #define _Post_z_ _SA_Post1_(__zterm_impl) _Post_valid_ 00525 #define _Post_z_bytecount_(size) _SA_Post2_(__zterm_impl,__bytecount_impl(size)) _Post_valid_ 00526 #define _Post_z_bytecount_c_(size) _SA_Post2_(__zterm_impl,__bytecount_c_impl(size)) _Post_valid_ 00527 #define _Post_z_bytecount_x_(size) _SA_Post2_(__zterm_impl,__bytecount_x_impl(size)) _Post_valid_ 00528 #define _Post_z_count_(size) _SA_Post2_(__zterm_impl,__count_impl(size)) _Post_valid_ 00529 #define _Post_z_count_c_(size) _SA_Post2_(__zterm_impl,__count_c_impl(size)) _Post_valid_ 00530 #define _Post_z_count_x_(size) _SA_Post2_(__zterm_impl,__count_x_impl(size)) _Post_valid_ 00531 00532 #define _Prepost_bytecount_(size) _Pre_bytecount_(size) _Post_bytecount_(size) 00533 #define _Prepost_bytecount_c_(size) _Pre_bytecount_c_(size) _Post_bytecount_c_(size) 00534 #define _Prepost_bytecount_x_(size) _Pre_bytecount_x_(size) _Post_bytecount_x_(size) 00535 #define _Prepost_count_(size) _Pre_count_(size) _Post_count_(size) 00536 #define _Prepost_count_c_(size) _Pre_count_c_(size) _Post_count_c_(size) 00537 #define _Prepost_count_x_(size) _Pre_count_x_(size) _Post_count_x_(size) 00538 #define _Prepost_opt_bytecount_(size) _Post_bytecount_(size) _Pre_opt_bytecount_(size) 00539 #define _Prepost_opt_bytecount_c_(size) _Post_bytecount_c_(size) _Pre_opt_bytecount_c_(size) 00540 #define _Prepost_opt_bytecount_x_(size) _Post_bytecount_x_(size) _Pre_opt_bytecount_x_(size) 00541 #define _Prepost_opt_count_(size) _Post_count_(size) _Pre_opt_count_(size) 00542 #define _Prepost_opt_count_c_(size) _Post_count_c_(size) _Pre_opt_count_c_(size) 00543 #define _Prepost_opt_count_x_(size) _Post_count_x_(size) _Pre_opt_count_x_(size) 00544 #define _Prepost_opt_valid_ _Post_valid_ _Pre_opt_valid_ 00545 #define _Prepost_opt_z_ _Post_z_ _Pre_opt_z_ 00546 #define _Prepost_valid_ _Pre_valid_ _Post_valid_ 00547 #define _Prepost_z_ _Pre_z_ _Post_z_ 00548 00549 #define _Deref_pre_bytecap_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__bytecap_impl(size)) 00550 #define _Deref_pre_bytecap_c_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__bytecap_c_impl(size)) 00551 #define _Deref_pre_bytecap_x_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__bytecap_x_impl(size)) 00552 #define _Deref_pre_bytecount_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__bytecount_impl(size)) _SA_Pre1_(__valid_impl) 00553 #define _Deref_pre_bytecount_c_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__bytecount_c_impl(size)) _SA_Pre1_(__valid_impl) 00554 #define _Deref_pre_bytecount_x_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__bytecount_x_impl(size)) _SA_Pre1_(__valid_impl) 00555 #define _Deref_pre_cap_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__cap_impl(size)) 00556 #define _Deref_pre_cap_c_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__cap_c_impl(size)) 00557 #define _Deref_pre_cap_x_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__cap_x_impl(size)) 00558 #define _Deref_pre_count_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__count_impl(size)) _SA_Pre1_(__valid_impl) 00559 #define _Deref_pre_count_c_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__count_c_impl(size)) _SA_Pre1_(__valid_impl) 00560 #define _Deref_pre_count_x_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__count_x_impl(size)) _SA_Pre1_(__valid_impl) 00561 #define _Deref_pre_invalid_ _SA_Deref_pre1_(__notvalid_impl) 00562 #define _Deref_pre_maybenull_ _SA_Deref_pre1_(__maybenull_impl_notref) 00563 #define _Deref_pre_notnull_ _SA_Deref_pre1_(__notnull_impl_notref) 00564 #define _Deref_pre_null_ _SA_Deref_pre1_(__null_impl_notref) 00565 #define _Deref_pre_opt_bytecap_(size) _SA_Deref_pre1_(__bytecap_impl(size)) _Deref_pre_maybenull_ 00566 #define _Deref_pre_opt_bytecap_c_(size) _SA_Deref_pre1_(__bytecap_c_impl(size)) _Deref_pre_maybenull_ 00567 #define _Deref_pre_opt_bytecap_x_(size) _SA_Deref_pre1_(__bytecap_x_impl(size)) _Deref_pre_maybenull_ 00568 #define _Deref_pre_opt_bytecount_(size) _SA_Deref_pre1_(__bytecount_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00569 #define _Deref_pre_opt_bytecount_c_(size) _SA_Deref_pre1_(__bytecount_c_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00570 #define _Deref_pre_opt_bytecount_x_(size) _SA_Deref_pre1_(__bytecount_x_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00571 #define _Deref_pre_opt_cap_(size) _SA_Deref_pre1_(__cap_impl(size)) _Deref_pre_maybenull_ 00572 #define _Deref_pre_opt_cap_c_(size) _SA_Deref_pre1_(__cap_c_impl(size)) _Deref_pre_maybenull_ 00573 #define _Deref_pre_opt_cap_x_(size) _SA_Deref_pre1_(__cap_x_impl(size)) _Deref_pre_maybenull_ 00574 #define _Deref_pre_opt_count_(size) _SA_Deref_pre1_(__count_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00575 #define _Deref_pre_opt_count_c_(size) _SA_Deref_pre1_(__count_c_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00576 #define _Deref_pre_opt_count_x_(size) _SA_Deref_pre1_(__count_x_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00577 #define _Deref_pre_opt_valid_ _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00578 #define _Deref_pre_opt_valid_bytecap_(size) _SA_Deref_pre1_(__bytecap_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00579 #define _Deref_pre_opt_valid_bytecap_c_(size) _SA_Deref_pre1_(__bytecap_c_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00580 #define _Deref_pre_opt_valid_bytecap_x_(size) _SA_Deref_pre1_(__bytecap_x_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00581 #define _Deref_pre_opt_valid_cap_(size) _SA_Deref_pre1_(__cap_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00582 #define _Deref_pre_opt_valid_cap_c_(size) _SA_Deref_pre1_(__cap_c_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00583 #define _Deref_pre_opt_valid_cap_x_(size) _SA_Deref_pre1_(__cap_x_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00584 #define _Deref_pre_opt_z_ _SA_Deref_pre1_(__zterm_impl) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00585 #define _Deref_pre_opt_z_bytecap_(size) _SA_Deref_pre2_(__zterm_impl,__bytecap_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00586 #define _Deref_pre_opt_z_bytecap_c_(size) _SA_Deref_pre2_(__zterm_impl,__bytecap_c_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00587 #define _Deref_pre_opt_z_bytecap_x_(size) _SA_Deref_pre2_(__zterm_impl,__bytecap_x_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00588 #define _Deref_pre_opt_z_cap_(size) _SA_Deref_pre2_(__zterm_impl,__cap_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00589 #define _Deref_pre_opt_z_cap_c_(size) _SA_Deref_pre2_(__zterm_impl,__cap_c_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00590 #define _Deref_pre_opt_z_cap_x_(size) _SA_Deref_pre2_(__zterm_impl,__cap_x_impl(size)) _SA_Pre1_(__valid_impl) _Deref_pre_maybenull_ 00591 #define _Deref_pre_readonly_ _SA_Deref_pre1_(__readaccess_impl_notref) 00592 #define _Deref_pre_valid_ _SA_Deref_pre1_(__notnull_impl_notref) _SA_Pre1_(__valid_impl) 00593 #define _Deref_pre_valid_bytecap_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__bytecap_impl(size)) _SA_Pre1_(__valid_impl) 00594 #define _Deref_pre_valid_bytecap_c_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__bytecap_c_impl(size)) _SA_Pre1_(__valid_impl) 00595 #define _Deref_pre_valid_bytecap_x_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__bytecap_x_impl(size)) _SA_Pre1_(__valid_impl) 00596 #define _Deref_pre_valid_cap_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__cap_impl(size)) _SA_Pre1_(__valid_impl) 00597 #define _Deref_pre_valid_cap_c_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__cap_c_impl(size)) _SA_Pre1_(__valid_impl) 00598 #define _Deref_pre_valid_cap_x_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__cap_x_impl(size)) _SA_Pre1_(__valid_impl) 00599 #define _Deref_pre_writeonly_ _SA_Deref_pre1_(__writeaccess_impl_notref) 00600 #define _Deref_pre_z_ _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre1_(__zterm_impl) _SA_Pre1_(__valid_impl) 00601 #define _Deref_pre_z_bytecap_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre2_(__zterm_impl,__bytecap_impl(size)) _SA_Pre1_(__valid_impl) 00602 #define _Deref_pre_z_bytecap_c_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre2_(__zterm_impl,__bytecap_c_impl(size)) _SA_Pre1_(__valid_impl) 00603 #define _Deref_pre_z_bytecap_x_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre2_(__zterm_impl,__bytecap_x_impl(size)) _SA_Pre1_(__valid_impl) 00604 #define _Deref_pre_z_cap_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre2_(__zterm_impl,__cap_impl(size)) _SA_Pre1_(__valid_impl) 00605 #define _Deref_pre_z_cap_c_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre2_(__zterm_impl,__cap_c_impl(size)) _SA_Pre1_(__valid_impl) 00606 #define _Deref_pre_z_cap_x_(size) _SA_Deref_pre1_(__notnull_impl_notref) _SA_Deref_pre2_(__zterm_impl,__cap_x_impl(size)) _SA_Pre1_(__valid_impl) 00607 #define _Deref2_pre_readonly_ _SA_Deref2_pre1_(__readaccess_impl_notref) 00608 00609 #define _Deref_post_valid_ _Pre_notnull_ _When_(1 == 1, _SA_Deref_pre1_(__maybevalid_impl)) _SA_Deref_post1_(__valid_impl) 00610 //#define _Deref_post_valid_ _Deref_post_notnull_ _Post_valid_ // <- ms implementaton 00611 #define _Deref_post_bytecap_(size) _Deref_post_notnull_ _SA_Deref_post1_(__bytecap_impl(size)) 00612 #define _Deref_post_bytecap_c_(sz) _Deref_post_notnull_ _SA_Deref_post1_(__bytecap_c_impl(sz)) 00613 #define _Deref_post_bytecap_x_(sz) _Deref_post_notnull_ _SA_Deref_post1_(__bytecap_x_impl(sz)) 00614 #define _Deref_post_bytecount_(sz) _Deref_post_notnull_ _SA_Deref_post1_(__bytecount_impl(sz)) _Post_valid_ 00615 #define _Deref_post_bytecount_c_(size) _Deref_post_notnull_ _SA_Deref_post1_(__bytecount_c_impl(size)) _Post_valid_ 00616 #define _Deref_post_bytecount_x_(size) _Deref_post_notnull_ _SA_Deref_post1_(__bytecount_x_impl(size)) _Post_valid_ 00617 #define _Deref_post_cap_(size) _Deref_post_notnull_ _SA_Deref_post1_(__cap_impl(size)) 00618 #define _Deref_post_cap_c_(size) _Deref_post_notnull_ _SA_Deref_post1_(__cap_c_impl(size)) 00619 #define _Deref_post_cap_x_(size) _Deref_post_notnull_ _SA_Deref_post1_(__cap_x_impl(size)) 00620 #define _Deref_post_count_(size) _Deref_post_notnull_ _SA_Deref_post1_(__count_impl(size)) _Post_valid_ 00621 #define _Deref_post_count_c_(size) _Deref_post_notnull_ _SA_Deref_post1_(__count_c_impl(size)) _Post_valid_ 00622 #define _Deref_post_count_x_(size) _Deref_post_notnull_ _SA_Deref_post1_(__count_x_impl(size)) _Post_valid_ 00623 #define _Deref_post_maybenull_ _SA_Deref_post1_(__maybenull_impl_notref) 00624 #define _Deref_post_notnull_ _SA_Deref_post1_(__notnull_impl_notref) 00625 #define _Deref_post_null_ _SA_Deref_post1_(__null_impl_notref) 00626 #define _Deref_post_opt_bytecap_(size) _SA_Deref_post1_(__bytecap_impl(size)) _Deref_post_maybenull_ 00627 #define _Deref_post_opt_bytecap_c_(sz) _SA_Deref_post1_(__bytecap_c_impl(sz)) _Deref_post_maybenull_ 00628 #define _Deref_post_opt_bytecap_x_(sz) _SA_Deref_post1_(__bytecap_x_impl(sz)) _Deref_post_maybenull_ 00629 #define _Deref_post_opt_bytecount_(sz) _SA_Deref_post1_(__bytecount_impl(sz)) _Post_valid_ _Deref_post_maybenull_ 00630 #define _Deref_post_opt_bytecount_c_(size) _SA_Deref_post1_(__bytecount_c_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00631 #define _Deref_post_opt_bytecount_x_(size) _SA_Deref_post1_(__bytecount_x_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00632 #define _Deref_post_opt_cap_(size) _SA_Deref_post1_(__cap_impl(size)) _Deref_post_maybenull_ 00633 #define _Deref_post_opt_cap_c_(size) _SA_Deref_post1_(__cap_c_impl(size)) _Deref_post_maybenull_ 00634 #define _Deref_post_opt_cap_x_(size) _SA_Deref_post1_(__cap_x_impl(size)) _Deref_post_maybenull_ 00635 #define _Deref_post_opt_count_(size) _SA_Deref_post1_(__count_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00636 #define _Deref_post_opt_count_c_(size) _SA_Deref_post1_(__count_c_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00637 #define _Deref_post_opt_count_x_(size) _SA_Deref_post1_(__count_x_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00638 #define _Deref_post_opt_valid_ _Post_valid_ _Deref_post_maybenull_ 00639 #define _Deref_post_opt_valid_bytecap_(size) _SA_Deref_post1_(__bytecap_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00640 #define _Deref_post_opt_valid_bytecap_c_(size) _SA_Deref_post1_(__bytecap_c_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00641 #define _Deref_post_opt_valid_bytecap_x_(size) _SA_Deref_post1_(__bytecap_x_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00642 #define _Deref_post_opt_valid_cap_(size) _SA_Deref_post1_(__cap_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00643 #define _Deref_post_opt_valid_cap_c_(size) _SA_Deref_post1_(__cap_c_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00644 #define _Deref_post_opt_valid_cap_x_(size) _SA_Deref_post1_(__cap_x_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00645 #define _Deref_post_opt_z_ _SA_Deref_post1_(__zterm_impl) _Post_valid_ _Deref_post_maybenull_ 00646 #define _Deref_post_opt_z_bytecap_(size) _SA_Deref_post2_(__zterm_impl,__bytecap_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00647 #define _Deref_post_opt_z_bytecap_c_(size) _SA_Deref_post2_(__zterm_impl,__bytecap_c_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00648 #define _Deref_post_opt_z_bytecap_x_(size) _SA_Deref_post2_(__zterm_impl,__bytecap_x_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00649 #define _Deref_post_opt_z_cap_(size) _SA_Deref_post2_(__zterm_impl,__cap_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00650 #define _Deref_post_opt_z_cap_c_(size) _SA_Deref_post2_(__zterm_impl,__cap_c_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00651 #define _Deref_post_opt_z_cap_x_(size) _SA_Deref_post2_(__zterm_impl,__cap_x_impl(size)) _Post_valid_ _Deref_post_maybenull_ 00652 #define _Deref_post_valid_ _Deref_post_notnull_ _Post_valid_ 00653 #define _Deref_post_valid_bytecap_(size) _Deref_post_valid_ _SA_Deref_post1_(__bytecap_impl(size)) 00654 #define _Deref_post_valid_bytecap_c_(size) _Deref_post_valid_ _SA_Deref_post1_(__bytecap_c_impl(size)) 00655 #define _Deref_post_valid_bytecap_x_(size) _Deref_post_valid_ _SA_Deref_post1_(__bytecap_x_impl(size)) 00656 #define _Deref_post_valid_cap_(size) _Deref_post_valid_ _SA_Deref_post1_(__cap_impl(size)) 00657 #define _Deref_post_valid_cap_c_(size) _Deref_post_valid_ _SA_Deref_post1_(__cap_c_impl(size)) 00658 #define _Deref_post_valid_cap_x_(size) _Deref_post_valid_ _SA_Deref_post1_(__cap_x_impl(size)) 00659 #define _Deref_post_z_ _Deref_post_valid_ _SA_Deref_post1_(__zterm_impl) 00660 #define _Deref_post_z_bytecap_(size) _Deref_post_valid_ _SA_Deref_post2_(__zterm_impl,__bytecap_impl(size)) 00661 #define _Deref_post_z_bytecap_c_(size) _Deref_post_valid_ _SA_Deref_post2_(__zterm_impl,__bytecap_c_impl(size)) 00662 #define _Deref_post_z_bytecap_x_(size) _Deref_post_valid_ _SA_Deref_post2_(__zterm_impl,__bytecap_x_impl(size)) 00663 #define _Deref_post_z_cap_(size) _Deref_post_valid_ _SA_Deref_post2_(__zterm_impl,__cap_impl(size)) 00664 #define _Deref_post_z_cap_c_(size) _Deref_post_valid_ _SA_Deref_post2_(__zterm_impl,__cap_c_impl(size)) 00665 #define _Deref_post_z_cap_x_(size) _Deref_post_valid_ _SA_Deref_post2_(__zterm_impl,__cap_x_impl(size)) 00666 00667 #define _Deref_prepost_bytecap_(size) _Deref_pre_bytecap_(size) _Deref_post_bytecap_(size) 00668 #define _Deref_prepost_bytecap_x_(size) _Deref_pre_bytecap_x_(size) _Deref_post_bytecap_x_(size) 00669 #define _Deref_prepost_bytecount_(size) _Deref_pre_bytecount_(size) _Deref_post_bytecount_(size) 00670 #define _Deref_prepost_bytecount_x_(size) _Deref_pre_bytecount_x_(size) _Deref_post_bytecount_x_(size) 00671 #define _Deref_prepost_cap_(size) _Deref_pre_cap_(size) _Deref_post_cap_(size) 00672 #define _Deref_prepost_cap_x_(size) _Deref_pre_cap_x_(size) _Deref_post_cap_x_(size) 00673 #define _Deref_prepost_count_(size) _Deref_pre_count_(size) _Deref_post_count_(size) 00674 #define _Deref_prepost_count_x_(size) _Deref_pre_count_x_(size) _Deref_post_count_x_(size) 00675 #define _Deref_prepost_opt_bytecap_(size) _Deref_pre_opt_bytecap_(size) _Deref_post_opt_bytecap_(size) 00676 #define _Deref_prepost_opt_bytecap_x_(size) _Deref_pre_opt_bytecap_x_(size) _Deref_post_opt_bytecap_x_(size) 00677 #define _Deref_prepost_opt_bytecount_(size) _Deref_pre_opt_bytecount_(size) _Deref_post_opt_bytecount_(size) 00678 #define _Deref_prepost_opt_bytecount_x_(size) _Deref_pre_opt_bytecount_x_(size) _Deref_post_opt_bytecount_x_(size) 00679 #define _Deref_prepost_opt_cap_(size) _Deref_pre_opt_cap_(size) _Deref_post_opt_cap_(size) 00680 #define _Deref_prepost_opt_cap_x_(size) _Deref_pre_opt_cap_x_(size) _Deref_post_opt_cap_x_(size) 00681 #define _Deref_prepost_opt_count_(size) _Deref_pre_opt_count_(size) _Deref_post_opt_count_(size) 00682 #define _Deref_prepost_opt_count_x_(size) _Deref_pre_opt_count_x_(size) _Deref_post_opt_count_x_(size) 00683 #define _Deref_prepost_opt_valid_ _Deref_pre_opt_valid_ _Deref_post_opt_valid_ 00684 #define _Deref_prepost_opt_valid_bytecap_(size) _Deref_pre_opt_valid_bytecap_(size) _Deref_post_opt_valid_bytecap_(size) 00685 #define _Deref_prepost_opt_valid_bytecap_x_(size) _Deref_pre_opt_valid_bytecap_x_(size) _Deref_post_opt_valid_bytecap_x_(size) 00686 #define _Deref_prepost_opt_valid_cap_(size) _Deref_pre_opt_valid_cap_(size) _Deref_post_opt_valid_cap_(size) 00687 #define _Deref_prepost_opt_valid_cap_x_(size) _Deref_pre_opt_valid_cap_x_(size) _Deref_post_opt_valid_cap_x_(size) 00688 #define _Deref_prepost_opt_z_ _Deref_pre_opt_z_ _Deref_post_opt_z_ 00689 #define _Deref_prepost_opt_z_bytecap_(size) _Deref_pre_opt_z_bytecap_(size) _Deref_post_opt_z_bytecap_(size) 00690 #define _Deref_prepost_opt_z_cap_(size) _Deref_pre_opt_z_cap_(size) _Deref_post_opt_z_cap_(size) 00691 #define _Deref_prepost_valid_ _Deref_pre_valid_ _Deref_post_valid_ 00692 #define _Deref_prepost_valid_bytecap_(size) _Deref_pre_valid_bytecap_(size) _Deref_post_valid_bytecap_(size) 00693 #define _Deref_prepost_valid_bytecap_x_(size) _Deref_pre_valid_bytecap_x_(size) _Deref_post_valid_bytecap_x_(size) 00694 #define _Deref_prepost_valid_cap_(size) _Deref_pre_valid_cap_(size) _Deref_post_valid_cap_(size) 00695 #define _Deref_prepost_valid_cap_x_(size) _Deref_pre_valid_cap_x_(size) _Deref_post_valid_cap_x_(size) 00696 #define _Deref_prepost_z_ _Deref_pre_z_ _Deref_post_z_ 00697 #define _Deref_prepost_z_bytecap_(size) _Deref_pre_z_bytecap_(size) _Deref_post_z_bytecap_(size) 00698 #define _Deref_prepost_z_cap_(size) _Deref_pre_z_cap_(size) _Deref_post_z_cap_(size) 00699 00700 #define _In_ _Pre_notnull_ _Pre_valid_ _Deref_pre_readonly_ 00701 #define _In_bytecount_(size) _Pre_bytecount_(size) _Deref_pre_readonly_ 00702 #define _In_bytecount_c_(size) _Pre_bytecount_c_(size) _Deref_pre_readonly_ 00703 #define _In_bytecount_x_(size) _Pre_bytecount_x_(size) _Deref_pre_readonly_ 00704 #define _In_count_(size) _Pre_count_(size) _Deref_pre_readonly_ 00705 #define _In_count_c_(size) _Pre_count_c_(size) _Deref_pre_readonly_ 00706 #define _In_count_x_(size) _Pre_count_x_(size) _Deref_pre_readonly_ 00707 #define _In_defensive_(annotes) _Pre_defensive_ _Group_(annotes) 00708 #define _In_opt_ _Deref_pre_readonly_ _Pre_opt_valid_ 00709 #define _In_opt_bytecount_(size) _Deref_pre_readonly_ _Pre_opt_bytecount_(size) 00710 #define _In_opt_bytecount_c_(size) _Deref_pre_readonly_ _Pre_opt_bytecount_c_(size) 00711 #define _In_opt_bytecount_x_(size) _Deref_pre_readonly_ _Pre_opt_bytecount_x_(size) 00712 #define _In_opt_count_(size) _Deref_pre_readonly_ _Pre_opt_count_(size) 00713 #define _In_opt_count_c_(size) _Deref_pre_readonly_ _Pre_opt_count_c_(size) 00714 #define _In_opt_count_x_(size) _Deref_pre_readonly_ _Pre_opt_count_x_(size) 00715 #define _In_opt_ptrdiff_count_(size) _Deref_pre_readonly_ _Pre_opt_ptrdiff_count_(size) 00716 #define _In_opt_z_ _Deref_pre_readonly_ _Pre_opt_z_ 00717 #define _In_opt_z_bytecount_(size) _Deref_pre_readonly_ _Pre_opt_z_ _Pre_opt_bytecount_(size) 00718 #define _In_opt_z_bytecount_c_(size) _Deref_pre_readonly_ _Pre_opt_z_ _Pre_opt_bytecount_c_(size) 00719 #define _In_opt_z_count_(size) _Deref_pre_readonly_ _Pre_opt_z_ _Pre_opt_count_(size) 00720 #define _In_opt_z_count_c_(size) _Deref_pre_readonly_ _Pre_opt_z_ _Pre_opt_count_c_(size) 00721 #define _In_ptrdiff_count_(size) _Deref_pre_readonly_ _Pre_ptrdiff_count_(size) 00722 #define _In_reads_(size) _Deref_pre_readonly_ _Pre_count_(size) 00723 #define _In_reads_bytes_(size) _Deref_pre_readonly_ _Pre_bytecount_(size) 00724 #define _In_reads_bytes_opt_(size) _Deref_pre_readonly_ _Pre_opt_bytecount_(size) 00725 #define _In_reads_opt_(size) _Deref_pre_readonly_ _Pre_opt_count_(size) 00726 #define _In_reads_opt_z_(size) _Deref_pre_readonly_ _Pre_opt_count_(size) _Pre_opt_z_ 00727 #define _In_reads_or_z_(size) _When_(_String_length_(_Curr_) < (size), _In_z_) _When_(_String_length_(_Curr_) >= (size), _In_reads_(size)) 00728 #define _In_reads_to_ptr_(ptr) _Deref_pre_readonly_ _Pre_ptrdiff_count_(ptr) 00729 #define _In_reads_to_ptr_opt_(ptr) _Deref_pre_readonly_ _Pre_opt_ptrdiff_count_(ptr) 00730 #define _In_reads_to_ptr_opt_z_(ptr) _Deref_pre_readonly_ _Pre_opt_ptrdiff_count_(ptr) _Pre_opt_z_ 00731 #define _In_reads_to_ptr_z_(ptr) _Deref_pre_readonly_ _Pre_ptrdiff_count_(ptr) _Pre_z_ 00732 #define _In_reads_z_(size) _Deref_pre_readonly_ _Pre_count_(size) _Pre_z_ 00733 #define _In_z_ _Deref_pre_readonly_ _Pre_z_ 00734 #define _In_z_bytecount_(size) _Deref_pre_readonly_ _Pre_z_ _Pre_bytecount_(size) 00735 #define _In_z_bytecount_c_(size) _Deref_pre_readonly_ _Pre_z_ _Pre_bytecount_c_(size) 00736 #define _In_z_count_(size) _Deref_pre_readonly_ _Pre_z_ _Pre_count_(size) 00737 #define _In_z_count_c_(size) _Deref_pre_readonly_ _Pre_z_ _Pre_count_c_(size) 00738 00739 #define _Out_ _Pre_cap_c_one_ _Post_valid_ /* not in MS hdrs: _Deref_post_maybenull_ */ 00740 #define _Out_bytecap_(size) _Pre_bytecap_(size) _Post_valid_ 00741 #define _Out_bytecap_c_(size) _Pre_bytecap_c_(size) _Post_valid_ 00742 #define _Out_bytecap_post_bytecount_(cap,count) _Pre_bytecap_(cap) _Post_valid_ _Post_bytecount_(count) 00743 #define _Out_bytecap_x_(size) _Pre_bytecap_x_(size) _Post_valid_ 00744 #define _Out_bytecapcount_(capcount) _Pre_bytecap_(capcount) _Post_valid_ _Post_bytecount_(capcount) 00745 #define _Out_bytecapcount_x_(capcount) _Pre_bytecap_x_(capcount) _Post_valid_ _Post_bytecount_x_(capcount) 00746 #define _Out_cap_(size) _Pre_cap_(size) _Post_valid_ 00747 #define _Out_cap_c_(size) _Pre_cap_c_(size) _Post_valid_ 00748 #define _Out_cap_m_(mult,size) _Pre_cap_m_(mult,size) _Post_valid_ 00749 #define _Out_cap_post_count_(cap,count) _Pre_cap_(cap) _Post_valid_ _Post_count_(count) 00750 #define _Out_cap_x_(size) _Pre_cap_x_(size) _Post_valid_ 00751 #define _Out_capcount_(capcount) _Pre_cap_(capcount) _Post_valid_ _Post_count_(capcount) 00752 #define _Out_capcount_x_(capcount) _Pre_cap_x_(capcount) _Post_valid_ _Post_count_x_(capcount) 00753 #define _Out_defensive_(annotes) _Post_defensive_ _Group_(annotes) 00754 #define _Out_opt_ _Post_valid_ _Pre_opt_cap_c_one_ 00755 #define _Out_opt_bytecap_(size) _Post_valid_ _Pre_opt_bytecap_(size) 00756 #define _Out_opt_bytecap_c_(size) _Post_valid_ _Pre_opt_bytecap_c_(size) 00757 #define _Out_opt_bytecap_post_bytecount_(cap,count) _Post_valid_ _Post_bytecount_(count) _Pre_opt_bytecap_(cap) 00758 #define _Out_opt_bytecap_x_(size) _Post_valid_ _Pre_opt_bytecap_x_(size) 00759 #define _Out_opt_bytecapcount_(capcount) _Post_valid_ _Post_bytecount_(capcount) _Pre_opt_bytecap_(capcount) 00760 #define _Out_opt_bytecapcount_x_(capcount) _Post_valid_ _Post_bytecount_x_(capcount) _Pre_opt_bytecap_x_(capcount) 00761 #define _Out_opt_cap_(size) _Post_valid_ _Pre_opt_cap_(size) 00762 #define _Out_opt_cap_c_(size) _Post_valid_ _Pre_opt_cap_c_(size) 00763 #define _Out_opt_cap_m_(mult,size) _Post_valid_ _Pre_opt_cap_m_(mult,size) 00764 #define _Out_opt_cap_post_count_(cap,count) _Post_valid_ _Post_count_(count) _Pre_opt_cap_(cap) 00765 #define _Out_opt_cap_x_(size) _Post_valid_ _Pre_opt_cap_x_(size) 00766 #define _Out_opt_capcount_(capcount) _Post_valid_ _Post_count_(capcount) _Pre_opt_cap_(capcount) 00767 #define _Out_opt_capcount_x_(capcount) _Post_valid_ _Post_count_x_(capcount) _Pre_opt_cap_x_(capcount) 00768 #define _Out_opt_ptrdiff_cap_(size) _Post_valid_ _Pre_opt_ptrdiff_cap_(size) 00769 #define _Out_opt_z_bytecap_(size) _Post_valid_ _Post_z_ _Pre_opt_bytecap_(size) 00770 #define _Out_opt_z_bytecap_c_(size) _Post_valid_ _Post_z_ _Pre_opt_bytecap_c_(size) 00771 #define _Out_opt_z_bytecap_post_bytecount_(cap,count) _Post_valid_ _Post_z_bytecount_(count) _Pre_opt_bytecap_(cap) 00772 #define _Out_opt_z_bytecap_x_(size) _Post_valid_ _Post_z_ _Pre_opt_bytecap_x_(size) 00773 #define _Out_opt_z_bytecapcount_(capcount) _Post_valid_ _Post_z_bytecount_(capcount) _Pre_opt_bytecap_(capcount) 00774 #define _Out_opt_z_cap_(size) _Post_valid_ _Post_z_ _Pre_opt_cap_(size) 00775 #define _Out_opt_z_cap_c_(size) _Post_valid_ _Post_z_ _Pre_opt_cap_c_(size) 00776 #define _Out_opt_z_cap_m_(mult,size) _Post_valid_ _Post_z_ _Pre_opt_cap_m_(mult,size) 00777 #define _Out_opt_z_cap_post_count_(cap,count) _Post_valid_ _Post_z_count_(count) _Pre_opt_cap_(cap) 00778 #define _Out_opt_z_cap_x_(size) _Post_valid_ _Post_z_ _Pre_opt_cap_x_(size) 00779 #define _Out_opt_z_capcount_(capcount) _Post_valid_ _Post_z_count_(capcount) _Pre_opt_cap_(capcount) 00780 #define _Out_ptrdiff_cap_(size) _Post_valid_ _Pre_ptrdiff_cap_(size) 00781 #define _Out_writes_(size) _Post_valid_ _Pre_cap_(size) 00782 #define _Out_writes_all_(size) _Out_writes_to_(_Old_(size), _Old_(size)) 00783 #define _Out_writes_all_opt_(size) _Out_writes_to_opt_(_Old_(size), _Old_(size)) 00784 #define _Out_writes_bytes_(size) _Post_valid_ _Pre_bytecap_(size) 00785 #define _Out_writes_bytes_all_(size) _Out_writes_bytes_to_(_Old_(size), _Old_(size)) 00786 #define _Out_writes_bytes_all_opt_(size) _Out_writes_bytes_to_opt_(_Old_(size), _Old_(size)) 00787 #define _Out_writes_bytes_opt_(size) _Post_valid_ _Pre_opt_bytecap_(size) 00788 #define _Out_writes_bytes_to_(size,count) _Post_valid_ _Post_bytecount_(count) _Pre_bytecap_(size) 00789 #define _Out_writes_bytes_to_opt_(size,count) _Post_valid_ _Post_bytecount_(count) _Pre_opt_bytecap_(size) 00790 #define _Out_writes_opt_(size) _Post_valid_ _Pre_opt_cap_(size) 00791 #define _Out_writes_opt_z_(size) _Post_valid_ _Post_z_ _Pre_opt_cap_(size) 00792 #define _Out_writes_to_(size,count) _Post_valid_ _Post_count_(count) _Pre_cap_(size) 00793 #define _Out_writes_to_opt_(size,count) _Post_valid_ _Post_count_(count) _Pre_opt_cap_(size) 00794 #define _Out_writes_to_ptr_(ptr) _Post_valid_ _Pre_ptrdiff_cap_(ptr) 00795 #define _Out_writes_to_ptr_opt_(ptr) _Post_valid_ _Pre_opt_ptrdiff_cap_(ptr) 00796 #define _Out_writes_to_ptr_opt_z_(ptr) _Post_valid_ Post_z_ _Pre_opt_ptrdiff_cap_(ptr) 00797 #define _Out_writes_to_ptr_z_(ptr) _Post_valid_ Post_z_ _Pre_ptrdiff_cap_(ptr) 00798 #define _Out_writes_z_(size) _Post_valid_ _Post_z_ _Pre_cap_(size) 00799 #define _Out_z_bytecap_(size) _Post_valid_ _Post_z_ _Pre_bytecap_(size) 00800 #define _Out_z_bytecap_c_(size) _Post_valid_ _Post_z_ _Pre_bytecap_c_(size) 00801 #define _Out_z_bytecap_post_bytecount_(cap,count) _Post_valid_ _Post_z_bytecount_(count) _Pre_bytecap_(cap) 00802 #define _Out_z_bytecap_x_(size) _Post_valid_ _Post_z_ _Pre_bytecap_x_(size) 00803 #define _Out_z_bytecapcount_(capcount) _Post_valid_ _Post_z_bytecount_(capcount) _Pre_bytecap_(capcount) 00804 #define _Out_z_cap_(size) _Post_valid_ _Post_z_ _Pre_cap_(size) 00805 #define _Out_z_cap_c_(size) _Post_valid_ _Post_z_ _Pre_cap_c_(size) 00806 #define _Out_z_cap_m_(mult,size) _Post_valid_ _Post_z_ _Pre_cap_m_(mult,size) 00807 #define _Out_z_cap_post_count_(cap,count) _Post_valid_ _Post_z_count_(count) _Pre_cap_(cap) 00808 #define _Out_z_cap_x_(size) _Post_valid_ _Post_z_ _Pre_cap_x_(size) 00809 #define _Out_z_capcount_(capcount) _Post_valid_ _Post_z_count_(capcount) _Pre_cap_(capcount) 00810 00811 #define _Inout_ _Prepost_valid_ 00812 #define _Inout_bytecap_(size) _Post_valid_ _Pre_valid_bytecap_(size) 00813 #define _Inout_bytecap_c_(size) _Post_valid_ _Pre_valid_bytecap_c_(size) 00814 #define _Inout_bytecap_x_(size) _Post_valid_ _Pre_valid_bytecap_x_(size) 00815 #define _Inout_bytecount_(size) _Prepost_bytecount_(size) 00816 #define _Inout_bytecount_c_(size) _Prepost_bytecount_c_(size) 00817 #define _Inout_bytecount_x_(size) _Prepost_bytecount_x_(size) 00818 #define _Inout_cap_(size) _Post_valid_ _Pre_valid_cap_(size) 00819 #define _Inout_cap_c_(size) _Post_valid_ _Pre_valid_cap_c_(size) 00820 #define _Inout_cap_x_(size) _Post_valid_ _Pre_valid_cap_x_(size) 00821 #define _Inout_count_(size) _Prepost_count_(size) 00822 #define _Inout_count_c_(size) _Prepost_count_c_(size) 00823 #define _Inout_count_x_(size) _Prepost_count_x_(size) 00824 #define _Inout_defensive_(annotes) _Pre_defensive_ _Post_defensive_ _Group_(annotes) 00825 #define _Inout_opt_ _Prepost_opt_valid_ 00826 #define _Inout_opt_bytecap_(size) _Post_valid_ _Pre_opt_valid_bytecap_(size) 00827 #define _Inout_opt_bytecap_c_(size) _Post_valid_ _Pre_opt_valid_bytecap_c_(size) 00828 #define _Inout_opt_bytecap_x_(size) _Post_valid_ _Pre_opt_valid_bytecap_x_(size) 00829 #define _Inout_opt_bytecount_(size) _Prepost_opt_bytecount_(size) 00830 #define _Inout_opt_bytecount_c_(size) _Prepost_opt_bytecount_c_(size) 00831 #define _Inout_opt_bytecount_x_(size) _Prepost_opt_bytecount_x_(size) 00832 #define _Inout_opt_cap_(size) _Post_valid_ _Pre_opt_valid_cap_(size) 00833 #define _Inout_opt_cap_c_(size) _Post_valid_ _Pre_opt_valid_cap_c_(size) 00834 #define _Inout_opt_cap_x_(size) _Post_valid_ _Pre_opt_valid_cap_x_(size) 00835 #define _Inout_opt_count_(size) _Prepost_opt_count_(size) 00836 #define _Inout_opt_count_c_(size) _Prepost_opt_count_c_(size) 00837 #define _Inout_opt_count_x_(size) _Prepost_opt_count_x_(size) 00838 #define _Inout_opt_ptrdiff_count_(size) _Pre_opt_ptrdiff_count_(size) 00839 #define _Inout_opt_z_ _Prepost_opt_z_ 00840 #define _Inout_opt_z_bytecap_(size) _Pre_opt_z_bytecap_(size) _Post_z_ 00841 #define _Inout_opt_z_bytecap_c_(size) _Pre_opt_z_bytecap_c_(size) _Post_z_ 00842 #define _Inout_opt_z_bytecap_x_(size) _Pre_opt_z_bytecap_x_(size) _Post_z_ 00843 #define _Inout_opt_z_bytecount_(size) _Prepost_z_ _Prepost_opt_bytecount_(size) 00844 #define _Inout_opt_z_bytecount_c_(size) _Prepost_z_ _Prepost_opt_bytecount_c_(size) 00845 #define _Inout_opt_z_cap_(size) _Pre_opt_z_cap_(size) _Post_z_ 00846 #define _Inout_opt_z_cap_c_(size) _Pre_opt_z_cap_c_(size) _Post_z_ 00847 #define _Inout_opt_z_cap_x_(size) _Pre_opt_z_cap_x_(size) _Post_z_ 00848 #define _Inout_opt_z_count_(size) _Prepost_z_ _Prepost_opt_count_(size) 00849 #define _Inout_opt_z_count_c_(size) _Prepost_z_ _Prepost_opt_count_c_(size) 00850 #define _Inout_ptrdiff_count_(size) _Pre_ptrdiff_count_(size) 00851 #define _Inout_updates_(size) _Post_valid_ _Pre_cap_(size) _SA_Pre1_(__valid_impl) 00852 #define _Inout_updates_all_(size) _Inout_updates_to_(_Old_(size), _Old_(size)) 00853 #define _Inout_updates_all_opt_(size) _Inout_updates_to_opt_(_Old_(size), _Old_(size)) 00854 #define _Inout_updates_bytes_(size) _Post_valid_ _Pre_bytecap_(size) _SA_Pre1_(__valid_impl) 00855 #define _Inout_updates_bytes_all_(size) _Inout_updates_bytes_to_(_Old_(size), _Old_(size)) 00856 #define _Inout_updates_bytes_all_opt_(size) _Inout_updates_bytes_to_opt_(_Old_(size), _Old_(size)) 00857 #define _Inout_updates_bytes_opt_(size) _Post_valid_ _SA_Pre1_(__valid_impl) _Pre_opt_bytecap_(size) 00858 #define _Inout_updates_bytes_to_(size,count) _Out_writes_bytes_to_(size,count) _SA_Pre1_(__valid_impl) _SA_Pre1_(__bytecount_impl(count)) 00859 #define _Inout_updates_bytes_to_opt_(size,count) _SA_Pre1_(__valid_impl) _SA_Pre1_(__bytecount_impl(count)) _Out_writes_bytes_to_opt_(size,count) 00860 #define _Inout_updates_opt_(size) _Post_valid_ _SA_Pre1_(__valid_impl) _Pre_opt_cap_(size) 00861 #define _Inout_updates_opt_z_(size) _Post_valid_ _SA_Post1_(__zterm_impl) _SA_Pre1_(__valid_impl) _SA_Pre1_(__zterm_impl) _Pre_opt_cap_(size) 00862 #define _Inout_updates_to_(size,count) _Out_writes_to_(size,count) _SA_Pre1_(__valid_impl) _SA_Pre1_(__count_impl(count)) 00863 #define _Inout_updates_to_opt_(size,count) _SA_Pre1_(__valid_impl) _SA_Pre1_(__count_impl(count)) _Out_writes_to_opt_(size,count) 00864 #define _Inout_updates_z_(size) _Pre_cap_(size) _SA_Pre1_(__valid_impl) _Post_valid_ _SA_Pre1_(__zterm_impl) _SA_Post1_(__zterm_impl) 00865 #define _Inout_z_ _Prepost_z_ 00866 #define _Inout_z_bytecap_(size) _Pre_z_bytecap_(size) _Post_z_ 00867 #define _Inout_z_bytecap_c_(size) _Pre_z_bytecap_c_(size) _Post_z_ 00868 #define _Inout_z_bytecap_x_(size) _Pre_z_bytecap_x_(size) _Post_z_ 00869 #define _Inout_z_bytecount_(size) _Prepost_z_ _Prepost_bytecount_(size) 00870 #define _Inout_z_bytecount_c_(size) _Prepost_z_ _Prepost_bytecount_c_(size) 00871 #define _Inout_z_cap_(size) _Pre_z_cap_(size) _Post_z_ 00872 #define _Inout_z_cap_c_(size) _Pre_z_cap_c_(size) _Post_z_ 00873 #define _Inout_z_cap_x_(size) _Pre_z_cap_x_(size) _Post_z_ 00874 #define _Inout_z_count_(size) _Prepost_z_ _Prepost_count_(size) 00875 #define _Inout_z_count_c_(size) _Prepost_z_ _Prepost_count_c_(size) 00876 00877 #define _Deref_opt_out_ _Out_opt_ _Deref_post_valid_ 00878 #define _Deref_opt_out_opt_ _Out_opt_ _Deref_post_opt_valid_ 00879 #define _Deref_opt_out_opt_z_ _Out_opt_ _Deref_post_opt_z_ 00880 #define _Deref_opt_out_z_ _Out_opt_ _Deref_post_z_ 00881 #define _Deref_out_ _Out_ _Deref_post_valid_ 00882 #define _Deref_out_opt_ _Out_ _Deref_post_opt_valid_ 00883 #define _Deref_out_opt_z_ _Out_ _Deref_post_opt_z_ 00884 #define _Deref_out_z_ _Out_ _Deref_post_z_ 00885 #define _Deref_out_z_bytecap_c_(sz) _Deref_pre_bytecap_c_(sz) _Deref_post_z_ 00886 #define _Deref_out_z_cap_c_(size) _Deref_pre_cap_c_(size) _Deref_post_z_ 00887 #define _Deref_inout_bound_ _Deref_in_bound_ _Deref_out_bound_ 00888 #define _Deref_inout_z_ _Deref_prepost_z_ 00889 #define _Deref_inout_z_bytecap_c_(size) _Deref_pre_z_bytecap_c_(size) _Deref_post_z_ 00890 #define _Deref_inout_z_cap_c_(size) _Deref_pre_z_cap_c_(size) _Deref_post_z_ 00891 00892 #define _Outptr_ _Out_ _SA_Deref_post2_(__notnull_impl_notref, __count_impl(1)) _Post_valid_ 00893 #define _Outptr_opt_ _Out_opt_ _SA_Deref_post2_(__notnull_impl_notref, __count_impl(1)) //_Post_valid_ 00894 #define _Outptr_opt_result_buffer_(size) _Out_opt_ _SA_Deref_post2_(__notnull_impl_notref, __cap_impl(size)) //_Post_valid_ 00895 #define _Outptr_opt_result_buffer_all_(size) _Out_opt_ _SA_Deref_post2_(__notnull_impl_notref, __count_impl(size)) //_Post_valid_ 00896 #define _Outptr_opt_result_buffer_all_maybenull_(size) _Out_opt_ _SA_Deref_post2_(__maybenull_impl_notref, __count_impl(size)) //_Post_valid_ 00897 #define _Outptr_opt_result_buffer_maybenull_(size) _Out_opt_ _SA_Deref_post2_(__maybenull_impl_notref, __cap_impl(size)) //_Post_valid_ 00898 #define _Outptr_opt_result_buffer_to_(size, count) _Out_opt_ _SA_Deref_post3_(__notnull_impl_notref, __cap_impl(size), __count_impl(count)) //_Post_valid_ 00899 #define _Outptr_opt_result_buffer_to_maybenull_(size, count) _Out_opt_ _SA_Deref_post3_(__maybenull_impl_notref, __cap_impl(size), __count_impl(count)) //_Post_valid_ 00900 #define _Outptr_opt_result_bytebuffer_(size) _Out_opt_ _SA_Deref_post2_(__notnull_impl_notref, __bytecap_impl(size)) //_Post_valid_ 00901 #define _Outptr_opt_result_bytebuffer_all_(size) _Out_opt_ _SA_Deref_post2_(__notnull_impl_notref, __bytecount_impl(size)) //_Post_valid_ 00902 #define _Outptr_opt_result_bytebuffer_all_maybenull_(size) _Out_opt_ _SA_Deref_post2_(__maybenull_impl_notref, __bytecount_impl(size)) //_Post_valid_ 00903 #define _Outptr_opt_result_bytebuffer_maybenull_(size) _Out_opt_ _SA_Deref_post2_(__maybenull_impl_notref, __bytecap_impl(size)) //_Post_valid_ 00904 #define _Outptr_opt_result_bytebuffer_to_(size, count) _Out_opt_ _SA_Deref_post3_(__notnull_impl_notref, __bytecap_impl(size), __bytecount_impl(count)) //_Post_valid_ 00905 #define _Outptr_opt_result_bytebuffer_to_maybenull_(size, count) _Out_opt_ _SA_Deref_post3_(__maybenull_impl_notref, __bytecap_impl(size), __bytecount_impl(count)) //_Post_valid_ 00906 #define _Outptr_opt_result_maybenull_ _Out_opt_ _SA_Deref_post2_(__maybenull_impl_notref, __count_impl(1)) //_Post_valid_ 00907 #define _Outptr_opt_result_maybenull_z_ _Out_opt_ _Deref_post_opt_z_ 00908 #define _Outptr_opt_result_nullonfailure_ _Outptr_opt_ _On_failure_(_Deref_post_null_) 00909 #define _Outptr_opt_result_z_ _Out_opt_ _Deref_post_z_ 00910 #define _Outptr_result_buffer_(size) _Out_ _SA_Deref_post2_(__notnull_impl_notref, __cap_impl(size)) _Post_valid_ 00911 #define _Outptr_result_buffer_all_(size) _Out_ _SA_Deref_post2_(__notnull_impl_notref, __count_impl(size)) _Post_valid_ 00912 #define _Outptr_result_buffer_all_maybenull_(size) _Out_ _SA_Deref_post2_(__maybenull_impl_notref, __count_impl(size)) _Post_valid_ 00913 #define _Outptr_result_buffer_maybenull_(size) _Out_ _SA_Deref_post2_(__maybenull_impl_notref, __cap_impl(size)) _Post_valid_ 00914 #define _Outptr_result_buffer_to_(size, count) _Out_ _SA_Deref_post3_(__notnull_impl_notref, __cap_impl(size), __count_impl(count)) _Post_valid_ 00915 #define _Outptr_result_buffer_to_maybenull_(size, count) _Out_ _SA_Deref_post3_(__maybenull_impl_notref, __cap_impl(size), __count_impl(count)) _Post_valid_ 00916 #define _Outptr_result_bytebuffer_(size) _Out_ _SA_Deref_post2_(__notnull_impl_notref, __bytecap_impl(size)) _Post_valid_ 00917 #define _Outptr_result_bytebuffer_all_(size) _Out_ _SA_Deref_post2_(__notnull_impl_notref, __bytecount_impl(size)) _Post_valid_ 00918 #define _Outptr_result_bytebuffer_all_maybenull_(size) _Out_ _SA_Deref_post2_(__maybenull_impl_notref, __bytecount_impl(size)) _Post_valid_ 00919 #define _Outptr_result_bytebuffer_maybenull_(size) _Out_ _SA_Deref_post2_(__maybenull_impl_notref, __bytecap_impl(size)) _Post_valid_ 00920 #define _Outptr_result_bytebuffer_to_(size, count) _Out_ _SA_Deref_post3_(__notnull_impl_notref, __bytecap_impl(size), __bytecount_impl(count)) _Post_valid_ 00921 #define _Outptr_result_bytebuffer_to_maybenull_(size, count) _Out_ _SA_Deref_post3_(__maybenull_impl_notref, __bytecap_impl(size), __bytecount_impl(count)) _Post_valid_ 00922 #define _Outptr_result_maybenull_ _Out_ _SA_Deref_post2_(__maybenull_impl_notref, __count_impl(1)) _Post_valid_ 00923 #define _Outptr_result_maybenull_z_ _Out_ _Deref_post_opt_z_ 00924 #define _Outptr_result_nullonfailure_ _Outptr_ _On_failure_(_Deref_post_null_) 00925 #define _Outptr_result_z_ _Out_ _Deref_post_z_ 00926 00927 #define _COM_Outptr_ _Outptr_ _On_failure_(_Deref_post_null_) 00928 #define _COM_Outptr_opt_ _Outptr_opt_ _On_failure_(_Deref_post_null_) 00929 #define _COM_Outptr_opt_result_maybenull_ _Outptr_opt_result_maybenull_ _On_failure_(_Deref_post_null_) 00930 #define _COM_Outptr_result_maybenull_ _Outptr_result_maybenull_ _On_failure_(_Deref_post_null_) 00931 00932 #define _Outref_ _Group_(_Out_) 00933 #define _Outref_result_buffer_(size) _SA_Post1_(__cap_impl(size)) _Post_valid_ 00934 #define _Outref_result_buffer_all_(size) _SA_Post1_(__count_impl(size)) 00935 #define _Outref_result_buffer_all_maybenull_(size) _SA_Post2_(__count_impl(size), __maybenull_impl) 00936 #define _Outref_result_buffer_maybenull_(size) _SA_Post2_(__cap_impl(size), __maybenull_impl) _Post_valid_ 00937 #define _Outref_result_buffer_to_(size, count) _SA_Post2_(__cap_impl(size), __count_impl(count)) 00938 #define _Outref_result_buffer_to_maybenull_(size, count) _SA_Post3_(__cap_impl(size), __count_impl(count), __maybenull_impl) 00939 #define _Outref_result_bytebuffer_(size) _SA_Post1_(__bytecap_impl(size)) _Post_valid_ 00940 #define _Outref_result_bytebuffer_all_(size) _SA_Post1_(__bytecount_impl(size)) 00941 #define _Outref_result_bytebuffer_all_maybenull_(size) _SA_Post2_(__bytecount_impl(size), __maybenull_impl) 00942 #define _Outref_result_bytebuffer_maybenull_(size) _SA_Post2_(__bytecap_impl(size), __maybenull_impl) _Post_valid_ 00943 #define _Outref_result_bytebuffer_to_(size, count) _SA_Post2_(__bytecap_impl(size), __bytecount_impl(count)) 00944 #define _Outref_result_bytebuffer_to_maybenull_(size, count) _SA_Post3_(__bytecap_impl(size), __bytecount_impl(count), __maybenull_impl) 00945 #define _Outref_result_maybenull_ _Group_(_Pre_cap_c_one_ _Post_valid_ __maybenull_impl) 00946 #define _Outref_result_nullonfailure_ _Group_(_Out_) _On_failure_(_Post_null_) 00947 00948 #define _Reserved_ _SA_Pre1_(__null_impl) 00949 #define _Result_nullonfailure_ _On_failure_(_Notref_ _SA_Deref_ _Post_null_) 00950 #define _Result_zeroonfailure_ _On_failure_(_Notref_ _SA_Deref_ _Out_range_(==, 0)) 00951 00952 #define __inner_callback _SA_annotes0(__callback) 00953 00954 #define _Ret_ _Ret_valid_ 00955 #define _Ret_bytecap_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret1_(__bytecap_impl(size)) 00956 #define _Ret_bytecap_c_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret1_(__bytecap_c_impl(size)) 00957 #define _Ret_bytecap_x_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret1_(__bytecap_x_impl(size)) 00958 #define _Ret_bytecount_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret1_(__bytecount_impl(size)) _SA_Ret1_(__valid_impl) 00959 #define _Ret_bytecount_c_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret1_(__bytecount_c_impl(size)) _SA_Ret1_(__valid_impl) 00960 #define _Ret_bytecount_x_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret1_(__bytecount_x_impl(size)) _SA_Ret1_(__valid_impl) 00961 #define _Ret_cap_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret1_(__cap_impl(size)) 00962 #define _Ret_cap_c_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret1_(__cap_c_impl(size)) 00963 #define _Ret_cap_x_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret1_(__cap_x_impl(size)) 00964 #define _Ret_count_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret1_(__count_impl(size)) _SA_Ret1_(__valid_impl) 00965 #define _Ret_count_c_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret1_(__count_c_impl(size)) _SA_Ret1_(__valid_impl) 00966 #define _Ret_count_x_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret1_(__count_x_impl(size)) _SA_Ret1_(__valid_impl) 00967 #define _Ret_maybenull_ _SA_Ret1_(__maybenull_impl) 00968 #define _Ret_maybenull_z_ _SA_Ret2_(__maybenull_impl,__zterm_impl) _SA_Ret1_(__valid_impl) 00969 #define _Ret_notnull_ _SA_Ret1_(__notnull_impl) 00970 #define _Ret_null_ _SA_Ret1_(__null_impl) 00971 #define _Ret_opt_ _Ret_opt_valid_ 00972 #define _Ret_opt_bytecap_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret1_(__bytecap_impl(size)) 00973 #define _Ret_opt_bytecap_c_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret1_(__bytecap_c_impl(size)) 00974 #define _Ret_opt_bytecap_x_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret1_(__bytecap_x_impl(size)) 00975 #define _Ret_opt_bytecount_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret1_(__bytecount_impl(size)) _SA_Ret1_(__valid_impl) 00976 #define _Ret_opt_bytecount_c_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret1_(__bytecount_c_impl(size)) _SA_Ret1_(__valid_impl) 00977 #define _Ret_opt_bytecount_x_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret1_(__bytecount_x_impl(size)) _SA_Ret1_(__valid_impl) 00978 #define _Ret_opt_cap_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret1_(__cap_impl(size)) 00979 #define _Ret_opt_cap_c_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret1_(__cap_c_impl(size)) 00980 #define _Ret_opt_cap_x_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret1_(__cap_x_impl(size)) 00981 #define _Ret_opt_count_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret1_(__count_impl(size)) _SA_Ret1_(__valid_impl) 00982 #define _Ret_opt_count_c_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret1_(__count_c_impl(size)) _SA_Ret1_(__valid_impl) 00983 #define _Ret_opt_count_x_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret1_(__count_x_impl(size)) _SA_Ret1_(__valid_impl) 00984 #define _Ret_opt_valid_ _SA_Ret1_(__maybenull_impl_notref) _SA_Ret1_(__valid_impl) 00985 #define _Ret_opt_z_ _SA_Ret2_(__maybenull_impl,__zterm_impl) _SA_Ret1_(__valid_impl) 00986 #define _Ret_opt_z_bytecap_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret2_(__zterm_impl,__bytecap_impl(size)) _SA_Ret1_(__valid_impl) 00987 #define _Ret_opt_z_bytecount_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret2_(__zterm_impl,__bytecount_impl(size)) _SA_Ret1_(__valid_impl) 00988 #define _Ret_opt_z_cap_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret2_(__zterm_impl,__cap_impl(size)) _SA_Ret1_(__valid_impl) 00989 #define _Ret_opt_z_count_(size) _SA_Ret1_(__maybenull_impl_notref) _SA_Ret2_(__zterm_impl,__count_impl(size)) _SA_Ret1_(__valid_impl) 00990 #define _Ret_valid_ _SA_Ret1_(__notnull_impl_notref) _SA_Ret1_(__valid_impl) 00991 #define _Ret_writes_(size) _SA_Ret2_(__notnull_impl, __count_impl(size)) _SA_Ret1_(__valid_impl) 00992 #define _Ret_writes_bytes_(size) _SA_Ret2_(__notnull_impl, __bytecount_impl(size)) _SA_Ret1_(__valid_impl) 00993 #define _Ret_writes_bytes_maybenull_(size) _SA_Ret2_(__maybenull_impl,__bytecount_impl(size)) _SA_Ret1_(__valid_impl) 00994 #define _Ret_writes_bytes_to_(size,count) _SA_Ret3_(__notnull_impl, __bytecap_impl(size), __bytecount_impl(count)) _SA_Ret1_(__valid_impl) 00995 #define _Ret_writes_bytes_to_maybenull_(size,count) _SA_Ret3_(__maybenull_impl, __bytecap_impl(size), __bytecount_impl(count)) _SA_Ret1_(__valid_impl) 00996 #define _Ret_writes_maybenull_(size) _SA_Ret2_(__maybenull_impl,__count_impl(size)) _SA_Ret1_(__valid_impl) 00997 #define _Ret_writes_maybenull_z_(size) _SA_Ret3_(__maybenull_impl,__count_impl(size),__zterm_impl) _SA_Ret1_(__valid_impl) 00998 #define _Ret_writes_to_(size,count) _SA_Ret3_(__notnull_impl, __cap_impl(size), __count_impl(count)) _SA_Ret1_(__valid_impl) 00999 #define _Ret_writes_to_maybenull_(size,count) _SA_Ret3_(__maybenull_impl, __cap_impl(size), __count_impl(count)) _SA_Ret1_(__valid_impl) 01000 #define _Ret_writes_z_(size) _SA_Ret3_(__notnull_impl, __count_impl(size), __zterm_impl) _SA_Ret1_(__valid_impl) 01001 #define _Ret_z_ _SA_Ret2_(__notnull_impl, __zterm_impl) _SA_Ret1_(__valid_impl) 01002 #define _Ret_z_bytecap_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret2_(__zterm_impl,__bytecap_impl(size)) _SA_Ret1_(__valid_impl) 01003 #define _Ret_z_bytecount_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret2_(__zterm_impl,__bytecount_impl(size)) _SA_Ret1_(__valid_impl) 01004 #define _Ret_z_cap_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret2_(__zterm_impl,__cap_impl(size)) _SA_Ret1_(__valid_impl) 01005 #define _Ret_z_count_(size) _SA_Ret1_(__notnull_impl_notref) _SA_Ret2_(__zterm_impl,__count_impl(size)) _SA_Ret1_(__valid_impl) 01006 01007 #define _Deref_ret_opt_z_ _SA_Deref_ret1_(__maybenull_impl_notref) _SA_Ret1_(__zterm_impl) 01008 #define _Deref_ret_z_ _SA_Deref_ret1_(__notnull_impl_notref) _SA_Deref_ret1_(__zterm_impl) 01009 01010 /* Additional annotation declarations */ 01011 #define __ANNOTATION(fun) _SA_annotes0(SAL_annotation) void __SA_##fun 01012 #define __PRIMOP(type, fun) _SA_annotes0(SAL_primop) type __SA_##fun; 01013 #if (_MSC_VER < 1600) 01014 01015 __ANNOTATION(SAL_satisfies(_In_ char);) 01016 01017 #define _Inexpressible_(x) (x) 01018 01019 #endif 01020 01021 __ANNOTATION(SAL_constant(enum __SAL_YesNo);) 01022 __ANNOTATION(SAL_TypeName(__AuToQuOtE char *)); 01023 01024 __ANNOTATION(SAL_functionClassNew(_In_ char*);) 01025 __PRIMOP(int, _In_function_class_(_In_ char*);) 01026 #define _In_function_class_(x) _In_function_class_(#x) 01027 01028 __ANNOTATION(SAL_interlocked(void);) 01029 01030 __ANNOTATION(SAL_untrusted_data_source(__AuToQuOtE char *)); 01031 01032 01033 #else /* _USE_ATTRIBUTES_FOR_SAL || _USE_DECLSPECS_FOR_SAL */ 01034 01035 /* Dummys */ 01036 #define __inner_exceptthat 01037 #define __inner_typefix(ctype) 01038 #define _Always_(annos) 01039 #define _Analysis_noreturn_ 01040 #define _At_(target, annos) 01041 #define _At_buffer_(target, iter, bound, annos) 01042 #define _Check_return_ 01043 #define _COM_Outptr_ 01044 #define _COM_Outptr_opt_ 01045 #define _COM_Outptr_opt_result_maybenull_ 01046 #define _COM_Outptr_result_maybenull_ 01047 #define _Const_ 01048 #define _Deref_in_bound_ 01049 #define _Deref_in_range_(lb,ub) 01050 #define _Deref_inout_bound_ 01051 #define _Deref_inout_z_ 01052 #define _Deref_inout_z_bytecap_c_(size) 01053 #define _Deref_inout_z_cap_c_(size) 01054 #define _Deref_opt_out_ 01055 #define _Deref_opt_out_opt_ 01056 #define _Deref_opt_out_opt_z_ 01057 #define _Deref_opt_out_z_ 01058 #define _Deref_out_ 01059 #define _Deref_out_bound_ 01060 #define _Deref_out_opt_ 01061 #define _Deref_out_opt_z_ 01062 #define _Deref_out_range_(lb,ub) 01063 #define _Deref_out_z_ 01064 #define _Deref_out_z_bytecap_c_(size) 01065 #define _Deref_out_z_cap_c_(size) 01066 #define _Deref_post_bytecap_(size) 01067 #define _Deref_post_bytecap_c_(size) 01068 #define _Deref_post_bytecap_x_(size) 01069 #define _Deref_post_bytecount_(size) 01070 #define _Deref_post_bytecount_c_(size) 01071 #define _Deref_post_bytecount_x_(size) 01072 #define _Deref_post_cap_(size) 01073 #define _Deref_post_cap_c_(size) 01074 #define _Deref_post_cap_x_(size) 01075 #define _Deref_post_count_(size) 01076 #define _Deref_post_count_c_(size) 01077 #define _Deref_post_count_x_(size) 01078 #define _Deref_post_maybenull_ 01079 #define _Deref_post_notnull_ 01080 #define _Deref_post_null_ 01081 #define _Deref_post_opt_bytecap_(size) 01082 #define _Deref_post_opt_bytecap_c_(size) 01083 #define _Deref_post_opt_bytecap_x_(size) 01084 #define _Deref_post_opt_bytecount_(size) 01085 #define _Deref_post_opt_bytecount_c_(size) 01086 #define _Deref_post_opt_bytecount_x_(size) 01087 #define _Deref_post_opt_cap_(size) 01088 #define _Deref_post_opt_cap_c_(size) 01089 #define _Deref_post_opt_cap_x_(size) 01090 #define _Deref_post_opt_count_(size) 01091 #define _Deref_post_opt_count_c_(size) 01092 #define _Deref_post_opt_count_x_(size) 01093 #define _Deref_post_opt_valid_ 01094 #define _Deref_post_opt_valid_bytecap_(size) 01095 #define _Deref_post_opt_valid_bytecap_c_(size) 01096 #define _Deref_post_opt_valid_bytecap_x_(size) 01097 #define _Deref_post_opt_valid_cap_(size) 01098 #define _Deref_post_opt_valid_cap_c_(size) 01099 #define _Deref_post_opt_valid_cap_x_(size) 01100 #define _Deref_post_opt_z_ 01101 #define _Deref_post_opt_z_bytecap_(size) 01102 #define _Deref_post_opt_z_bytecap_c_(size) 01103 #define _Deref_post_opt_z_bytecap_x_(size) 01104 #define _Deref_post_opt_z_cap_(size) 01105 #define _Deref_post_opt_z_cap_c_(size) 01106 #define _Deref_post_opt_z_cap_x_(size) 01107 #define _Deref_post_valid_ 01108 #define _Deref_post_valid_bytecap_(size) 01109 #define _Deref_post_valid_bytecap_c_(size) 01110 #define _Deref_post_valid_bytecap_x_(size) 01111 #define _Deref_post_valid_cap_(size) 01112 #define _Deref_post_valid_cap_c_(size) 01113 #define _Deref_post_valid_cap_x_(size) 01114 #define _Deref_post_z_ 01115 #define _Deref_post_z_bytecap_(size) 01116 #define _Deref_post_z_bytecap_c_(size) 01117 #define _Deref_post_z_bytecap_x_(size) 01118 #define _Deref_post_z_cap_(size) 01119 #define _Deref_post_z_cap_c_(size) 01120 #define _Deref_post_z_cap_x_(size) 01121 #define _Deref_pre_bytecap_(size) 01122 #define _Deref_pre_bytecap_c_(size) 01123 #define _Deref_pre_bytecap_x_(size) 01124 #define _Deref_pre_bytecount_(size) 01125 #define _Deref_pre_bytecount_c_(size) 01126 #define _Deref_pre_bytecount_x_(size) 01127 #define _Deref_pre_cap_(size) 01128 #define _Deref_pre_cap_c_(size) 01129 #define _Deref_pre_cap_x_(size) 01130 #define _Deref_pre_count_(size) 01131 #define _Deref_pre_count_c_(size) 01132 #define _Deref_pre_count_x_(size) 01133 #define _Deref_pre_invalid_ 01134 #define _Deref_pre_maybenull_ 01135 #define _Deref_pre_notnull_ 01136 #define _Deref_pre_null_ 01137 #define _Deref_pre_opt_bytecap_(size) 01138 #define _Deref_pre_opt_bytecap_c_(size) 01139 #define _Deref_pre_opt_bytecap_x_(size) 01140 #define _Deref_pre_opt_bytecount_(size) 01141 #define _Deref_pre_opt_bytecount_c_(size) 01142 #define _Deref_pre_opt_bytecount_x_(size) 01143 #define _Deref_pre_opt_cap_(size) 01144 #define _Deref_pre_opt_cap_c_(size) 01145 #define _Deref_pre_opt_cap_x_(size) 01146 #define _Deref_pre_opt_count_(size) 01147 #define _Deref_pre_opt_count_c_(size) 01148 #define _Deref_pre_opt_count_x_(size) 01149 #define _Deref_pre_opt_valid_ 01150 #define _Deref_pre_opt_valid_bytecap_(size) 01151 #define _Deref_pre_opt_valid_bytecap_c_(size) 01152 #define _Deref_pre_opt_valid_bytecap_x_(size) 01153 #define _Deref_pre_opt_valid_cap_(size) 01154 #define _Deref_pre_opt_valid_cap_c_(size) 01155 #define _Deref_pre_opt_valid_cap_x_(size) 01156 #define _Deref_pre_opt_z_ 01157 #define _Deref_pre_opt_z_bytecap_(size) 01158 #define _Deref_pre_opt_z_bytecap_c_(size) 01159 #define _Deref_pre_opt_z_bytecap_x_(size) 01160 #define _Deref_pre_opt_z_cap_(size) 01161 #define _Deref_pre_opt_z_cap_c_(size) 01162 #define _Deref_pre_opt_z_cap_x_(size) 01163 #define _Deref_pre_readonly_ 01164 #define _Deref_pre_valid_ 01165 #define _Deref_pre_valid_bytecap_(size) 01166 #define _Deref_pre_valid_bytecap_c_(size) 01167 #define _Deref_pre_valid_bytecap_x_(size) 01168 #define _Deref_pre_valid_cap_(size) 01169 #define _Deref_pre_valid_cap_c_(size) 01170 #define _Deref_pre_valid_cap_x_(size) 01171 #define _Deref_pre_writeonly_ 01172 #define _Deref_pre_z_ 01173 #define _Deref_pre_z_bytecap_(size) 01174 #define _Deref_pre_z_bytecap_c_(size) 01175 #define _Deref_pre_z_bytecap_x_(size) 01176 #define _Deref_pre_z_cap_(size) 01177 #define _Deref_pre_z_cap_c_(size) 01178 #define _Deref_pre_z_cap_x_(size) 01179 #define _Deref_prepost_bytecap_(size) 01180 #define _Deref_prepost_bytecap_x_(size) 01181 #define _Deref_prepost_bytecount_(size) 01182 #define _Deref_prepost_bytecount_x_(size) 01183 #define _Deref_prepost_cap_(size) 01184 #define _Deref_prepost_cap_x_(size) 01185 #define _Deref_prepost_count_(size) 01186 #define _Deref_prepost_count_x_(size) 01187 #define _Deref_prepost_opt_bytecap_(size) 01188 #define _Deref_prepost_opt_bytecap_x_(size) 01189 #define _Deref_prepost_opt_bytecount_(size) 01190 #define _Deref_prepost_opt_bytecount_x_(size) 01191 #define _Deref_prepost_opt_cap_(size) 01192 #define _Deref_prepost_opt_cap_x_(size) 01193 #define _Deref_prepost_opt_count_(size) 01194 #define _Deref_prepost_opt_count_x_(size) 01195 #define _Deref_prepost_opt_valid_ 01196 #define _Deref_prepost_opt_valid_bytecap_(size) 01197 #define _Deref_prepost_opt_valid_bytecap_x_(size) 01198 #define _Deref_prepost_opt_valid_cap_(size) 01199 #define _Deref_prepost_opt_valid_cap_x_(size) 01200 #define _Deref_prepost_opt_z_ 01201 #define _Deref_prepost_opt_z_bytecap_(size) 01202 #define _Deref_prepost_opt_z_cap_(size) 01203 #define _Deref_prepost_valid_ 01204 #define _Deref_prepost_valid_bytecap_(size) 01205 #define _Deref_prepost_valid_bytecap_x_(size) 01206 #define _Deref_prepost_valid_cap_(size) 01207 #define _Deref_prepost_valid_cap_x_(size) 01208 #define _Deref_prepost_z_ 01209 #define _Deref_prepost_z_bytecap_(size) 01210 #define _Deref_prepost_z_cap_(size) 01211 #define _Deref_ret_bound_ 01212 #define _Deref_ret_opt_z_ 01213 #define _Deref_ret_range_(lb,ub) 01214 #define _Deref_ret_z_ 01215 #define _Deref2_pre_readonly_ 01216 #define _Field_range_(min,max) 01217 #define _Field_size_(size) 01218 #define _Field_size_bytes_(size) 01219 #define _Field_size_bytes_full_(size) 01220 #define _Field_size_bytes_full_opt_(size) 01221 #define _Field_size_bytes_opt_(size) 01222 #define _Field_size_bytes_part_(size, count) 01223 #define _Field_size_bytes_part_opt_(size, count) 01224 #define _Field_size_full_(size) 01225 #define _Field_size_full_opt_(size) 01226 #define _Field_size_opt_(size) 01227 #define _Field_size_part_(size, count) 01228 #define _Field_size_part_opt_(size, count) 01229 #define _Field_z_ 01230 #define _Function_class_(x) 01231 #define _Group_(annos) 01232 #define _In_ 01233 #define _In_bound_ 01234 #define _In_bytecount_(size) 01235 #define _In_bytecount_c_(size) 01236 #define _In_bytecount_x_(size) 01237 #define _In_count_(size) 01238 #define _In_count_c_(size) 01239 #define _In_count_x_(size) 01240 #define _In_defensive_(annotes) 01241 #define _In_opt_ 01242 #define _In_opt_bytecount_(size) 01243 #define _In_opt_bytecount_c_(size) 01244 #define _In_opt_bytecount_x_(size) 01245 #define _In_opt_count_(size) 01246 #define _In_opt_count_c_(size) 01247 #define _In_opt_count_x_(size) 01248 #define _In_opt_ptrdiff_count_(size) 01249 #define _In_opt_z_ 01250 #define _In_opt_z_bytecount_(size) 01251 #define _In_opt_z_bytecount_c_(size) 01252 #define _In_opt_z_count_(size) 01253 #define _In_opt_z_count_c_(size) 01254 #define _In_ptrdiff_count_(size) 01255 #define _In_range_(lb,ub) 01256 #define _In_reads_(size) 01257 #define _In_reads_bytes_(size) 01258 #define _In_reads_bytes_opt_(size) 01259 #define _In_reads_opt_(size) 01260 #define _In_reads_opt_z_(size) 01261 #define _In_reads_or_z_(size) 01262 #define _In_reads_to_ptr_(ptr) 01263 #define _In_reads_to_ptr_opt_(ptr) 01264 #define _In_reads_to_ptr_opt_z_(ptr) 01265 #define _In_reads_to_ptr_z_(ptr) 01266 #define _In_reads_z_(size) 01267 #define _In_z_ 01268 #define _In_z_bytecount_(size) 01269 #define _In_z_bytecount_c_(size) 01270 #define _In_z_count_(size) 01271 #define _In_z_count_c_(size) 01272 #define _Inout_ 01273 #define _Inout_bytecap_(size) 01274 #define _Inout_bytecap_c_(size) 01275 #define _Inout_bytecap_x_(size) 01276 #define _Inout_bytecount_(size) 01277 #define _Inout_bytecount_c_(size) 01278 #define _Inout_bytecount_x_(size) 01279 #define _Inout_cap_(size) 01280 #define _Inout_cap_c_(size) 01281 #define _Inout_cap_x_(size) 01282 #define _Inout_count_(size) 01283 #define _Inout_count_c_(size) 01284 #define _Inout_count_x_(size) 01285 #define _Inout_defensive_(annotes) 01286 #define _Inout_opt_ 01287 #define _Inout_opt_bytecap_(size) 01288 #define _Inout_opt_bytecap_c_(size) 01289 #define _Inout_opt_bytecap_x_(size) 01290 #define _Inout_opt_bytecount_(size) 01291 #define _Inout_opt_bytecount_c_(size) 01292 #define _Inout_opt_bytecount_x_(size) 01293 #define _Inout_opt_cap_(size) 01294 #define _Inout_opt_cap_c_(size) 01295 #define _Inout_opt_cap_x_(size) 01296 #define _Inout_opt_count_(size) 01297 #define _Inout_opt_count_c_(size) 01298 #define _Inout_opt_count_x_(size) 01299 #define _Inout_opt_ptrdiff_count_(size) 01300 #define _Inout_opt_z_ 01301 #define _Inout_opt_z_bytecap_(size) 01302 #define _Inout_opt_z_bytecap_c_(size) 01303 #define _Inout_opt_z_bytecap_x_(size) 01304 #define _Inout_opt_z_bytecount_(size) 01305 #define _Inout_opt_z_bytecount_c_(size) 01306 #define _Inout_opt_z_cap_(size) 01307 #define _Inout_opt_z_cap_c_(size) 01308 #define _Inout_opt_z_cap_x_(size) 01309 #define _Inout_opt_z_count_(size) 01310 #define _Inout_opt_z_count_c_(size) 01311 #define _Inout_ptrdiff_count_(size) 01312 #define _Inout_updates_(size) 01313 #define _Inout_updates_all_(size) 01314 #define _Inout_updates_all_opt_(size) 01315 #define _Inout_updates_bytes_(size) 01316 #define _Inout_updates_bytes_all_(size) 01317 #define _Inout_updates_bytes_all_opt_(size) 01318 #define _Inout_updates_bytes_opt_(size) 01319 #define _Inout_updates_bytes_to_(size,count) 01320 #define _Inout_updates_bytes_to_opt_(size,count) 01321 #define _Inout_updates_opt_(size) 01322 #define _Inout_updates_opt_z_(size) 01323 #define _Inout_updates_to_(size,count) 01324 #define _Inout_updates_to_opt_(size,count) 01325 #define _Inout_updates_z_(size) 01326 #define _Inout_z_ 01327 #define _Inout_z_bytecap_(size) 01328 #define _Inout_z_bytecap_c_(size) 01329 #define _Inout_z_bytecap_x_(size) 01330 #define _Inout_z_bytecount_(size) 01331 #define _Inout_z_bytecount_c_(size) 01332 #define _Inout_z_cap_(size) 01333 #define _Inout_z_cap_c_(size) 01334 #define _Inout_z_cap_x_(size) 01335 #define _Inout_z_count_(size) 01336 #define _Inout_z_count_c_(size) 01337 #define _Interlocked_operand_ 01338 #define _Literal_ 01339 #define _Maybenull_ 01340 #define _Maybevalid_ 01341 #define _Maybe_raises_SEH_exception 01342 #define _Must_inspect_result_ 01343 #define _Notliteral_ 01344 #define _Notnull_ 01345 #define _Notref_ 01346 #define _Notvalid_ 01347 #define _Null_ 01348 #define _Null_terminated_ 01349 #define _NullNull_terminated_ 01350 #define _On_failure_(annos) 01351 #define _Out_ 01352 #define _Out_bound_ 01353 #define _Out_bytecap_(size) 01354 #define _Out_bytecap_c_(size) 01355 #define _Out_bytecap_post_bytecount_(cap,count) 01356 #define _Out_bytecap_x_(size) 01357 #define _Out_bytecapcount_(capcount) 01358 #define _Out_bytecapcount_x_(capcount) 01359 #define _Out_cap_(size) 01360 #define _Out_cap_c_(size) 01361 #define _Out_cap_m_(mult,size) 01362 #define _Out_cap_post_count_(cap,count) 01363 #define _Out_cap_x_(size) 01364 #define _Out_capcount_(capcount) 01365 #define _Out_capcount_x_(capcount) 01366 #define _Out_defensive_(annotes) 01367 #define _Out_opt_ 01368 #define _Out_opt_bytecap_(size) 01369 #define _Out_opt_bytecap_c_(size) 01370 #define _Out_opt_bytecap_post_bytecount_(cap,count) 01371 #define _Out_opt_bytecap_x_(size) 01372 #define _Out_opt_bytecapcount_(capcount) 01373 #define _Out_opt_bytecapcount_x_(capcount) 01374 #define _Out_opt_cap_(size) 01375 #define _Out_opt_cap_c_(size) 01376 #define _Out_opt_cap_m_(mult,size) 01377 #define _Out_opt_cap_post_count_(cap,count) 01378 #define _Out_opt_cap_x_(size) 01379 #define _Out_opt_capcount_(capcount) 01380 #define _Out_opt_capcount_x_(capcount) 01381 #define _Out_opt_ptrdiff_cap_(size) 01382 #define _Out_opt_z_bytecap_(size) 01383 #define _Out_opt_z_bytecap_c_(size) 01384 #define _Out_opt_z_bytecap_post_bytecount_(cap,count) 01385 #define _Out_opt_z_bytecap_x_(size) 01386 #define _Out_opt_z_bytecapcount_(capcount) 01387 #define _Out_opt_z_cap_(size) 01388 #define _Out_opt_z_cap_c_(size) 01389 #define _Out_opt_z_cap_m_(mult,size) 01390 #define _Out_opt_z_cap_post_count_(cap,count) 01391 #define _Out_opt_z_cap_x_(size) 01392 #define _Out_opt_z_capcount_(capcount) 01393 #define _Out_ptrdiff_cap_(size) 01394 #define _Out_range_(lb,ub) 01395 #define _Out_writes_(size) 01396 #define _Out_writes_all_(size) 01397 #define _Out_writes_all_opt_(size) 01398 #define _Out_writes_bytes_(size) 01399 #define _Out_writes_bytes_all_(size) 01400 #define _Out_writes_bytes_all_opt_(size) 01401 #define _Out_writes_bytes_opt_(size) 01402 #define _Out_writes_bytes_to_(size,count) 01403 #define _Out_writes_bytes_to_opt_(size,count) 01404 #define _Out_writes_opt_(size) 01405 #define _Out_writes_opt_z_(size) 01406 #define _Out_writes_to_(size,count) 01407 #define _Out_writes_to_opt_(size,count) 01408 #define _Out_writes_to_ptr_(ptr) 01409 #define _Out_writes_to_ptr_opt_(ptr) 01410 #define _Out_writes_to_ptr_opt_z_(ptr) 01411 #define _Out_writes_to_ptr_z_(ptr) 01412 #define _Out_writes_z_(size) 01413 #define _Out_z_bytecap_(size) 01414 #define _Out_z_bytecap_c_(size) 01415 #define _Out_z_bytecap_post_bytecount_(cap,count) 01416 #define _Out_z_bytecap_x_(size) 01417 #define _Out_z_bytecapcount_(capcount) 01418 #define _Out_z_cap_(size) 01419 #define _Out_z_cap_c_(size) 01420 #define _Out_z_cap_m_(mult,size) 01421 #define _Out_z_cap_post_count_(cap,count) 01422 #define _Out_z_cap_x_(size) 01423 #define _Out_z_capcount_(capcount) 01424 #define _Outptr_ 01425 #define _Outptr_opt_ 01426 #define _Outptr_opt_result_buffer_(size) 01427 #define _Outptr_opt_result_buffer_all_(size) 01428 #define _Outptr_opt_result_buffer_all_maybenull_(size) 01429 #define _Outptr_opt_result_buffer_maybenull_(size) 01430 #define _Outptr_opt_result_buffer_to_(size, count) 01431 #define _Outptr_opt_result_buffer_to_maybenull_(size, count) 01432 #define _Outptr_opt_result_bytebuffer_(size) 01433 #define _Outptr_opt_result_bytebuffer_all_(size) 01434 #define _Outptr_opt_result_bytebuffer_all_maybenull_(size) 01435 #define _Outptr_opt_result_bytebuffer_maybenull_(size) 01436 #define _Outptr_opt_result_bytebuffer_to_(size, count) 01437 #define _Outptr_opt_result_bytebuffer_to_maybenull_(size, count) 01438 #define _Outptr_opt_result_maybenull_ 01439 #define _Outptr_opt_result_maybenull_z_ 01440 #define _Outptr_opt_result_nullonfailure_ 01441 #define _Outptr_opt_result_z_ 01442 #define _Outptr_result_buffer_(size) 01443 #define _Outptr_result_buffer_all_(size) 01444 #define _Outptr_result_buffer_all_maybenull_(size) 01445 #define _Outptr_result_buffer_maybenull_(size) 01446 #define _Outptr_result_buffer_to_(size, count) 01447 #define _Outptr_result_buffer_to_maybenull_(size, count) 01448 #define _Outptr_result_bytebuffer_(size) 01449 #define _Outptr_result_bytebuffer_all_(size) 01450 #define _Outptr_result_bytebuffer_all_maybenull_(size) 01451 #define _Outptr_result_bytebuffer_maybenull_(size) 01452 #define _Outptr_result_bytebuffer_to_(size, count) 01453 #define _Outptr_result_bytebuffer_to_maybenull_(size, count) 01454 #define _Outptr_result_maybenull_ 01455 #define _Outptr_result_maybenull_z_ 01456 #define _Outptr_result_nullonfailure_ 01457 #define _Outptr_result_z_ 01458 #define _Outref_ 01459 #define _Outref_result_buffer_(size) 01460 #define _Outref_result_buffer_all_(size) 01461 #define _Outref_result_buffer_all_maybenull_(size) 01462 #define _Outref_result_buffer_maybenull_(size) 01463 #define _Outref_result_buffer_to_(size, count) 01464 #define _Outref_result_buffer_to_maybenull_(size, count) 01465 #define _Outref_result_bytebuffer_(size) 01466 #define _Outref_result_bytebuffer_all_(size) 01467 #define _Outref_result_bytebuffer_all_maybenull_(size) 01468 #define _Outref_result_bytebuffer_maybenull_(size) 01469 #define _Outref_result_bytebuffer_to_(size, count) 01470 #define _Outref_result_bytebuffer_to_maybenull_(size, count) 01471 #define _Outref_result_maybenull_ 01472 #define _Outref_result_nullonfailure_ 01473 #define _Points_to_data_ 01474 #define _Post_ 01475 #define _Post_bytecap_(size) 01476 #define _Post_bytecount_(size) 01477 #define _Post_bytecount_c_(size) 01478 #define _Post_bytecount_x_(size) 01479 #define _Post_cap_(size) 01480 #define _Post_count_(size) 01481 #define _Post_count_c_(size) 01482 #define _Post_count_x_(size) 01483 #define _Post_defensive_ 01484 #define _Post_equal_to_(expr) 01485 #define _Post_invalid_ 01486 #define _Post_maybenull_ 01487 #define _Post_maybez_ 01488 #define _Post_notnull_ 01489 #define _Post_null_ 01490 #define _Post_ptr_invalid_ 01491 #define _Post_readable_byte_size_(size) 01492 #define _Post_readable_size_(size) 01493 #define _Post_satisfies_(cond) 01494 #define _Post_valid_ 01495 #define _Post_writable_byte_size_(size) 01496 #define _Post_writable_size_(size) 01497 #define _Post_z_ 01498 #define _Post_z_bytecount_(size) 01499 #define _Post_z_bytecount_c_(size) 01500 #define _Post_z_bytecount_x_(size) 01501 #define _Post_z_count_(size) 01502 #define _Post_z_count_c_(size) 01503 #define _Post_z_count_x_(size) 01504 #define _Pre_ 01505 #define _Pre_bytecap_(size) 01506 #define _Pre_bytecap_c_(size) 01507 #define _Pre_bytecap_x_(size) 01508 #define _Pre_bytecount_(size) 01509 #define _Pre_bytecount_c_(size) 01510 #define _Pre_bytecount_x_(size) 01511 #define _Pre_cap_(size) 01512 #define _Pre_cap_c_(size) 01513 #define _Pre_cap_c_one_ 01514 #define _Pre_cap_for_(param) 01515 #define _Pre_cap_m_(mult,size) 01516 #define _Pre_cap_x_(size) 01517 #define _Pre_count_(size) 01518 #define _Pre_count_c_(size) 01519 #define _Pre_count_x_(size) 01520 #define _Pre_defensive_ 01521 #define _Pre_equal_to_(expr) 01522 #define _Pre_invalid_ 01523 #define _Pre_maybenull_ 01524 #define _Pre_notnull_ 01525 #define _Pre_null_ 01526 #define _Pre_opt_bytecap_(size) 01527 #define _Pre_opt_bytecap_c_(size) 01528 #define _Pre_opt_bytecap_x_(size) 01529 #define _Pre_opt_bytecount_(size) 01530 #define _Pre_opt_bytecount_c_(size) 01531 #define _Pre_opt_bytecount_x_(size) 01532 #define _Pre_opt_cap_(size) 01533 #define _Pre_opt_cap_c_(size) 01534 #define _Pre_opt_cap_c_one_ 01535 #define _Pre_opt_cap_for_(param) 01536 #define _Pre_opt_cap_m_(mult,size) 01537 #define _Pre_opt_cap_x_(size) 01538 #define _Pre_opt_count_(size) 01539 #define _Pre_opt_count_c_(size) 01540 #define _Pre_opt_count_x_(size) 01541 #define _Pre_opt_ptrdiff_cap_(ptr) 01542 #define _Pre_opt_ptrdiff_count_(ptr) 01543 #define _Pre_opt_valid_ 01544 #define _Pre_opt_valid_bytecap_(size) 01545 #define _Pre_opt_valid_bytecap_c_(size) 01546 #define _Pre_opt_valid_bytecap_x_(size) 01547 #define _Pre_opt_valid_cap_(size) 01548 #define _Pre_opt_valid_cap_c_(size) 01549 #define _Pre_opt_valid_cap_x_(size) 01550 #define _Pre_opt_z_ 01551 #define _Pre_opt_z_bytecap_(size) 01552 #define _Pre_opt_z_bytecap_c_(size) 01553 #define _Pre_opt_z_bytecap_x_(size) 01554 #define _Pre_opt_z_cap_(size) 01555 #define _Pre_opt_z_cap_c_(size) 01556 #define _Pre_opt_z_cap_x_(size) 01557 #define _Pre_ptrdiff_cap_(ptr) 01558 #define _Pre_ptrdiff_count_(ptr) 01559 #define _Pre_readable_byte_size_(size) 01560 #define _Pre_readable_size_(size) 01561 #define _Pre_readonly_ 01562 #define _Pre_satisfies_(cond) 01563 #define _Pre_valid_ 01564 #define _Pre_valid_bytecap_(size) 01565 #define _Pre_valid_bytecap_c_(size) 01566 #define _Pre_valid_bytecap_x_(size) 01567 #define _Pre_valid_cap_(size) 01568 #define _Pre_valid_cap_c_(size) 01569 #define _Pre_valid_cap_x_(size) 01570 #define _Pre_writable_byte_size_(size) 01571 #define _Pre_writable_size_(size) 01572 #define _Pre_writeonly_ 01573 #define _Pre_z_ 01574 #define _Pre_z_bytecap_(size) 01575 #define _Pre_z_bytecap_c_(size) 01576 #define _Pre_z_bytecap_x_(size) 01577 #define _Pre_z_cap_(size) 01578 #define _Pre_z_cap_c_(size) 01579 #define _Pre_z_cap_x_(size) 01580 #define _Prepost_bytecount_(size) 01581 #define _Prepost_bytecount_c_(size) 01582 #define _Prepost_bytecount_x_(size) 01583 #define _Prepost_count_(size) 01584 #define _Prepost_count_c_(size) 01585 #define _Prepost_count_x_(size) 01586 #define _Prepost_opt_bytecount_(size) 01587 #define _Prepost_opt_bytecount_c_(size) 01588 #define _Prepost_opt_bytecount_x_(size) 01589 #define _Prepost_opt_count_(size) 01590 #define _Prepost_opt_count_c_(size) 01591 #define _Prepost_opt_count_x_(size) 01592 #define _Prepost_opt_valid_ 01593 #define _Prepost_opt_z_ 01594 #define _Prepost_valid_ 01595 #define _Prepost_z_ 01596 #define _Printf_format_string_ 01597 #define _Raises_SEH_exception_ 01598 #define _Maybe_raises_SEH_exception_ 01599 #define _Readable_bytes_(size) 01600 #define _Readable_elements_(size) 01601 #define _Reserved_ 01602 #define _Result_nullonfailure_ 01603 #define _Result_zeroonfailure_ 01604 #define __inner_callback 01605 #define _Ret_ 01606 #define _Ret_bound_ 01607 #define _Ret_bytecap_(size) 01608 #define _Ret_bytecap_c_(size) 01609 #define _Ret_bytecap_x_(size) 01610 #define _Ret_bytecount_(size) 01611 #define _Ret_bytecount_c_(size) 01612 #define _Ret_bytecount_x_(size) 01613 #define _Ret_cap_(size) 01614 #define _Ret_cap_c_(size) 01615 #define _Ret_cap_x_(size) 01616 #define _Ret_count_(size) 01617 #define _Ret_count_c_(size) 01618 #define _Ret_count_x_(size) 01619 #define _Ret_maybenull_ 01620 #define _Ret_maybenull_z_ 01621 #define _Ret_notnull_ 01622 #define _Ret_null_ 01623 #define _Ret_opt_ 01624 #define _Ret_opt_bytecap_(size) 01625 #define _Ret_opt_bytecap_c_(size) 01626 #define _Ret_opt_bytecap_x_(size) 01627 #define _Ret_opt_bytecount_(size) 01628 #define _Ret_opt_bytecount_c_(size) 01629 #define _Ret_opt_bytecount_x_(size) 01630 #define _Ret_opt_cap_(size) 01631 #define _Ret_opt_cap_c_(size) 01632 #define _Ret_opt_cap_x_(size) 01633 #define _Ret_opt_count_(size) 01634 #define _Ret_opt_count_c_(size) 01635 #define _Ret_opt_count_x_(size) 01636 #define _Ret_opt_valid_ 01637 #define _Ret_opt_z_ 01638 #define _Ret_opt_z_bytecap_(size) 01639 #define _Ret_opt_z_bytecount_(size) 01640 #define _Ret_opt_z_cap_(size) 01641 #define _Ret_opt_z_count_(size) 01642 #define _Ret_range_(lb,ub) 01643 #define _Ret_valid_ 01644 #define _Ret_writes_(size) 01645 #define _Ret_writes_bytes_(size) 01646 #define _Ret_writes_bytes_maybenull_(size) 01647 #define _Ret_writes_bytes_to_(size,count) 01648 #define _Ret_writes_bytes_to_maybenull_(size,count) 01649 #define _Ret_writes_maybenull_(size) 01650 #define _Ret_writes_maybenull_z_(size) 01651 #define _Ret_writes_to_(size,count) 01652 #define _Ret_writes_to_maybenull_(size,count) 01653 #define _Ret_writes_z_(size) 01654 #define _Ret_z_ 01655 #define _Ret_z_bytecap_(size) 01656 #define _Ret_z_bytecount_(size) 01657 #define _Ret_z_cap_(size) 01658 #define _Ret_z_count_(size) 01659 #define _Return_type_success_(expr) 01660 #define _Scanf_format_string_ 01661 #define _Scanf_s_format_string_ 01662 #define _Struct_size_bytes_(size) 01663 #define _Success_(expr) 01664 #define _Unchanged_(e) 01665 #define _Use_decl_annotations_ 01666 #define _Valid_ 01667 #define _When_(expr, annos) 01668 #define _Writable_bytes_(size) 01669 #define _Writable_elements_(size) 01670 01671 #endif /* _USE_ATTRIBUTES_FOR_SAL || _USE_DECLSPECS_FOR_SAL */ 01672 Generated on Sat May 19 2012 04:30:12 for ReactOS by
1.7.6.1
|