Author: tkreuzer Date: Tue Jan 22 22:51:51 2013 New Revision: 58204
URL: http://svn.reactos.org/svn/reactos?rev=58204&view=rev Log: [INCLUDE] - Remove duplicate dllimport attributes CORE-6917 #resolve - Add annotations for wcslen - Add kernelspecs.h (complete) - Add some more entries in driverspecs.h - Fix a number of annotations
Added: trunk/reactos/include/ddk/kernelspecs.h (with props) Modified: trunk/reactos/include/crt/string.h trunk/reactos/include/ddk/ntifs.h trunk/reactos/include/ddk/wdm.h trunk/reactos/include/ndk/cmfuncs.h trunk/reactos/include/ndk/exfuncs.h trunk/reactos/include/ndk/iofuncs.h trunk/reactos/include/ndk/kefuncs.h trunk/reactos/include/ndk/ldrfuncs.h trunk/reactos/include/ndk/mmfuncs.h trunk/reactos/include/ndk/psfuncs.h trunk/reactos/include/ndk/rtlfuncs.h trunk/reactos/include/psdk/driverspecs.h trunk/reactos/include/psdk/sal.h trunk/reactos/include/xdk/rtlfuncs.h trunk/reactos/include/xdk/wdm.template.h trunk/reactos/include/xdk/zwfuncs.h
Modified: trunk/reactos/include/crt/string.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/crt/string.h?rev=58... ============================================================================== --- trunk/reactos/include/crt/string.h [iso-8859-1] (original) +++ trunk/reactos/include/crt/string.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -118,7 +118,14 @@ _CRTIMP _CRT_INSECURE_DEPRECATE(wcscpy_s) wchar_t *__cdecl wcscpy(wchar_t *_Dest,const wchar_t *_Source); _CRTIMP size_t __cdecl wcscspn(const wchar_t *_Str,const wchar_t *_Control); _CRTIMP wchar_t *wcsncat(wchar_t *_Dest,const wchar_t *_Source,size_t _Count); - _CRTIMP size_t __cdecl wcslen(const wchar_t *_Str); + +_Ret_range_(==,_String_length_(_Str)) +_CRTIMP +size_t +__cdecl +wcslen( + _In_z_ const wchar_t *_Str); + _CRTIMP _CRT_INSECURE_DEPRECATE(wcsnlen_s) size_t __cdecl wcsnlen(const wchar_t *_Src,size_t _MaxCount); _CRTIMP int __cdecl wcsncmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount); _CRTIMP _CRT_INSECURE_DEPRECATE(wcsncpy_s) wchar_t *wcsncpy(wchar_t *_Dest,const wchar_t *_Source,size_t _Count);
Added: trunk/reactos/include/ddk/kernelspecs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/kernelspecs.h?r... ============================================================================== --- trunk/reactos/include/ddk/kernelspecs.h (added) +++ trunk/reactos/include/ddk/kernelspecs.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -1,0 +1,109 @@ +/* + * kernelspecs.h + * + * SAL 2 annotations for kernel mode drivers + * + * This file is part of the ReactOS DDK package. + * + * Contributor: + * Timo Kreuzer (timo.kreuzer@reactos.org) + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ +#pragma once + +#define KERNELSPECS_H + +#include "driverspecs.h" + +#ifdef _PREFAST_ + +#undef _IRQL_always_function_max_ +#undef _IRQL_always_function_min_ +#undef _IRQL_raises_ +#undef _IRQL_requires_ +#undef _IRQL_requires_max_ +#undef _IRQL_requires_min_ +#undef _IRQL_requires_same_ +#undef _IRQL_restores_ +#undef _IRQL_restores_global_ +#undef _IRQL_saves_ +#undef _IRQL_saves_global_ +#undef _IRQL_uses_cancel_ +#undef _IRQL_is_cancel_ +#undef __drv_setsIRQL +#undef __drv_raisesIRQL +#undef __drv_requiresIRQL +#undef __drv_maxIRQL +#undef __drv_minIRQL +#undef __drv_savesIRQL +#undef __drv_savesIRQLGlobal +#undef __drv_restoresIRQL +#undef __drv_restoresIRQLGlobal +#undef __drv_minFunctionIRQL +#undef __drv_maxFunctionIRQL +#undef __drv_sameIRQL +#undef __drv_useCancelIRQL +#undef __drv_isCancelIRQL + +#define _IRQL_always_function_max_(irql) _Pre_ _SA_annotes1(SAL_maxFunctionIrql,irql) +#define _IRQL_always_function_min_(irql) _Pre_ _SA_annotes1(SAL_minFunctionIrql,irql) +#define _IRQL_raises_(irql) _Post_ _SA_annotes1(SAL_raiseIRQL,irql) +#define _IRQL_requires_(irql) _Pre_ _SA_annotes1(SAL_IRQL,irql) +#define _IRQL_requires_max_(irql) _Pre_ _SA_annotes1(SAL_maxIRQL,irql) +#define _IRQL_requires_min_(irql) _Pre_ _SA_annotes1(SAL_minIRQL,irql) +#define _IRQL_requires_same_ _Post_ _SA_annotes0(SAL_sameIRQL) +#define _IRQL_restores_ _Post_ _SA_annotes0(SAL_restoreIRQL) +#define _IRQL_restores_global_(kind,param) _Post_ _SA_annotes2(SAL_restoreIRQLGlobal, #kind, param\t) +#define _IRQL_saves_ _Post_ _SA_annotes0(SAL_saveIRQL) +#define _IRQL_saves_global_(kind,param) _Post_ _SA_annotes2(SAL_saveIRQLGlobal,#kind, param\t) +#define _IRQL_uses_cancel_ _Post_ _SA_annotes0(SAL_UseCancelIrql) +#define _IRQL_is_cancel_ _IRQL_uses_cancel_ _Releases_nonreentrant_lock_(_Global_cancel_spin_lock_) \ + _At_(return, _IRQL_always_function_min_(2 /*DISPATCH_LEVEL*/) _IRQL_requires_(2 /*DISPATCH_LEVEL*/)) +#define __drv_setsIRQL(irql) _Post_ _SA_annotes1(SAL_IRQL,irql) +#define __drv_raisesIRQL _IRQL_raises_ +#define __drv_requiresIRQL _IRQL_requires_ +#define __drv_maxIRQL _IRQL_requires_max_ +#define __drv_minIRQL _IRQL_requires_min_ +#define __drv_savesIRQL _IRQL_saves_ +#define __drv_savesIRQLGlobal _IRQL_saves_global_ +#define __drv_restoresIRQL _IRQL_restores_ +#define __drv_restoresIRQLGlobal _IRQL_restores_global_ +#define __drv_minFunctionIRQL _IRQL_always_function_min_ +#define __drv_maxFunctionIRQL _IRQL_always_function_max_ +#define __drv_sameIRQL _IRQL_requires_same_ +#define __drv_useCancelIRQL _IRQL_uses_cancel_ +#define __drv_isCancelIRQL _IRQL_is_cancel_ + +#ifdef __cplusplus +extern "C" { +#endif + +__ANNOTATION(SAL_IRQL(__int64);) +__ANNOTATION(SAL_raiseIRQL(__int64);) +__ANNOTATION(SAL_IRQL(__int64);) +__ANNOTATION(SAL_maxIRQL(__int64);) +__ANNOTATION(SAL_minIRQL(__int64);) +__ANNOTATION(SAL_saveIRQL(void);) +__ANNOTATION(SAL_saveIRQLGlobal(_In_ char *, ...);) +__ANNOTATION(SAL_restoreIRQL(void);) +__ANNOTATION(SAL_restoreIRQLGlobal(_In_ char *, ...);) +__ANNOTATION(SAL_minFunctionIrql(__int64);) +__ANNOTATION(SAL_maxFunctionIrql(__int64);) +__ANNOTATION(SAL_sameIRQL(void);) +__ANNOTATION(SAL_UseCancelIrql(void);) + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif /* _PREFAST_ */
Propchange: trunk/reactos/include/ddk/kernelspecs.h ------------------------------------------------------------------------------ svn:eol-style = native
Modified: trunk/reactos/include/ddk/ntifs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/ntifs.h?rev=582... ============================================================================== --- trunk/reactos/include/ddk/ntifs.h [iso-8859-1] (original) +++ trunk/reactos/include/ddk/ntifs.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -1344,12 +1344,13 @@ _Out_ PLARGE_INTEGER Time);
_Success_(return != 0) +_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlTimeToSecondsSince1970( - _In_ PLARGE_INTEGER Time, - _Out_ PULONG ElapsedSeconds); + _In_ PLARGE_INTEGER Time, + _Out_ PULONG ElapsedSeconds);
NTSYSAPI VOID @@ -9165,7 +9166,7 @@
_Must_inspect_result_ _At_(*BaseAddress, __drv_allocatesMem(Mem)) -__kernel_entry NTSYSCALLAPI +__kernel_entry NTSYSAPI NTSTATUS NTAPI
Modified: trunk/reactos/include/ddk/wdm.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/wdm.h?rev=58204... ============================================================================== --- trunk/reactos/include/ddk/wdm.h [iso-8859-1] (original) +++ trunk/reactos/include/ddk/wdm.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -41,6 +41,7 @@ #include <excpt.h> #include <ntdef.h> #include <ntstatus.h> +#include <kernelspecs.h> #include <ntiologc.h>
#ifndef GUID_DEFINED @@ -8742,14 +8743,18 @@
_IRQL_requires_max_(DISPATCH_LEVEL) _At_(DestinationString->Buffer, _Post_equal_to_(SourceString)) +_When_(SourceString != NULL, _At_(DestinationString->Length, _Post_equal_to_(_String_length_(SourceString) * sizeof(WCHAR))) -_At_(DestinationString->MaximumLength, _Post_equal_to_((_String_length_(SourceString)+1) * sizeof(WCHAR))) +_At_(DestinationString->MaximumLength, _Post_equal_to_(DestinationString->Length + sizeof(WCHAR)))) +_When_(SourceString == NULL, +_At_(DestinationString->Length, _Post_equal_to_(0)) +_At_(DestinationString->MaximumLength, _Post_equal_to_(0))) NTSYSAPI VOID NTAPI RtlInitUnicodeString( - _Out_ PUNICODE_STRING DestinationString, - _In_opt_z_ __drv_aliasesMem PCWSTR SourceString); + _Out_ PUNICODE_STRING DestinationString, + _In_opt_z_ __drv_aliasesMem PCWSTR SourceString);
/* VOID * RtlMoveMemory( @@ -9328,13 +9333,14 @@ #define RtlStoreUlongPtr(Address,Value) RtlStoreUlong(Address,Value) #endif /* _WIN64 */
-_Success_(return != 0) +_Success_(return!=FALSE) +_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlTimeFieldsToTime( - _In_ PTIME_FIELDS TimeFields, - _Out_ PLARGE_INTEGER Time); + _In_ PTIME_FIELDS TimeFields, + _Out_ PLARGE_INTEGER Time);
NTSYSAPI VOID @@ -16669,17 +16675,18 @@ NTSTATUS NTAPI ZwCreateFile( - _Out_ PHANDLE FileHandle, - _In_ ACCESS_MASK DesiredAccess, - _In_ POBJECT_ATTRIBUTES ObjectAttributes, - _Out_ PIO_STATUS_BLOCK IoStatusBlock, - _In_opt_ PLARGE_INTEGER AllocationSize, - _In_ ULONG FileAttributes, - _In_ ULONG ShareAccess, - _In_ ULONG CreateDisposition, - _In_ ULONG CreateOptions, - _In_reads_bytes_opt_(EaLength) PVOID EaBuffer, - _In_ ULONG EaLength); + _Out_ PHANDLE FileHandle, + _In_ ACCESS_MASK DesiredAccess, + _In_ POBJECT_ATTRIBUTES ObjectAttributes, + _Out_ PIO_STATUS_BLOCK IoStatusBlock, + _In_opt_ PLARGE_INTEGER AllocationSize, + _In_ ULONG FileAttributes, + _In_ ULONG ShareAccess, + _In_ ULONG CreateDisposition, + _In_ ULONG CreateOptions, + _In_reads_bytes_opt_(EaLength) PVOID EaBuffer, + _In_ ULONG EaLength +);
_IRQL_requires_max_(PASSIVE_LEVEL) NTSYSAPI @@ -17310,8 +17317,8 @@ NTSTATUS NTAPI ZwRollbackComplete( - IN HANDLE EnlistmentHandle, - IN PLARGE_INTEGER TmVirtualClock OPTIONAL); + _In_ HANDLE EnlistmentHandle, + _In_opt_ PLARGE_INTEGER TmVirtualClock);
NTSYSCALLAPI NTSTATUS @@ -17347,29 +17354,29 @@ NTSTATUS NTAPI ZwNotifyChangeMultipleKeys( - IN HANDLE MasterKeyHandle, - IN ULONG Count OPTIONAL, - IN OBJECT_ATTRIBUTES SubordinateObjects[] OPTIONAL, - IN HANDLE Event OPTIONAL, - IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, - IN PVOID ApcContext OPTIONAL, - OUT PIO_STATUS_BLOCK IoStatusBlock, - IN ULONG CompletionFilter, - IN BOOLEAN WatchTree, - OUT PVOID Buffer OPTIONAL, - IN ULONG BufferSize, - IN BOOLEAN Asynchronous); + _In_ HANDLE MasterKeyHandle, + _In_opt_ ULONG Count, + _In_opt_ OBJECT_ATTRIBUTES SubordinateObjects[], + _In_opt_ HANDLE Event, + _In_opt_ PIO_APC_ROUTINE ApcRoutine, + _In_opt_ PVOID ApcContext, + _Out_ PIO_STATUS_BLOCK IoStatusBlock, + _In_ ULONG CompletionFilter, + _In_ BOOLEAN WatchTree, + _Out_opt_ PVOID Buffer, + _In_ ULONG BufferSize, + _In_ BOOLEAN Asynchronous);
NTSYSAPI NTSTATUS NTAPI ZwQueryMultipleValueKey( - IN HANDLE KeyHandle, - IN OUT PKEY_VALUE_ENTRY ValueEntries, - IN ULONG EntryCount, - OUT PVOID ValueBuffer, - IN OUT PULONG BufferLength, - OUT PULONG RequiredBufferLength OPTIONAL); + _In_ HANDLE KeyHandle, + _Inout_ PKEY_VALUE_ENTRY ValueEntries, + _In_ ULONG EntryCount, + _Out_ PVOID ValueBuffer, + _Inout_ PULONG BufferLength, + _Out_opt_ PULONG RequiredBufferLength);
_IRQL_requires_max_(PASSIVE_LEVEL) NTSYSAPI
Modified: trunk/reactos/include/ndk/cmfuncs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/cmfuncs.h?rev=5... ============================================================================== --- trunk/reactos/include/ndk/cmfuncs.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/cmfuncs.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -41,17 +41,18 @@ _In_ HANDLE Key );
-NTSYSCALLAPI +_IRQL_requires_max_(PASSIVE_LEVEL) +NTSYSAPI NTSTATUS NTAPI NtCreateKey( _Out_ PHANDLE KeyHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, - _In_ ULONG TitleIndex, + _Reserved_ ULONG TitleIndex, _In_opt_ PUNICODE_STRING Class, _In_ ULONG CreateOptions, - _In_opt_ PULONG Disposition + _Out_opt_ PULONG Disposition );
NTSYSCALLAPI @@ -81,14 +82,17 @@ _Out_ PULONG ResultLength );
-NTSYSCALLAPI +_IRQL_requires_max_(PASSIVE_LEVEL) +_When_(Length == 0, _Post_satisfies_(return < 0)) +_When_(Length > 0, _Post_satisfies_(return <= 0)) +NTSYSAPI NTSTATUS NTAPI NtEnumerateValueKey( _In_ HANDLE KeyHandle, _In_ ULONG Index, _In_ KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, - _Out_bytecap_(Length) PVOID KeyValueInformation, + _Out_writes_bytes_opt_(Length) PVOID KeyValueInformation, _In_ ULONG Length, _Out_ PULONG ResultLength ); @@ -246,14 +250,17 @@ _In_ PULONG RequiredSize );
-NTSYSCALLAPI +_IRQL_requires_max_(PASSIVE_LEVEL) +_When_(Length == 0, _Post_satisfies_(return < 0)) +_When_(Length > 0, _Post_satisfies_(return <= 0)) +NTSYSAPI NTSTATUS NTAPI NtQueryValueKey( _In_ HANDLE KeyHandle, _In_ PUNICODE_STRING ValueName, _In_ KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, - _Out_bytecap_(Length) PVOID KeyValueInformation, + _Out_writes_bytes_opt_(Length) PVOID KeyValueInformation, _In_ ULONG Length, _Out_ PULONG ResultLength ); @@ -354,6 +361,7 @@ );
#ifdef NTOS_MODE_USER +_IRQL_requires_max_(PASSIVE_LEVEL) NTSYSAPI NTSTATUS NTAPI @@ -361,10 +369,10 @@ _Out_ PHANDLE KeyHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, - _In_ ULONG TitleIndex, + _Reserved_ ULONG TitleIndex, _In_opt_ PUNICODE_STRING Class, _In_ ULONG CreateOptions, - _In_opt_ PULONG Disposition + _Out_opt_ PULONG Disposition );
NTSYSAPI @@ -394,6 +402,9 @@ _Out_ PULONG ResultLength );
+_IRQL_requires_max_(PASSIVE_LEVEL) +_When_(Length == 0, _Post_satisfies_(return < 0)) +_When_(Length > 0, _Post_satisfies_(return <= 0)) NTSYSAPI NTSTATUS NTAPI @@ -401,7 +412,7 @@ _In_ HANDLE KeyHandle, _In_ ULONG Index, _In_ KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, - _Out_bytecap_(Length) PVOID KeyValueInformation, + _Out_writes_bytes_opt_(Length) PVOID KeyValueInformation, _In_ ULONG Length, _Out_ PULONG ResultLength ); @@ -497,6 +508,9 @@ _Out_ PULONG ReturnLength );
+_IRQL_requires_max_(PASSIVE_LEVEL) +_When_(Length == 0, _Post_satisfies_(return < 0)) +_When_(Length > 0, _Post_satisfies_(return <= 0)) NTSYSAPI NTSTATUS NTAPI @@ -504,7 +518,7 @@ _In_ HANDLE KeyHandle, _In_ PUNICODE_STRING ValueName, _In_ KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, - _Out_bytecap_(Length) PVOID KeyValueInformation, + _Out_writes_bytes_opt_(Length) PVOID KeyValueInformation, _In_ ULONG Length, _Out_ PULONG ResultLength );
Modified: trunk/reactos/include/ndk/exfuncs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/exfuncs.h?rev=5... ============================================================================== --- trunk/reactos/include/ndk/exfuncs.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/exfuncs.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -459,7 +459,7 @@ NtReleaseSemaphore( _In_ HANDLE SemaphoreHandle, _In_ LONG ReleaseCount, - _Out_ PLONG PreviousCount + _Out_opt_ PLONG PreviousCount );
NTSYSCALLAPI @@ -903,7 +903,7 @@ ZwReleaseSemaphore( _In_ HANDLE SemaphoreHandle, _In_ LONG ReleaseCount, - _Out_ PLONG PreviousCount + _Out_opt_ PLONG PreviousCount );
NTSYSAPI
Modified: trunk/reactos/include/ndk/iofuncs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/iofuncs.h?rev=5... ============================================================================== --- trunk/reactos/include/ndk/iofuncs.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/iofuncs.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -113,7 +113,7 @@ NtCreateIoCompletion( _Out_ PHANDLE IoCompletionHandle, _In_ ACCESS_MASK DesiredAccess, - _In_ POBJECT_ATTRIBUTES ObjectAttributes, + _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ ULONG NumberOfConcurrentThreads );
@@ -653,7 +653,7 @@ ZwCreateIoCompletion( _Out_ PHANDLE IoCompletionHandle, _In_ ACCESS_MASK DesiredAccess, - _In_ POBJECT_ATTRIBUTES ObjectAttributes, + _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ ULONG NumberOfConcurrentThreads );
Modified: trunk/reactos/include/ndk/kefuncs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/kefuncs.h?rev=5... ============================================================================== --- trunk/reactos/include/ndk/kefuncs.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/kefuncs.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -437,9 +437,9 @@ NtQueueApcThread( _In_ HANDLE ThreadHandle, _In_ PKNORMAL_ROUTINE ApcRoutine, - _In_ PVOID NormalContext, - _In_ PVOID SystemArgument1, - _In_ PVOID SystemArgument2 + _In_opt_ PVOID NormalContext, + _In_opt_ PVOID SystemArgument1, + _In_opt_ PVOID SystemArgument2 );
NTSYSCALLAPI @@ -643,9 +643,9 @@ ZwQueueApcThread( _In_ HANDLE ThreadHandle, _In_ PKNORMAL_ROUTINE ApcRoutine, - _In_ PVOID NormalContext, - _In_ PVOID SystemArgument1, - _In_ PVOID SystemArgument2 + _In_opt_ PVOID NormalContext, + _In_opt_ PVOID SystemArgument1, + _In_opt_ PVOID SystemArgument2 );
NTSYSAPI
Modified: trunk/reactos/include/ndk/ldrfuncs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/ldrfuncs.h?rev=... ============================================================================== --- trunk/reactos/include/ndk/ldrfuncs.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/ldrfuncs.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -56,7 +56,7 @@ _In_ PLDR_RESOURCE_INFO ResourceInfo, _In_ ULONG Level, _Inout_ ULONG *ResourceCount, - _Out_opt_ PLDR_ENUM_RESOURCE_INFO Resources + _Out_writes_to_(*ResourceCount,*ResourceCount) LDR_ENUM_RESOURCE_INFO *Resources );
Modified: trunk/reactos/include/ndk/mmfuncs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/mmfuncs.h?rev=5... ============================================================================== --- trunk/reactos/include/ndk/mmfuncs.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/mmfuncs.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -319,7 +319,7 @@
_Must_inspect_result_ _At_(*BaseAddress, __drv_allocatesMem(Mem)) -__kernel_entry NTSYSCALLAPI +__kernel_entry NTSYSAPI NTSTATUS NTAPI
Modified: trunk/reactos/include/ndk/psfuncs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/psfuncs.h?rev=5... ============================================================================== --- trunk/reactos/include/ndk/psfuncs.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/psfuncs.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -284,7 +284,7 @@ NTAPI NtAlertResumeThread( _In_ HANDLE ThreadHandle, - _Out_ PULONG SuspendCount + _Out_opt_ PULONG SuspendCount );
typedef ULONG APPHELPCACHESERVICECLASS; @@ -488,7 +488,7 @@ _In_ THREADINFOCLASS ThreadInformationClass, _Out_ PVOID ThreadInformation, _In_ ULONG ThreadInformationLength, - _Out_ PULONG ReturnLength + _Out_opt_ PULONG ReturnLength );
NTSYSCALLAPI @@ -503,7 +503,7 @@ NTAPI NtResumeThread( _In_ HANDLE ThreadHandle, - _Out_ PULONG SuspendCount + _Out_opt_ PULONG SuspendCount );
NTSYSCALLAPI @@ -588,7 +588,7 @@ NTAPI ZwAlertResumeThread( _In_ HANDLE ThreadHandle, - _Out_ PULONG SuspendCount + _Out_opt_ PULONG SuspendCount );
NTSYSAPI @@ -734,7 +734,7 @@ _In_ THREADINFOCLASS ThreadInformationClass, _Out_ PVOID ThreadInformation, _In_ ULONG ThreadInformationLength, - _Out_ PULONG ReturnLength + _Out_opt_ PULONG ReturnLength );
NTSYSAPI @@ -749,7 +749,7 @@ NTAPI ZwResumeThread( _In_ HANDLE ThreadHandle, - _Out_ PULONG SuspendCount + _Out_opt_ PULONG SuspendCount );
NTSYSAPI
Modified: trunk/reactos/include/ndk/rtlfuncs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/rtlfuncs.h?rev=... ============================================================================== --- trunk/reactos/include/ndk/rtlfuncs.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/rtlfuncs.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -1667,7 +1667,7 @@ _In_ PLARGE_INTEGER Value, _In_ ULONG Base, _In_ ULONG Length, - _Inout_ PCHAR String + _Out_ PCHAR String );
NTSYSAPI @@ -2129,8 +2129,12 @@
_IRQL_requires_max_(DISPATCH_LEVEL) _At_(DestinationString->Buffer, _Post_equal_to_(SourceString)) +_When_(SourceString != NULL, _At_(DestinationString->Length, _Post_equal_to_(_String_length_(SourceString) * sizeof(WCHAR))) -_At_(DestinationString->MaximumLength, _Post_equal_to_((_String_length_(SourceString)+1) * sizeof(WCHAR))) +_At_(DestinationString->MaximumLength, _Post_equal_to_(DestinationString->Length + sizeof(WCHAR)))) +_When_(SourceString == NULL, +_At_(DestinationString->Length, _Post_equal_to_(0)) +_At_(DestinationString->MaximumLength, _Post_equal_to_(0))) NTSYSAPI VOID NTAPI @@ -2411,8 +2415,8 @@ _In_ SIZE_T StackCommit, _In_ PTHREAD_START_ROUTINE StartAddress, _In_ PVOID Parameter, - _Inout_ PHANDLE ThreadHandle, - _Inout_ PCLIENT_ID ClientId + _Out_opt_ PHANDLE ThreadHandle, + _Out_opt_ PCLIENT_ID ClientId ); #endif
@@ -2538,7 +2542,7 @@ NTAPI RtlDeregisterWaitEx( _In_ HANDLE hWaitHandle, - _In_ HANDLE hCompletionEvent + _In_opt_ HANDLE hCompletionEvent );
NTSYSAPI @@ -2682,7 +2686,7 @@ NTAPI RtlGetCurrentDirectory_U( _In_ ULONG MaximumLength, - _Out_z_bytecap_(MaximumLength) PWSTR Buffer + _Out_bytecap_(MaximumLength) PWSTR Buffer );
NTSYSAPI @@ -3176,7 +3180,7 @@ NTAPI RtlDeleteTimerQueueEx( _In_ HANDLE TimerQueue, - _In_ HANDLE CompletionEvent + _In_opt_ HANDLE CompletionEvent );
NTSYSAPI @@ -3645,7 +3649,8 @@ NTSTATUS NTAPI RtlFormatCurrentUserKeyPath( - _Inout_ PUNICODE_STRING KeyPath + _Out_ _At_(KeyPath->Buffer, __drv_allocatesMem(Mem) _Post_bytecap_(KeyPath->MaximumLength) _Post_bytecount_(KeyPath->Length)) + PUNICODE_STRING KeyPath );
NTSYSAPI @@ -3700,7 +3705,7 @@ NTAPI RtlpNtEnumerateSubKey( _In_ HANDLE KeyHandle, - _Out_ PUNICODE_STRING SubKeyName, + _Inout_ PUNICODE_STRING SubKeyName, _In_ ULONG Index, _In_ ULONG Unused ); @@ -3974,6 +3979,8 @@ RtlSetTimeZoneInformation( _In_ PRTL_TIME_ZONE_INFORMATION TimeZoneInformation);
+_Success_(return!=FALSE) +_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI @@ -3982,12 +3989,14 @@ _Out_ PLARGE_INTEGER Time );
+_Success_(return != 0) +_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlTimeToSecondsSince1970( - PLARGE_INTEGER Time, - _Out_ PULONG SecondsSince1970 + _In_ PLARGE_INTEGER Time, + _Out_ PULONG ElapsedSeconds );
NTSYSAPI
Modified: trunk/reactos/include/psdk/driverspecs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/driverspecs.h?... ============================================================================== --- trunk/reactos/include/psdk/driverspecs.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/driverspecs.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -17,12 +17,34 @@
#ifdef _PREFAST_
-// Stubs -#define ___drv_unit_internal_kernel_driver -#define ___drv_unit_kernel_code -#define ___drv_unit_kernel_driver -#define ___drv_unit_user_code -#define ___drv_unit_user_driver +/* IRQL annotations are only valid when included from kernelspecs.h */ +#define _IRQL_always_function_max_(irql) +#define _IRQL_always_function_min_(irql) +#define _IRQL_is_cancel_ +#define _IRQL_raises_(irql) +#define _IRQL_requires_(irql) +#define _IRQL_requires_max_(irql) +#define _IRQL_requires_max_defined +#define _IRQL_requires_min_(irql) +#define _IRQL_requires_same_ +#define _IRQL_restores_ +#define _IRQL_restores_global_(kind,param) +#define _IRQL_saves_ +#define _IRQL_saves_global_(kind,param) +#define _IRQL_uses_cancel_ +#define __drv_setsIRQL(irql) + +#define _Dispatch_type_ _Function_class_ +#define _Kernel_clear_do_init_(yesNo) _Post_ _SA_annotes1(SAL_clearDoInit,yesNo) +#define _Kernel_float_restored_ _Post_ _SA_annotes0(SAL_floatRestored) +#define _Kernel_float_saved_ _Post_ _SA_annotes0(SAL_floatSaved) +#define _Kernel_float_used_ _Post_ _SA_annotes0(SAL_floatUsed) +#define _Kernel_IoGetDmaAdapter_ _Post_ _SA_annotes0(SAL_IoGetDmaAdapter) +#define _Kernel_releases_resource_(kind) _Post_ _SA_annotes1(SAL_release, #kind) +#define _Kernel_requires_resource_held_(kind) _Pre_ _SA_annotes1(SAL_mustHold, #kind) +#define _Kernel_requires_resource_not_held_(kind) _Pre_ _SA_annotes1(SAL_neverHold, #kind) +#define _Kernel_acquires_resource_(kind) _Post_ _SA_annotes1(SAL_acquire, #kind) + #define __drv_acquiresCancelSpinLock #define __drv_acquiresCriticalRegion #define __drv_acquiresExclusiveResource(kind) @@ -30,11 +52,11 @@ #define __drv_acquiresPriorityRegion #define __drv_acquiresResource(kind) #define __drv_acquiresResourceGlobal(kind,param) -#define __drv_aliasesMem _Post_ _SA_annotes0(SAL_IsAliased) -#define __drv_allocatesMem(kind) _Post_ _SA_annotes1(SAL_NeedsRelease,__yes) -#define __drv_arg(expr,annotes) -#define __drv_at(expr,annotes) -#define __drv_callbackType(kind) +#define __drv_aliasesMem _Post_ _SA_annotes0(SAL_IsAliased) +#define __drv_allocatesMem(kind) _Post_ _SA_annotes1(SAL_NeedsRelease,__yes) +#define __drv_arg(expr,annotes) _At_(expr,annotes) +#define __drv_at(expr,annotes) _At_(expr,annotes) +#define __drv_callbackType(kind) _SA_annotes1(SAL_callbackType, #kind) #define __drv_clearDoInit #define __drv_completionType(kindlist) #define __drv_constant @@ -46,12 +68,12 @@ #define __drv_floatSaved #define __drv_floatUsed #define __drv_formatString(kind) -#define __drv_freesMem(kind) _Post_ _SA_annotes1(SAL_NeedsRelease,__no) +#define __drv_freesMem(kind) _Post_ _SA_annotes1(SAL_NeedsRelease,__no) #define __drv_fun(annotes) #define __drv_functionClass -#define __drv_holdsCancelSpinLock() -#define __drv_holdsCriticalRegion() -#define __drv_holdsPriorityRegion() +#define __drv_holdsCancelSpinLock() _Holds_resource_global_("CancelSpinLock",) +#define __drv_holdsCriticalRegion() _Holds_resource_global_("CriticalRegion",) +#define __drv_holdsPriorityRegion() _Holds_resource_global_("PriorityRegion",) #define __drv_in_deref(annotes) #define __drv_in(annotes) #define __drv_innerAcquiresGlobal(kind,param) @@ -60,7 +82,7 @@ #define __drv_innerReleasesGlobal(kind,param) #define __drv_interlocked #define __drv_IoGetDmaAdapter -#define __drv_isCancelIRQL +#define __drv_isCancelIRQL _IRQL_is_cancel_ #define __drv_isObjectPointer #define __drv_KMDF #define __drv_maxFunctionIRQL @@ -101,7 +123,6 @@ #define __drv_sameIRQL #define __drv_savesIRQL #define __drv_savesIRQLGlobal -#define __drv_setsIRQL(irql) #define __drv_strictType(typename,mode) #define __drv_strictTypeMatch(mode) #define __drv_unit(p) @@ -116,14 +137,35 @@ #define __prefast_operator_new_throws #define __user_code #define __user_driver +#define ___drv_unit_internal_kernel_driver +#define ___drv_unit_kernel_code +#define ___drv_unit_kernel_driver +#define ___drv_unit_user_code +#define ___drv_unit_user_driver + +__ANNOTATION(SAL_neverHold(_In_ char *);) +__ANNOTATION(SAL_acquire(_In_ char *);) +__ANNOTATION(SAL_floatUsed(void);) +__ANNOTATION(SAL_floatSaved(void);) +__ANNOTATION(SAL_floatRestored(void);) +__ANNOTATION(SAL_clearDoInit(enum __SAL_YesNo);) +__ANNOTATION(SAL_maxIRQL(__int64);) +__ANNOTATION(SAL_IsAliased(void);) +__ANNOTATION(SAL_NeedsRelease(enum __SAL_YesNo);) +__ANNOTATION(SAL_mustHold(_In_ char *);) +__ANNOTATION(SAL_release(_In_ char *);) +__ANNOTATION(SAL_IoGetDmaAdapter(void);) + +#else + +/* Dummys */ #define _Dispatch_type_ #define _IRQL_always_function_max_(irql) #define _IRQL_always_function_min_(irql) #define _IRQL_is_cancel_ #define _IRQL_raises_(irql) #define _IRQL_requires_(irql) -#define _IRQL_requires_max_(irql) _Pre_ _SA_annotes1(SAL_maxIRQL,irql) -#define _IRQL_requires_max_defined +#define _IRQL_requires_max_(irql) #define _IRQL_requires_min_(irql) #define _IRQL_requires_same_ #define _IRQL_restores_ @@ -138,23 +180,8 @@ #define _Kernel_IoGetDmaAdapter_ #define _Kernel_releases_resource_(kind) #define _Kernel_requires_resource_held_(kind) -#define _Kernel_requires_resource_not_held_(kind) _Pre_ _SA_annotes1(SAL_neverHold, #kind) -#define _Kernel_acquires_resource_(kind) _Post_ _SA_annotes1(SAL_acquire, #kind) - -__ANNOTATION(SAL_maxIRQL(__int64);) -__ANNOTATION(SAL_IsAliased(void);) -__ANNOTATION(SAL_NeedsRelease(enum __SAL_YesNo);) -__ANNOTATION(SAL_neverHold(__In_impl_ char *);) -__ANNOTATION(SAL_acquire(__In_impl_ char *);) - -#else - -/* Dummys */ -#define ___drv_unit_internal_kernel_driver -#define ___drv_unit_kernel_code -#define ___drv_unit_kernel_driver -#define ___drv_unit_user_code -#define ___drv_unit_user_driver +#define _Kernel_requires_resource_not_held_(kind) +#define _Kernel_acquires_resource_(kind) #define __drv_acquiresCancelSpinLock #define __drv_acquiresCriticalRegion #define __drv_acquiresExclusiveResource(kind) @@ -248,29 +275,11 @@ #define __prefast_operator_new_throws #define __user_code #define __user_driver -#define _Dispatch_type_ -#define _IRQL_always_function_max_(irql) -#define _IRQL_always_function_min_(irql) -#define _IRQL_is_cancel_ -#define _IRQL_raises_(irql) -#define _IRQL_requires_(irql) -#define _IRQL_requires_max_(irql) -#define _IRQL_requires_min_(irql) -#define _IRQL_requires_same_ -#define _IRQL_restores_ -#define _IRQL_restores_global_(kind,param) -#define _IRQL_saves_ -#define _IRQL_saves_global_(kind,param) -#define _IRQL_uses_cancel_ -#define _Kernel_clear_do_init_(yesNo) -#define _Kernel_float_restored_ -#define _Kernel_float_saved_ -#define _Kernel_float_used_ -#define _Kernel_IoGetDmaAdapter_ -#define _Kernel_releases_resource_(kind) -#define _Kernel_requires_resource_held_(kind) -#define _Kernel_requires_resource_not_held_(kind) -#define _Kernel_acquires_resource_(kind) +#define ___drv_unit_internal_kernel_driver +#define ___drv_unit_kernel_code +#define ___drv_unit_kernel_driver +#define ___drv_unit_user_code +#define ___drv_unit_user_driver
#endif
Modified: trunk/reactos/include/psdk/sal.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/sal.h?rev=5820... ============================================================================== --- trunk/reactos/include/psdk/sal.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/sal.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -855,7 +855,7 @@ //#define _Outref_result_maybenull_ //#define _Outref_result_nullonfailure_ #define _Points_to_data_ _SAL2_NAME(_Points_to_data_) _Group_([SAL_pre] [SAL_at(p1="*_Curr_")] _Group_([SAL_annotes(Name="SAL_mayBePointer", p1="__no")]) ) -//#define _Post_bytecap_(size) +#define _Post_bytecap_(size) _SAL11_NAME(_Post_bytecap_) _Group_([SA_Post(WritableBytes="\n" _SA_SPECSTRIZE(size))]) #define _Post_bytecount_(size) _SAL11_NAME(_Post_bytecount_) _Group_([SA_Post(ValidBytes="\n" _SA_SPECSTRIZE(size))] [SA_Post(Valid=SA_Yes)]) //#define _Post_bytecount_c_(size) //#define _Post_bytecount_x_(size)
Modified: trunk/reactos/include/xdk/rtlfuncs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/xdk/rtlfuncs.h?rev=... ============================================================================== --- trunk/reactos/include/xdk/rtlfuncs.h [iso-8859-1] (original) +++ trunk/reactos/include/xdk/rtlfuncs.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -217,14 +217,18 @@
_IRQL_requires_max_(DISPATCH_LEVEL) _At_(DestinationString->Buffer, _Post_equal_to_(SourceString)) +_When_(SourceString != NULL, _At_(DestinationString->Length, _Post_equal_to_(_String_length_(SourceString) * sizeof(WCHAR))) -_At_(DestinationString->MaximumLength, _Post_equal_to_((_String_length_(SourceString)+1) * sizeof(WCHAR))) +_At_(DestinationString->MaximumLength, _Post_equal_to_(DestinationString->Length + sizeof(WCHAR)))) +_When_(SourceString == NULL, +_At_(DestinationString->Length, _Post_equal_to_(0)) +_At_(DestinationString->MaximumLength, _Post_equal_to_(0))) NTSYSAPI VOID NTAPI RtlInitUnicodeString( - _Out_ PUNICODE_STRING DestinationString, - _In_opt_z_ __drv_aliasesMem PCWSTR SourceString); + _Out_ PUNICODE_STRING DestinationString, + _In_opt_z_ __drv_aliasesMem PCWSTR SourceString);
/* VOID * RtlMoveMemory( @@ -805,13 +809,14 @@ #define RtlStoreUlongPtr(Address,Value) RtlStoreUlong(Address,Value) #endif /* _WIN64 */
-_Success_(return != 0) +_Success_(return!=FALSE) +_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlTimeFieldsToTime( - _In_ PTIME_FIELDS TimeFields, - _Out_ PLARGE_INTEGER Time); + _In_ PTIME_FIELDS TimeFields, + _Out_ PLARGE_INTEGER Time);
NTSYSAPI VOID @@ -1566,12 +1571,13 @@ _Out_ PLARGE_INTEGER Time);
_Success_(return != 0) +_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlTimeToSecondsSince1970( - _In_ PLARGE_INTEGER Time, - _Out_ PULONG ElapsedSeconds); + _In_ PLARGE_INTEGER Time, + _Out_ PULONG ElapsedSeconds);
NTSYSAPI VOID
Modified: trunk/reactos/include/xdk/wdm.template.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/xdk/wdm.template.h?... ============================================================================== --- trunk/reactos/include/xdk/wdm.template.h [iso-8859-1] (original) +++ trunk/reactos/include/xdk/wdm.template.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -41,6 +41,7 @@ #include <excpt.h> #include <ntdef.h> #include <ntstatus.h> +#include <kernelspecs.h> #include <ntiologc.h>
#ifndef GUID_DEFINED
Modified: trunk/reactos/include/xdk/zwfuncs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/xdk/zwfuncs.h?rev=5... ============================================================================== --- trunk/reactos/include/xdk/zwfuncs.h [iso-8859-1] (original) +++ trunk/reactos/include/xdk/zwfuncs.h [iso-8859-1] Tue Jan 22 22:51:51 2013 @@ -593,7 +593,7 @@
_Must_inspect_result_ _At_(*BaseAddress, __drv_allocatesMem(Mem)) -__kernel_entry NTSYSCALLAPI +__kernel_entry NTSYSAPI NTSTATUS NTAPI