ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
August 2013
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
10 participants
327 discussions
Start a n
N
ew thread
[cgutman] 59632: [TCPIP] - Properly support having the same neighbor addresses on different interfaces
by cgutman@svn.reactos.org
Author: cgutman Date: Sun Aug 4 12:35:05 2013 New Revision: 59632 URL:
http://svn.reactos.org/svn/reactos?rev=59632&view=rev
Log: [TCPIP] - Properly support having the same neighbor addresses on different interfaces Modified: trunk/reactos/drivers/network/tcpip/include/interface.h trunk/reactos/drivers/network/tcpip/include/neighbor.h trunk/reactos/drivers/network/tcpip/tcpip/iinfo.c trunk/reactos/lib/drivers/ip/network/arp.c trunk/reactos/lib/drivers/ip/network/icmp.c trunk/reactos/lib/drivers/ip/network/ip.c trunk/reactos/lib/drivers/ip/network/neighbor.c trunk/reactos/lib/drivers/ip/transport/rawip/rawip.c trunk/reactos/lib/drivers/ip/transport/udp/udp.c Modified: trunk/reactos/drivers/network/tcpip/include/interface.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/tcpip/incl…
============================================================================== --- trunk/reactos/drivers/network/tcpip/include/interface.h [iso-8859-1] (original) +++ trunk/reactos/drivers/network/tcpip/include/interface.h [iso-8859-1] Sun Aug 4 12:35:05 2013 @@ -15,3 +15,4 @@ NTSTATUS GetInterfaceConnectionStatus( PIP_INTERFACE Interface, PULONG OperStatus ); PIP_INTERFACE FindOnLinkInterface(PIP_ADDRESS Address); +PIP_INTERFACE GetDefaultInterface(VOID); Modified: trunk/reactos/drivers/network/tcpip/include/neighbor.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/tcpip/incl…
============================================================================== --- trunk/reactos/drivers/network/tcpip/include/neighbor.h [iso-8859-1] (original) +++ trunk/reactos/drivers/network/tcpip/include/neighbor.h [iso-8859-1] Sun Aug 4 12:35:05 2013 @@ -83,7 +83,8 @@ UCHAR State); PNEIGHBOR_CACHE_ENTRY NBLocateNeighbor( - PIP_ADDRESS Address); + PIP_ADDRESS Address, + PIP_INTERFACE Interface); PNEIGHBOR_CACHE_ENTRY NBFindOrCreateNeighbor( PIP_INTERFACE Interface, Modified: trunk/reactos/drivers/network/tcpip/tcpip/iinfo.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/tcpip/tcpi…
============================================================================== --- trunk/reactos/drivers/network/tcpip/tcpip/iinfo.c [iso-8859-1] (original) +++ trunk/reactos/drivers/network/tcpip/tcpip/iinfo.c [iso-8859-1] Sun Aug 4 12:35:05 2013 @@ -145,7 +145,7 @@ AddrInitIPv4(&Address, ArpEntry->LogAddr); - if ((NCE = NBLocateNeighbor(&Address))) + if ((NCE = NBLocateNeighbor(&Address, IF))) NBRemoveNeighbor(NCE); if (NBAddNeighbor(IF, Modified: trunk/reactos/lib/drivers/ip/network/arp.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/ip/network/arp…
============================================================================== --- trunk/reactos/lib/drivers/ip/network/arp.c [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/ip/network/arp.c [iso-8859-1] Sun Aug 4 12:35:05 2013 @@ -271,7 +271,7 @@ AddrInitIPv4(&SrcAddress, *((PULONG)SenderProtoAddress)); /* Check if we know the sender */ - NCE = NBLocateNeighbor(&SrcAddress); + NCE = NBLocateNeighbor(&SrcAddress, Interface); if (NCE) { /* We know the sender. Update the hardware address and state in our neighbor address cache */ Modified: trunk/reactos/lib/drivers/ip/network/icmp.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/ip/network/icm…
============================================================================== --- trunk/reactos/lib/drivers/ip/network/icmp.c [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/ip/network/icmp.c [iso-8859-1] Sun Aug 4 12:35:05 2013 @@ -173,7 +173,7 @@ } else { - if(!(NCE = NBLocateNeighbor( &LocalAddress ))) + if(!(NCE = NBLocateNeighbor( &LocalAddress, NULL ))) { UnlockObject(AddrFile, OldIrql); return STATUS_INVALID_PARAMETER; Modified: trunk/reactos/lib/drivers/ip/network/ip.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/ip/network/ip.…
============================================================================== --- trunk/reactos/lib/drivers/ip/network/ip.c [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/ip/network/ip.c [iso-8859-1] Sun Aug 4 12:35:05 2013 @@ -327,7 +327,7 @@ PNEIGHBOR_CACHE_ENTRY NCE; IP_ADDRESS GeneralRoute; - NCE = NBLocateNeighbor(&IF->Unicast); + NCE = NBLocateNeighbor(&IF->Unicast, IF); if (NCE) { TI_DbgPrint(DEBUG_IP,("Removing interface Addr %s\n", A2S(&IF->Unicast))); Modified: trunk/reactos/lib/drivers/ip/network/neighbor.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/ip/network/nei…
============================================================================== --- trunk/reactos/lib/drivers/ip/network/neighbor.c [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/ip/network/neighbor.c [iso-8859-1] Sun Aug 4 12:35:05 2013 @@ -415,11 +415,13 @@ } PNEIGHBOR_CACHE_ENTRY NBLocateNeighbor( - PIP_ADDRESS Address) + PIP_ADDRESS Address, + PIP_INTERFACE Interface) /* * FUNCTION: Locates a neighbor in the neighbor cache * ARGUMENTS: * Address = Pointer to IP address + * Interface = Pointer to IP interface * RETURNS: * Pointer to NCE, NULL if not found * NOTES: @@ -430,6 +432,7 @@ PNEIGHBOR_CACHE_ENTRY NCE; UINT HashValue; KIRQL OldIrql; + PIP_INTERFACE FirstInterface; TI_DbgPrint(DEBUG_NCACHE, ("Called. Address (0x%X).\n", Address)); @@ -443,10 +446,36 @@ NCE = NeighborCache[HashValue].Cache; - while ((NCE) && (!AddrIsEqual(Address, &NCE->Address))) - { - NCE = NCE->Next; - } + /* If there's no adapter specified, we'll look for a match on + * each one. */ + if (Interface == NULL) + { + FirstInterface = GetDefaultInterface(); + Interface = FirstInterface; + } + else + { + FirstInterface = NULL; + } + + do + { + while (NCE != NULL) + { + if (NCE->Interface == Interface && + AddrIsEqual(Address, &NCE->Address)) + { + break; + } + + NCE = NCE->Next; + } + + if (NCE != NULL) + break; + } + while ((FirstInterface != NULL) && + ((Interface = GetDefaultInterface()) != FirstInterface)); TcpipReleaseSpinLock(&NeighborCache[HashValue].Lock, OldIrql); @@ -475,7 +504,7 @@ TI_DbgPrint(DEBUG_NCACHE, ("Called. Interface (0x%X) Address (0x%X).\n", Interface, Address)); - NCE = NBLocateNeighbor(Address); + NCE = NBLocateNeighbor(Address, Interface); if (NCE == NULL) { TI_DbgPrint(MID_TRACE,("BCAST: %s\n", A2S(&Interface->Broadcast))); Modified: trunk/reactos/lib/drivers/ip/transport/rawip/rawip.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/ip/transport/r…
============================================================================== --- trunk/reactos/lib/drivers/ip/transport/rawip/rawip.c [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/ip/transport/rawip/rawip.c [iso-8859-1] Sun Aug 4 12:35:05 2013 @@ -230,7 +230,7 @@ } else { - if(!(NCE = NBLocateNeighbor( &LocalAddress ))) { + if(!(NCE = NBLocateNeighbor( &LocalAddress, NULL ))) { UnlockObject(AddrFile, OldIrql); return STATUS_INVALID_PARAMETER; } Modified: trunk/reactos/lib/drivers/ip/transport/udp/udp.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/ip/transport/u…
============================================================================== --- trunk/reactos/lib/drivers/ip/transport/udp/udp.c [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/ip/transport/udp/udp.c [iso-8859-1] Sun Aug 4 12:35:05 2013 @@ -208,7 +208,7 @@ } else { - if(!(NCE = NBLocateNeighbor( &LocalAddress ))) { + if(!(NCE = NBLocateNeighbor( &LocalAddress, NULL ))) { UnlockObject(AddrFile, OldIrql); return STATUS_INVALID_PARAMETER; }
11 years, 4 months
1
0
0
0
[ekohl] 59631: [NETAPI32] NetpNtStatusToApiStatus: Convert STATUS_PASSWORD_RESTRICTION to NERR_PasswordTooShort.
by ekohl@svn.reactos.org
Author: ekohl Date: Sun Aug 4 10:55:09 2013 New Revision: 59631 URL:
http://svn.reactos.org/svn/reactos?rev=59631&view=rev
Log: [NETAPI32] NetpNtStatusToApiStatus: Convert STATUS_PASSWORD_RESTRICTION to NERR_PasswordTooShort. Modified: trunk/reactos/dll/win32/netapi32/netapi32.c Modified: trunk/reactos/dll/win32/netapi32/netapi32.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/netapi32/netapi3…
============================================================================== --- trunk/reactos/dll/win32/netapi32/netapi32.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/netapi32/netapi32.c [iso-8859-1] Sun Aug 4 10:55:09 2013 @@ -230,6 +230,10 @@ ApiStatus = NERR_BadUsername; break; + case STATUS_PASSWORD_RESTRICTION: + ApiStatus = NERR_PasswordTooShort; + break; + default: ApiStatus = RtlNtStatusToDosError(Status); break;
11 years, 4 months
1
0
0
0
[ekohl] 59630: [SAMLIB] Implement SamQueryDisplayInformation.
by ekohl@svn.reactos.org
Author: ekohl Date: Sat Aug 3 22:39:58 2013 New Revision: 59630 URL:
http://svn.reactos.org/svn/reactos?rev=59630&view=rev
Log: [SAMLIB] Implement SamQueryDisplayInformation. Modified: trunk/reactos/dll/win32/samlib/samlib.c trunk/reactos/dll/win32/samlib/samlib.spec trunk/reactos/include/ddk/ntsam.h Modified: trunk/reactos/dll/win32/samlib/samlib.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/samlib/samlib.c?…
============================================================================== --- trunk/reactos/dll/win32/samlib/samlib.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/samlib/samlib.c [iso-8859-1] Sat Aug 3 22:39:58 2013 @@ -1411,6 +1411,92 @@ NTSTATUS NTAPI +SamQueryDisplayInformation(IN SAM_HANDLE DomainHandle, + IN DOMAIN_DISPLAY_INFORMATION DisplayInformation, + IN ULONG Index, + IN ULONG EntryCount, + IN ULONG PreferredMaximumLength, + OUT PULONG TotalAvailable, + OUT PULONG TotalReturned, + OUT PULONG ReturnedEntryCount, + OUT PVOID *SortedBuffer) +{ + SAMPR_DISPLAY_INFO_BUFFER LocalBuffer; + NTSTATUS Status; + + TRACE("(%p %lu %lu %lu %lu %p %p %p %p)\n", + DomainHandle, DisplayInformation, Index, EntryCount, + PreferredMaximumLength, TotalAvailable, TotalReturned, + ReturnedEntryCount, SortedBuffer); + + if ((TotalAvailable == NULL) || + (TotalReturned == NULL) || + (ReturnedEntryCount == NULL) || + (SortedBuffer == NULL)) + return STATUS_INVALID_PARAMETER; + + RpcTryExcept + { + Status = SamrQueryDisplayInformation3((SAMPR_HANDLE)DomainHandle, + DisplayInformation, + Index, + EntryCount, + PreferredMaximumLength, + TotalAvailable, + TotalReturned, + &LocalBuffer); + if (NT_SUCCESS(Status)) + { + switch (DisplayInformation) + { + case DomainDisplayUser: + *ReturnedEntryCount = LocalBuffer.UserInformation.EntriesRead; + *SortedBuffer = LocalBuffer.UserInformation.Buffer; + break; + + case DomainDisplayMachine: + *ReturnedEntryCount = LocalBuffer.MachineInformation.EntriesRead; + *SortedBuffer = LocalBuffer.MachineInformation.Buffer; + break; + + case DomainDisplayGroup: + *ReturnedEntryCount = LocalBuffer.GroupInformation.EntriesRead; + *SortedBuffer = LocalBuffer.GroupInformation.Buffer; + break; + + case DomainDisplayOemUser: + *ReturnedEntryCount = LocalBuffer.OemUserInformation.EntriesRead; + *SortedBuffer = LocalBuffer.OemUserInformation.Buffer; + break; + + case DomainDisplayOemGroup: + *ReturnedEntryCount = LocalBuffer.OemGroupInformation.EntriesRead; + *SortedBuffer = LocalBuffer.OemGroupInformation.Buffer; + break; + + case DomainDisplayServer: + /* FIXME */ + break; + } + } + else + { + *ReturnedEntryCount = 0; + *SortedBuffer = NULL; + } + } + RpcExcept(EXCEPTION_EXECUTE_HANDLER) + { + Status = I_RpcMapWin32Status(RpcExceptionCode()); + } + RpcEndExcept; + + return Status; +} + + +NTSTATUS +NTAPI SamQueryInformationAlias(IN SAM_HANDLE AliasHandle, IN ALIAS_INFORMATION_CLASS AliasInformationClass, OUT PVOID *Buffer) Modified: trunk/reactos/dll/win32/samlib/samlib.spec URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/samlib/samlib.sp…
============================================================================== --- trunk/reactos/dll/win32/samlib/samlib.spec [iso-8859-1] (original) +++ trunk/reactos/dll/win32/samlib/samlib.spec [iso-8859-1] Sat Aug 3 22:39:58 2013 @@ -32,7 +32,7 @@ @ stdcall SamOpenDomain(ptr long ptr ptr) @ stdcall SamOpenGroup(ptr long long ptr) @ stdcall SamOpenUser(ptr long long ptr) -@ stub SamQueryDisplayInformation +@ stdcall SamQueryDisplayInformation(ptr long long long long ptr ptr ptr ptr) @ stdcall SamQueryInformationAlias(ptr long ptr) @ stdcall SamQueryInformationDomain(ptr long ptr) @ stdcall SamQueryInformationGroup(ptr long ptr) Modified: trunk/reactos/include/ddk/ntsam.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/ntsam.h?rev=59…
============================================================================== --- trunk/reactos/include/ddk/ntsam.h [iso-8859-1] (original) +++ trunk/reactos/include/ddk/ntsam.h [iso-8859-1] Sat Aug 3 22:39:58 2013 @@ -903,6 +903,18 @@ NTSTATUS NTAPI +SamQueryDisplayInformation(IN SAM_HANDLE DomainHandle, + IN DOMAIN_DISPLAY_INFORMATION DisplayInformation, + IN ULONG Index, + IN ULONG EntryCount, + IN ULONG PreferredMaximumLength, + OUT PULONG TotalAvailable, + OUT PULONG TotalReturned, + OUT PULONG ReturnedEntryCount, + OUT PVOID *SortedBuffer); + +NTSTATUS +NTAPI SamQueryInformationAlias(IN SAM_HANDLE AliasHandle, IN ALIAS_INFORMATION_CLASS AliasInformationClass, OUT PVOID *Buffer);
11 years, 4 months
1
0
0
0
[akhaldi] 59629: [CRT] * Annotate process.h.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Aug 3 18:57:57 2013 New Revision: 59629 URL:
http://svn.reactos.org/svn/reactos?rev=59629&view=rev
Log: [CRT] * Annotate process.h. Modified: trunk/reactos/include/crt/process.h Modified: trunk/reactos/include/crt/process.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/crt/process.h?rev=…
============================================================================== --- trunk/reactos/include/crt/process.h [iso-8859-1] (original) +++ trunk/reactos/include/crt/process.h [iso-8859-1] Sat Aug 3 18:57:57 2013 @@ -12,6 +12,7 @@ #include <sys/types.h> #ifndef _POSIX_ + #ifdef __cplusplus extern "C" { #endif @@ -26,15 +27,33 @@ #define _WAIT_CHILD 0 #define _WAIT_GRANDCHILD 1 - _CRTIMP uintptr_t __cdecl _beginthread(void (__cdecl *_StartAddress) (void *),unsigned _StackSize,void *_ArgList); + _CRTIMP + uintptr_t + __cdecl + _beginthread( + _In_ void(__cdecl *_StartAddress) (void *), + _In_ unsigned _StackSize, + _In_opt_ void *_ArgList); + _CRTIMP void __cdecl _endthread(void); - _CRTIMP uintptr_t __cdecl _beginthreadex(void *_Security,unsigned _StackSize,unsigned (__stdcall *_StartAddress) (void *),void *_ArgList,unsigned _InitFlag,unsigned *_ThrdAddr); - _CRTIMP void __cdecl _endthreadex(unsigned _Retval); + + _CRTIMP + uintptr_t + __cdecl + _beginthreadex( + _In_opt_ void *_Security, + _In_ unsigned _StackSize, + _In_ unsigned(__stdcall *_StartAddress) (void *), + _In_opt_ void *_ArgList, + _In_ unsigned _InitFlag, + _Out_opt_ unsigned *_ThrdAddr); + + _CRTIMP void __cdecl _endthreadex(_In_ unsigned _Retval); #ifndef _CRT_TERMINATE_DEFINED #define _CRT_TERMINATE_DEFINED - __declspec(noreturn) void __cdecl exit(int _Code); - _CRTIMP __declspec(noreturn) void __cdecl _exit(int _Code); + __declspec(noreturn) void __cdecl exit(_In_ int _Code); + _CRTIMP __declspec(noreturn) void __cdecl _exit(_In_ int _Code); #if __MINGW_GNUC_PREREQ(4,4) #pragma push_macro("abort") @@ -47,55 +66,296 @@ #endif #endif - _CRTIMP void __cdecl _cexit(void); - _CRTIMP void __cdecl _c_exit(void); + __analysis_noreturn _CRTIMP void __cdecl _cexit(void); + __analysis_noreturn _CRTIMP void __cdecl _c_exit(void); _CRTIMP int __cdecl _getpid(void); - _CRTIMP intptr_t __cdecl _cwait(int *_TermStat,intptr_t _ProcHandle,int _Action); - _CRTIMP intptr_t __cdecl _execl(const char *_Filename,const char *_ArgList,...); - _CRTIMP intptr_t __cdecl _execle(const char *_Filename,const char *_ArgList,...); - _CRTIMP intptr_t __cdecl _execlp(const char *_Filename,const char *_ArgList,...); - _CRTIMP intptr_t __cdecl _execlpe(const char *_Filename,const char *_ArgList,...); - _CRTIMP intptr_t __cdecl _execv(const char *_Filename,const char *const *_ArgList); - _CRTIMP intptr_t __cdecl _execve(const char *_Filename,const char *const *_ArgList,const char *const *_Env); - _CRTIMP intptr_t __cdecl _execvp(const char *_Filename,const char *const *_ArgList); - _CRTIMP intptr_t __cdecl _execvpe(const char *_Filename,const char *const *_ArgList,const char *const *_Env); - _CRTIMP intptr_t __cdecl _spawnl(int _Mode,const char *_Filename,const char *_ArgList,...); - _CRTIMP intptr_t __cdecl _spawnle(int _Mode,const char *_Filename,const char *_ArgList,...); - _CRTIMP intptr_t __cdecl _spawnlp(int _Mode,const char *_Filename,const char *_ArgList,...); - _CRTIMP intptr_t __cdecl _spawnlpe(int _Mode,const char *_Filename,const char *_ArgList,...); - _CRTIMP intptr_t __cdecl _spawnv(int _Mode,const char *_Filename,const char *const *_ArgList); - _CRTIMP intptr_t __cdecl _spawnve(int _Mode,const char *_Filename,const char *const *_ArgList,const char *const *_Env); - _CRTIMP intptr_t __cdecl _spawnvp(int _Mode,const char *_Filename,const char *const *_ArgList); - _CRTIMP intptr_t __cdecl _spawnvpe(int _Mode,const char *_Filename,const char *const *_ArgList,const char *const *_Env); + + _CRTIMP + intptr_t + __cdecl + _cwait( + _Out_opt_ int *_TermStat, + _In_ intptr_t _ProcHandle, + _In_ int _Action); + + _CRTIMP + intptr_t + __cdecl + _execl( + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _execle( + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _execlp( + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _execlpe( + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _execv( + _In_z_ const char *_Filename, + _In_z_ const char *const *_ArgList); + + _CRTIMP + intptr_t + __cdecl + _execve( + _In_z_ const char *_Filename, + _In_z_ const char *const *_ArgList, + _In_opt_z_ const char *const *_Env); + + _CRTIMP + intptr_t + __cdecl + _execvp( + _In_z_ const char *_Filename, + _In_z_ const char *const *_ArgList); + + _CRTIMP + intptr_t + __cdecl + _execvpe( + _In_z_ const char *_Filename, + _In_z_ const char *const *_ArgList, + _In_opt_z_ const char *const *_Env); + + _CRTIMP + intptr_t + __cdecl + _spawnl( + _In_ int _Mode, + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _spawnle( + _In_ int _Mode, + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _spawnlp( + _In_ int _Mode, + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _spawnlpe( + _In_ int _Mode, + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _spawnv( + _In_ int _Mode, + _In_z_ const char *_Filename, + _In_z_ const char *const *_ArgList); + + _CRTIMP + intptr_t + __cdecl + _spawnve( + _In_ int _Mode, + _In_z_ const char *_Filename, + _In_z_ const char *const *_ArgList, + _In_opt_z_ const char *const *_Env); + + _CRTIMP + intptr_t + __cdecl + _spawnvp( + _In_ int _Mode, + _In_z_ const char *_Filename, + _In_z_ const char *const *_ArgList); + + _CRTIMP + intptr_t + __cdecl + _spawnvpe( + _In_ int _Mode, + _In_z_ const char *_Filename, + _In_z_ const char *const *_ArgList, + _In_opt_z_ const char *const *_Env); #ifndef _CRT_SYSTEM_DEFINED #define _CRT_SYSTEM_DEFINED - int __cdecl system(const char *_Command); + int __cdecl system(_In_opt_z_ const char *_Command); #endif #ifndef _WPROCESS_DEFINED #define _WPROCESS_DEFINED - _CRTIMP intptr_t __cdecl _wexecl(const wchar_t *_Filename,const wchar_t *_ArgList,...); - _CRTIMP intptr_t __cdecl _wexecle(const wchar_t *_Filename,const wchar_t *_ArgList,...); - _CRTIMP intptr_t __cdecl _wexeclp(const wchar_t *_Filename,const wchar_t *_ArgList,...); - _CRTIMP intptr_t __cdecl _wexeclpe(const wchar_t *_Filename,const wchar_t *_ArgList,...); - _CRTIMP intptr_t __cdecl _wexecv(const wchar_t *_Filename,const wchar_t *const *_ArgList); - _CRTIMP intptr_t __cdecl _wexecve(const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env); - _CRTIMP intptr_t __cdecl _wexecvp(const wchar_t *_Filename,const wchar_t *const *_ArgList); - _CRTIMP intptr_t __cdecl _wexecvpe(const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env); - _CRTIMP intptr_t __cdecl _wspawnl(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...); - _CRTIMP intptr_t __cdecl _wspawnle(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...); - _CRTIMP intptr_t __cdecl _wspawnlp(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...); - _CRTIMP intptr_t __cdecl _wspawnlpe(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...); - _CRTIMP intptr_t __cdecl _wspawnv(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList); - _CRTIMP intptr_t __cdecl _wspawnve(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env); - _CRTIMP intptr_t __cdecl _wspawnvp(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList); - _CRTIMP intptr_t __cdecl _wspawnvpe(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env); + + _CRTIMP + intptr_t + __cdecl + _wexecl( + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _wexecle( + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _wexeclp( + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _wexeclpe( + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _wexecv( + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *const *_ArgList); + + _CRTIMP + intptr_t + __cdecl + _wexecve( + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *const *_ArgList, + _In_opt_z_ const wchar_t *const *_Env); + + _CRTIMP + intptr_t + __cdecl + _wexecvp( + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *const *_ArgList); + + _CRTIMP + intptr_t + __cdecl + _wexecvpe( + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *const *_ArgList, + _In_opt_z_ const wchar_t *const *_Env); + + _CRTIMP + intptr_t + __cdecl + _wspawnl( + _In_ int _Mode, + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _wspawnle( + _In_ int _Mode, + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _wspawnlp( + _In_ int _Mode, + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _wspawnlpe( + _In_ int _Mode, + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + _wspawnv( + _In_ int _Mode, + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *const *_ArgList); + + _CRTIMP + intptr_t + __cdecl + _wspawnve( + _In_ int _Mode, + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *const *_ArgList, + _In_opt_z_ const wchar_t *const *_Env); + + _CRTIMP + intptr_t + __cdecl + _wspawnvp( + _In_ int _Mode, + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *const *_ArgList); + + _CRTIMP + intptr_t + __cdecl + _wspawnvpe( + _In_ int _Mode, + _In_z_ const wchar_t *_Filename, + _In_z_ const wchar_t *const *_ArgList, + _In_opt_z_ const wchar_t *const *_Env); + #ifndef _CRT_WSYSTEM_DEFINED #define _CRT_WSYSTEM_DEFINED - _CRTIMP int __cdecl _wsystem(const wchar_t *_Command); -#endif -#endif + _CRTIMP int __cdecl _wsystem(_In_opt_z_ const wchar_t *_Command); +#endif /* _CRT_WSYSTEM_DEFINED */ + +#endif /* _WPROCESS_DEFINED */ void __cdecl __security_init_cookie(void); #if (defined(_X86_) && !defined(__x86_64)) @@ -107,25 +367,68 @@ #endif extern uintptr_t __security_cookie; - intptr_t __cdecl _loaddll(char *_Filename); - int __cdecl _unloaddll(intptr_t _Handle); - int (__cdecl *__cdecl _getdllprocaddr(intptr_t _Handle,char *_ProcedureName,intptr_t _Ordinal))(void); + intptr_t __cdecl _loaddll(_In_z_ char *_Filename); + int __cdecl _unloaddll(_In_ intptr_t _Handle); + int (__cdecl *__cdecl _getdllprocaddr(_In_ intptr_t _Handle, _In_opt_z_ char *_ProcedureName, _In_ intptr_t _Ordinal))(void); #ifdef _DECL_DLLMAIN + #ifdef _WIN32 - WINBOOL WINAPI DllMain(HANDLE _HDllHandle,DWORD _Reason,LPVOID _Reserved); - WINBOOL WINAPI _CRT_INIT(HANDLE _HDllHandle,DWORD _Reason,LPVOID _Reserved); - WINBOOL WINAPI _wCRT_INIT(HANDLE _HDllHandle,DWORD _Reason,LPVOID _Reserved); + + WINBOOL + WINAPI + DllMain( + _In_ HANDLE _HDllHandle, + _In_ DWORD _Reason, + _In_opt_ LPVOID _Reserved); + + WINBOOL + WINAPI + _CRT_INIT( + _In_ HANDLE _HDllHandle, + _In_ DWORD _Reason, + _In_opt_ LPVOID _Reserved); + + WINBOOL + WINAPI + _wCRT_INIT( + _In_ HANDLE _HDllHandle, + _In_ DWORD _Reason, + _In_opt_ LPVOID _Reserved); + extern WINBOOL (WINAPI *const _pRawDllMain)(HANDLE,DWORD,LPVOID); -#else - int __stdcall DllMain(void *_HDllHandle,unsigned _Reason,void *_Reserved); - int __stdcall _CRT_INIT(void *_HDllHandle,unsigned _Reason,void *_Reserved); - int __stdcall _wCRT_INIT(void *_HDllHandle,unsigned _Reason,void *_Reserved); + +#else /* _WIN32 */ + + int + __stdcall + DllMain( + _In_ void *_HDllHandle, + _In_ unsigned _Reason, + _In_opt_ void *_Reserved); + + int + __stdcall + _CRT_INIT( + _In_ void *_HDllHandle, + _In_ unsigned _Reason, + _In_opt_ void *_Reserved); + + int + __stdcall + _wCRT_INIT( + _In_ void *_HDllHandle, + _In_ unsigned _Reason, + _In_opt_ void *_Reserved); + extern int (__stdcall *const _pRawDllMain)(void *,unsigned,void *); -#endif -#endif - -#ifndef NO_OLDNAMES + +#endif /* _WIN32 */ + +#endif /* _DECL_DLLMAIN */ + +#ifndef NO_OLDNAMES + #define P_WAIT _P_WAIT #define P_NOWAIT _P_NOWAIT #define P_OVERLAY _P_OVERLAY @@ -135,46 +438,233 @@ #define WAIT_CHILD _WAIT_CHILD #define WAIT_GRANDCHILD _WAIT_GRANDCHILD - _CRTIMP intptr_t __cdecl cwait(int *_TermStat,intptr_t _ProcHandle,int _Action); + _CRTIMP + intptr_t + __cdecl + cwait( + _Out_opt_ int *_TermStat, + _In_ intptr_t _ProcHandle, + _In_ int _Action); + #ifdef __GNUC__ - _CRTIMP int __cdecl execl(const char *_Filename,const char *_ArgList,...); - _CRTIMP int __cdecl execle(const char *_Filename,const char *_ArgList,...); - _CRTIMP int __cdecl execlp(const char *_Filename,const char *_ArgList,...); - _CRTIMP int __cdecl execlpe(const char *_Filename,const char *_ArgList,...); -#else - _CRTIMP intptr_t __cdecl execl(const char *_Filename,const char *_ArgList,...); - _CRTIMP intptr_t __cdecl execle(const char *_Filename,const char *_ArgList,...); - _CRTIMP intptr_t __cdecl execlp(const char *_Filename,const char *_ArgList,...); - _CRTIMP intptr_t __cdecl execlpe(const char *_Filename,const char *_ArgList,...); -#endif - _CRTIMP intptr_t __cdecl spawnl(int,const char *_Filename,const char *_ArgList,...); - _CRTIMP intptr_t __cdecl spawnle(int,const char *_Filename,const char *_ArgList,...); - _CRTIMP intptr_t __cdecl spawnlp(int,const char *_Filename,const char *_ArgList,...); - _CRTIMP intptr_t __cdecl spawnlpe(int,const char *_Filename,const char *_ArgList,...); + + _CRTIMP + int + __cdecl + execl( + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + int + __cdecl + execle( + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + int + __cdecl + execlp( + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + int + __cdecl + execlpe( + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + +#else /* __GNUC__ */ + + _CRTIMP + intptr_t + __cdecl + execl( + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + execle( + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + execlp( + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + execlpe( + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + +#endif /* __GNUC__ */ + + _CRTIMP + intptr_t + __cdecl + spawnl( + _In_ int, + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + spawnle( + _In_ int, + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + spawnlp( + _In_ int, + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + + _CRTIMP + intptr_t + __cdecl + spawnlpe( + _In_ int, + _In_z_ const char *_Filename, + _In_z_ const char *_ArgList, + ...); + _CRTIMP int __cdecl getpid(void); + #ifdef __GNUC__ + /* Those methods are predefined by gcc builtins to return int. So to prevent stupid warnings, define them in POSIX way. This is save, because those methods do not return in success case, so that the return value is not really dependent to its scalar width. */ - _CRTIMP int __cdecl execv(const char *_Filename,char *const _ArgList[]); - _CRTIMP int __cdecl execve(const char *_Filename,char *const _ArgList[],char *const _Env[]); - _CRTIMP int __cdecl execvp(const char *_Filename,char *const _ArgList[]); - _CRTIMP int __cdecl execvpe(const char *_Filename,char *const _ArgList[],char *const _Env[]); -#else - _CRTIMP intptr_t __cdecl execv(const char *_Filename,char *const _ArgList[]); - _CRTIMP intptr_t __cdecl execve(const char *_Filename,char *const _ArgList[],char *const _Env[]); - _CRTIMP intptr_t __cdecl execvp(const char *_Filename,char *const _ArgList[]); - _CRTIMP intptr_t __cdecl execvpe(const char *_Filename,char *const _ArgList[],char *const _Env[]); -#endif - _CRTIMP intptr_t __cdecl spawnv(int,const char *_Filename,char *const _ArgList[]); - _CRTIMP intptr_t __cdecl spawnve(int,const char *_Filename,char *const _ArgList[],char *const _Env[]); - _CRTIMP intptr_t __cdecl spawnvp(int,const char *_Filename,char *const _ArgList[]); - _CRTIMP intptr_t __cdecl spawnvpe(int,const char *_Filename,char *const _ArgList[],char *const _Env[]); -#endif + + _CRTIMP + int + __cdecl + execv( + _In_z_ const char *_Filename, + _In_z_ char *const _ArgList[]); + + _CRTIMP + int + __cdecl + execve( + _In_z_ const char *_Filename, + _In_z_ char *const _ArgList[], + _In_opt_z_ char *const _Env[]); + + _CRTIMP + int + __cdecl + execvp( + _In_z_ const char *_Filename, + _In_z_ char *const _ArgList[]); + + _CRTIMP + int + __cdecl + execvpe( + _In_z_ const char *_Filename, + _In_z_ char *const _ArgList[], + _In_opt_z_ char *const _Env[]); + +#else /* __GNUC__ */ + + _CRTIMP + intptr_t + __cdecl + execv( + _In_z_ const char *_Filename, + _In_z_ char *const _ArgList[]); + + _CRTIMP + intptr_t + __cdecl + execve( + _In_z_ const char *_Filename, + _In_z_ char *const _ArgList[], + _In_opt_z_ char *const _Env[]); + + _CRTIMP + intptr_t + __cdecl + execvp( + _In_z_ const char *_Filename, + _In_z_ char *const _ArgList[]); + + _CRTIMP + intptr_t + __cdecl + execvpe( + _In_z_ const char *_Filename, + _In_z_ char *const _ArgList[], + _In_opt_z_ char *const _Env[]); + +#endif /* __GNUC__ */ + + _CRTIMP + intptr_t + __cdecl + spawnv( + _In_ int, + _In_z_ const char *_Filename, + _In_z_ char *const _ArgList[]); + + _CRTIMP + intptr_t + __cdecl + spawnve( + _In_ int, + _In_z_ const char *_Filename, + _In_z_ char *const _ArgList[], + _In_opt_z_ char *const _Env[]); + + _CRTIMP + intptr_t + __cdecl + spawnvp( + _In_ int, + _In_z_ const char *_Filename, + _In_z_ char *const _ArgList[]); + + _CRTIMP + intptr_t + __cdecl + spawnvpe( + _In_ int, + _In_z_ const char *_Filename, + _In_z_ char *const _ArgList[], + _In_opt_z_ char *const _Env[]); + +#endif /* NO_OLDNAMES */ #ifdef __cplusplus } #endif -#endif -#endif + +#endif /* _POSIX_ */ + +#endif /* _INC_PROCESS */
11 years, 4 months
1
0
0
0
[ekohl] 59628: [SAMLIB] SamSetInformationUser: Add password length checks.
by ekohl@svn.reactos.org
Author: ekohl Date: Sat Aug 3 16:40:00 2013 New Revision: 59628 URL:
http://svn.reactos.org/svn/reactos?rev=59628&view=rev
Log: [SAMLIB] SamSetInformationUser: Add password length checks. Modified: trunk/reactos/dll/win32/samlib/samlib.c Modified: trunk/reactos/dll/win32/samlib/samlib.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/samlib/samlib.c?…
============================================================================== --- trunk/reactos/dll/win32/samlib/samlib.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/samlib/samlib.c [iso-8859-1] Sat Aug 3 16:40:00 2013 @@ -113,6 +113,42 @@ NTSTATUS +SampCheckPassword(IN SAMPR_HANDLE UserHandle, + IN PUNICODE_STRING Password) +{ + USER_DOMAIN_PASSWORD_INFORMATION DomainPasswordInformation; + ULONG PasswordLength; + NTSTATUS Status; + + TRACE("(%p %p)\n", UserHandle, Password); + + /* Get the domain password information */ + Status = SamrGetUserDomainPasswordInformation(UserHandle, + &DomainPasswordInformation); + if (!NT_SUCCESS(Status)) + { + TRACE("SamrGetUserDomainPasswordInformation failed (Status 0x%08lx)\n", Status); + return Status; + } + + PasswordLength = (ULONG)(Password->Length / sizeof(WCHAR)); + + /* Fail if the password is too short or too long */ + if ((PasswordLength < DomainPasswordInformation.MinPasswordLength) || + (PasswordLength > 256)) + return STATUS_PASSWORD_RESTRICTION; + + /* Check the password complexity */ + if (DomainPasswordInformation.PasswordProperties & DOMAIN_PASSWORD_COMPLEX) + { + /* FIXME */ + } + + return STATUS_SUCCESS; +} + + +NTSTATUS NTAPI SamAddMemberToAlias(IN SAM_HANDLE AliasHandle, IN PSID MemberId) @@ -1725,6 +1761,7 @@ { PSAMPR_USER_SET_PASSWORD_INFORMATION PasswordBuffer; SAMPR_USER_INTERNAL1_INFORMATION Internal1Buffer; + PUSER_ALL_INFORMATION AllBuffer; OEM_STRING LmPwdString; CHAR LmPwdBuffer[15]; NTSTATUS Status; @@ -1735,6 +1772,14 @@ if (UserInformationClass == UserSetPasswordInformation) { PasswordBuffer = (PSAMPR_USER_SET_PASSWORD_INFORMATION)Buffer; + + Status = SampCheckPassword(UserHandle, + (PUNICODE_STRING)&PasswordBuffer->Password); + if (!NT_SUCCESS(Status)) + { + TRACE("SampCheckPassword failed (Status 0x%08lx)\n", Status); + return Status; + } /* Calculate the NT hash value of the passord */ Status = SystemFunction007((PUNICODE_STRING)&PasswordBuffer->Password, @@ -1784,6 +1829,21 @@ { TRACE("SamrSetInformation() failed (Status 0x%08lx)\n", Status); return Status; + } + } + else if (UserInformationClass == UserAllInformation) + { + AllBuffer = (PUSER_ALL_INFORMATION)Buffer; + + if (AllBuffer->WhichFields & (USER_ALL_LMPASSWORDPRESENT | USER_ALL_NTPASSWORDPRESENT)) + { + Status = SampCheckPassword(UserHandle, + &AllBuffer->NtPassword); + if (!NT_SUCCESS(Status)) + { + TRACE("SampCheckPassword failed (Status 0x%08lx)\n", Status); + return Status; + } } }
11 years, 4 months
1
0
0
0
[akhaldi] 59627: [SAL] * Add _Deref_post_opt_z_, _Deref_pre_opt_z_ and _Deref_prepost_opt_z_ annotations.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Aug 3 14:36:11 2013 New Revision: 59627 URL:
http://svn.reactos.org/svn/reactos?rev=59627&view=rev
Log: [SAL] * Add _Deref_post_opt_z_, _Deref_pre_opt_z_ and _Deref_prepost_opt_z_ annotations. Modified: trunk/reactos/include/psdk/sal.h Modified: trunk/reactos/include/psdk/sal.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/sal.h?rev=596…
============================================================================== --- trunk/reactos/include/psdk/sal.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/sal.h [iso-8859-1] Sat Aug 3 14:36:11 2013 @@ -482,7 +482,7 @@ //#define _Deref_post_opt_valid_cap_(size) //#define _Deref_post_opt_valid_cap_c_(size) //#define _Deref_post_opt_valid_cap_x_(size) -//#define _Deref_post_opt_z_ +#define _Deref_post_opt_z_ _SAL11_NAME(_Deref_post_opt_z_) _Group_([SA_Post(Deref=1,Null=SA_Maybe,Notref=1)] [SA_Post(Deref=1,NullTerminated=SA_Yes)] [SA_Post(Valid=SA_Yes)]) //#define _Deref_post_opt_z_bytecap_(size) //#define _Deref_post_opt_z_bytecap_c_(size) //#define _Deref_post_opt_z_bytecap_x_(size) @@ -538,7 +538,7 @@ //#define _Deref_pre_opt_valid_cap_(size) //#define _Deref_pre_opt_valid_cap_c_(size) //#define _Deref_pre_opt_valid_cap_x_(size) -//#define _Deref_pre_opt_z_ +#define _Deref_pre_opt_z_ _SAL11_NAME(_Deref_pre_opt_z_) _Group_([SA_Pre(Deref=1,Null=SA_Maybe,Notref=1)] [SA_Pre(Deref=1,NullTerminated=SA_Yes)] [SA_Pre(Valid=SA_Yes)]) //#define _Deref_pre_opt_z_bytecap_(size) //#define _Deref_pre_opt_z_bytecap_c_(size) //#define _Deref_pre_opt_z_bytecap_x_(size) @@ -582,7 +582,7 @@ //#define _Deref_prepost_opt_valid_bytecap_x_(size) //#define _Deref_prepost_opt_valid_cap_(size) //#define _Deref_prepost_opt_valid_cap_x_(size) -//#define _Deref_prepost_opt_z_ +#define _Deref_prepost_opt_z_ _SAL11_NAME(_Deref_prepost_opt_z_) _Group_(_Deref_pre_opt_z_ _Deref_post_opt_z_) //#define _Deref_prepost_opt_z_bytecap_(size) //#define _Deref_prepost_opt_z_cap_(size) //#define _Deref_prepost_valid_
11 years, 4 months
1
0
0
0
[akhaldi] 59626: [DDK] * Annotate parallel.h.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Aug 3 14:11:37 2013 New Revision: 59626 URL:
http://svn.reactos.org/svn/reactos?rev=59626&view=rev
Log: [DDK] * Annotate parallel.h. Modified: trunk/reactos/include/ddk/parallel.h Modified: trunk/reactos/include/ddk/parallel.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/parallel.h?rev…
============================================================================== --- trunk/reactos/include/ddk/parallel.h [iso-8859-1] (original) +++ trunk/reactos/include/ddk/parallel.h [iso-8859-1] Sat Aug 3 14:11:37 2013 @@ -81,28 +81,28 @@ typedef NTSTATUS (NTAPI *PPARALLEL_SET_CHIP_MODE)( - IN PVOID SetChipContext, - IN UCHAR ChipMode); + _In_ PVOID SetChipContext, + _In_ UCHAR ChipMode); typedef NTSTATUS (NTAPI *PPARALLEL_CLEAR_CHIP_MODE)( - IN PVOID ClearChipContext, - IN UCHAR ChipMode); + _In_ PVOID ClearChipContext, + _In_ UCHAR ChipMode); typedef NTSTATUS (NTAPI *PPARCHIP_CLEAR_CHIP_MODE)( - IN PVOID ClearChipContext, - IN UCHAR ChipMode); + _In_ PVOID ClearChipContext, + _In_ UCHAR ChipMode); typedef NTSTATUS (NTAPI *PPARALLEL_TRY_SELECT_ROUTINE)( - IN PVOID TrySelectContext, - IN PVOID TrySelectCommand); + _In_ PVOID TrySelectContext, + _In_ PVOID TrySelectCommand); typedef NTSTATUS (NTAPI *PPARALLEL_DESELECT_ROUTINE)( - IN PVOID DeselectContext, - IN PVOID DeselectCommand); + _In_ PVOID DeselectContext, + _In_ PVOID DeselectCommand); /* PARALLEL_PNP_INFORMATION.HardwareCapabilities */ #define PPT_NO_HARDWARE_PRESENT 0x00000000 @@ -135,15 +135,15 @@ typedef BOOLEAN (NTAPI *PPARALLEL_TRY_ALLOCATE_ROUTINE)( - IN PVOID TryAllocateContext); + _In_ PVOID TryAllocateContext); typedef VOID (NTAPI *PPARALLEL_FREE_ROUTINE)( - IN PVOID FreeContext); + _In_ PVOID FreeContext); typedef ULONG (NTAPI *PPARALLEL_QUERY_WAITERS_ROUTINE)( - IN PVOID QueryAllocsContext); + _In_ PVOID QueryAllocsContext); typedef struct _PARALLEL_PORT_INFORMATION { PHYSICAL_ADDRESS OriginalController; @@ -166,7 +166,7 @@ typedef VOID (NTAPI *PPARALLEL_DEFERRED_ROUTINE)( - IN PVOID DeferredContext); + _In_ PVOID DeferredContext); typedef struct _PARALLEL_INTERRUPT_SERVICE_ROUTINE { PKSERVICE_ROUTINE InterruptServiceRoutine; @@ -193,7 +193,7 @@ typedef USHORT (NTAPI *PDETERMINE_IEEE_MODES)( - IN PVOID Context); + _In_ PVOID Context); typedef enum _PARALLEL_SAFETY { SAFE_MODE, @@ -202,49 +202,49 @@ typedef NTSTATUS (NTAPI *PNEGOTIATE_IEEE_MODE)( - IN PVOID Context, - IN USHORT ModeMaskFwd, - IN USHORT ModeMaskRev, - IN PARALLEL_SAFETY ModeSafety, - IN BOOLEAN IsForward); + _In_ PVOID Context, + _In_ USHORT ModeMaskFwd, + _In_ USHORT ModeMaskRev, + _In_ PARALLEL_SAFETY ModeSafety, + _In_ BOOLEAN IsForward); typedef NTSTATUS (NTAPI *PTERMINATE_IEEE_MODE)( - IN PVOID Context); + _In_ PVOID Context); typedef NTSTATUS (NTAPI *PPARALLEL_IEEE_FWD_TO_REV)( - IN PVOID Context); + _In_ PVOID Context); typedef NTSTATUS (NTAPI *PPARALLEL_IEEE_REV_TO_FWD)( - IN PVOID Context); + _In_ PVOID Context); typedef NTSTATUS (NTAPI *PPARALLEL_READ)( - IN PVOID Context, - OUT PVOID Buffer, - IN ULONG NumBytesToRead, - OUT PULONG NumBytesRead, - IN UCHAR Channel); + _In_ PVOID Context, + _Out_writes_bytes_to_(NumBytesToRead, *NumBytesRead) PVOID Buffer, + _In_ ULONG NumBytesToRead, + _Out_ PULONG NumBytesRead, + _In_ UCHAR Channel); typedef NTSTATUS (NTAPI *PPARALLEL_WRITE)( - IN PVOID Context, - OUT PVOID Buffer, - IN ULONG NumBytesToWrite, - OUT PULONG NumBytesWritten, - IN UCHAR Channel); + _In_ PVOID Context, + _In_reads_bytes_(NumBytesToWrite) PVOID Buffer, + _In_ ULONG NumBytesToWrite, + _Out_ PULONG NumBytesWritten, + _In_ UCHAR Channel); typedef NTSTATUS (NTAPI *PPARALLEL_TRYSELECT_DEVICE)( - IN PVOID Context, - IN PARALLEL_1284_COMMAND Command); + _In_ PVOID Context, + _In_ PARALLEL_1284_COMMAND Command); typedef NTSTATUS (NTAPI *PPARALLEL_DESELECT_DEVICE)( - IN PVOID Context, - IN PARALLEL_1284_COMMAND Command); + _In_ PVOID Context, + _In_ PARALLEL_1284_COMMAND Command); typedef struct _PARCLASS_INFORMATION { PUCHAR Controller;
11 years, 4 months
1
0
0
0
[akhaldi] 59625: [DDK] * Annotate punknown.h.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Aug 3 13:36:55 2013 New Revision: 59625 URL:
http://svn.reactos.org/svn/reactos?rev=59625&view=rev
Log: [DDK] * Annotate punknown.h. Modified: trunk/reactos/include/ddk/punknown.h Modified: trunk/reactos/include/ddk/punknown.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/punknown.h?rev…
============================================================================== --- trunk/reactos/include/ddk/punknown.h [iso-8859-1] (original) +++ trunk/reactos/include/ddk/punknown.h [iso-8859-1] Sat Aug 3 13:36:55 2013 @@ -39,8 +39,8 @@ DECLARE_INTERFACE(IUnknown) { STDMETHOD_(NTSTATUS, QueryInterface)( THIS_ - IN REFIID, - OUT PVOID*) PURE; + _In_ REFIID, + _COM_Outptr_ PVOID*) PURE; STDMETHOD_(ULONG, AddRef)( THIS ) PURE; @@ -73,9 +73,9 @@ typedef HRESULT (NTAPI *PFNCREATEINSTANCE)( - OUT PUNKNOWN* Unknown, - IN REFCLSID ClassId, - IN PUNKNOWN OuterUnknown, - IN POOL_TYPE PoolType); + _Out_ PUNKNOWN* Unknown, + _In_ REFCLSID ClassId, + _In_ PUNKNOWN OuterUnknown, + _In_ POOL_TYPE PoolType); #endif /* _UNKNOWN_H_ */
11 years, 4 months
1
0
0
0
[akhaldi] 59624: [SAL] * Add _Scanf_s_format_string_ annotation.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Aug 3 13:15:33 2013 New Revision: 59624 URL:
http://svn.reactos.org/svn/reactos?rev=59624&view=rev
Log: [SAL] * Add _Scanf_s_format_string_ annotation. Modified: trunk/reactos/include/psdk/sal.h Modified: trunk/reactos/include/psdk/sal.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/sal.h?rev=596…
============================================================================== --- trunk/reactos/include/psdk/sal.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/sal.h [iso-8859-1] Sat Aug 3 13:15:33 2013 @@ -1041,7 +1041,7 @@ //#define _Ret_z_count_(size) #define _Return_type_success_(expr) _SAL2_NAME(_Return_type_success_) _Group_([SA_Success(Condition=_SA_SPECSTRIZE(expr))]) #define _Scanf_format_string_ _SAL2_NAME(_Scanf_format_string_) _Group_([SA_FormatString(Style="scanf")]) -//#define _Scanf_s_format_string_ +#define _Scanf_s_format_string_ _SAL2_NAME(_Scanf_s_format_string_) _Group_([SA_FormatString(Style="scanf_s")]) #define _Struct_size_bytes_(size) _SAL2_NAME(_Struct_size_bytes_) _Group_(_Writable_bytes_(byteCount(size))) #define _Success_(expr) _SAL2_NAME(_Success_) _Group_([SA_Success(Condition=_SA_SPECSTRIZE(expr))]) #define _Unchanged_(expr) _SAL2_NAME(_Unchanged_) _Group_([SAL_at(p1=_SA_SPECSTRIZE(expr))] _Group_(_Post_equal_to_(expr) _Const_))
11 years, 4 months
1
0
0
0
[akhaldi] 59623: [DDK] * Annotate ws2san.h.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Aug 3 13:08:00 2013 New Revision: 59623 URL:
http://svn.reactos.org/svn/reactos?rev=59623&view=rev
Log: [DDK] * Annotate ws2san.h. Modified: trunk/reactos/include/ddk/ws2san.h Modified: trunk/reactos/include/ddk/ws2san.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/ws2san.h?rev=5…
============================================================================== --- trunk/reactos/include/ddk/ws2san.h [iso-8859-1] (original) +++ trunk/reactos/include/ddk/ws2san.h [iso-8859-1] Sat Aug 3 13:08:00 2013 @@ -22,6 +22,7 @@ #pragma once +#ifndef _WS2SAN_H_ #define _WS2SAN_H_ #ifdef __cplusplus @@ -79,172 +80,186 @@ typedef struct _WSABUFEX { u_long len; - char FAR *buf; + _Field_size_bytes_(len) char FAR *buf; HANDLE handle; } WSABUFEX, FAR * LPWSABUFEX; -typedef int +typedef +_Must_inspect_result_ +int (WSPAPI *LPWSPSTARTUPEX)( - IN WORD wVersionRequested, - OUT LPWSPDATA lpWSPData, - IN LPWSAPROTOCOL_INFOW lpProtocolInfo, - IN LPWSPUPCALLTABLEEX lpUpcallTable, - OUT LPWSPPROC_TABLE lpProcTable); - -typedef HANDLE + _In_ WORD wVersionRequested, + _Out_ LPWSPDATA lpWSPData, + _In_ LPWSAPROTOCOL_INFOW lpProtocolInfo, + _In_ LPWSPUPCALLTABLEEX lpUpcallTable, + _Out_ LPWSPPROC_TABLE lpProcTable); + +typedef +_Must_inspect_result_ +HANDLE (WSPAPI *LPFN_WSPREGISTERMEMORY)( - IN SOCKET s, - IN PVOID lpBuffer, - IN DWORD dwBufferLength, - IN DWORD dwFlags, - OUT LPINT lpErrno); + _In_ SOCKET s, + _In_reads_bytes_(dwBufferLength) PVOID lpBuffer, + _In_ DWORD dwBufferLength, + _In_ DWORD dwFlags, + _Out_ LPINT lpErrno); typedef int (WSPAPI *LPFN_WSPDEREGISTERMEMORY)( - IN SOCKET s, - IN HANDLE Handle, - OUT LPINT lpErrno); - -typedef int + _In_ SOCKET s, + _In_ HANDLE Handle, + _Out_ LPINT lpErrno); + +typedef +_Must_inspect_result_ +int (WSPAPI *LPFN_WSPREGISTERRDMAMEMORY)( - IN SOCKET s, - IN PVOID lpBuffer, - IN DWORD dwBufferLength, - IN DWORD dwFlags, - OUT LPVOID lpRdmaBufferDescriptor, - IN OUT LPDWORD lpdwDescriptorLength, - OUT LPINT lpErrno); + _In_ SOCKET s, + _In_reads_bytes_(dwBufferLength) PVOID lpBuffer, + _In_ DWORD dwBufferLength, + _In_ DWORD dwFlags, + _Out_writes_bytes_(*lpdwDescriptorLength) LPVOID lpRdmaBufferDescriptor, + _Inout_ LPDWORD lpdwDescriptorLength, + _Out_ LPINT lpErrno); typedef int (WSPAPI *LPFN_WSPDEREGISTERRDMAMEMORY)( - IN SOCKET s, - IN LPVOID lpRdmaBufferDescriptor, - IN DWORD dwDescriptorLength, - OUT LPINT lpErrno); + _In_ SOCKET s, + _In_reads_bytes_(dwDescriptorLength) LPVOID lpRdmaBufferDescriptor, + _In_ DWORD dwDescriptorLength, + _Out_ LPINT lpErrno); typedef int (WSPAPI *LPFN_WSPRDMAWRITE)( - IN SOCKET s, - IN LPWSABUFEX lpBuffers, - IN DWORD dwBufferCount, - IN LPVOID lpTargetBufferDescriptor, - IN DWORD dwTargetDescriptorLength, - IN DWORD dwTargetBufferOffset, - OUT LPDWORD lpdwNumberOfBytesWritten, - IN DWORD dwFlags, - IN LPWSAOVERLAPPED lpOverlapped OPTIONAL, - IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL, - IN LPWSATHREADID lpThreadId, - OUT LPINT lpErrno); + _In_ SOCKET s, + _In_reads_(dwBufferCount) LPWSABUFEX lpBuffers, + _In_ DWORD dwBufferCount, + _In_reads_bytes_(dwTargetDescriptorLength) LPVOID lpTargetBufferDescriptor, + _In_ DWORD dwTargetDescriptorLength, + _In_ DWORD dwTargetBufferOffset, + _Out_ LPDWORD lpdwNumberOfBytesWritten, + _In_ DWORD dwFlags, + _In_opt_ LPWSAOVERLAPPED lpOverlapped, + _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, + _In_ LPWSATHREADID lpThreadId, + _Out_ LPINT lpErrno); typedef int (WSPAPI *LPFN_WSPRDMAREAD)( - IN SOCKET s, - IN LPWSABUFEX lpBuffers, - IN DWORD dwBufferCount, - IN LPVOID lpTargetBufferDescriptor, - IN DWORD dwTargetDescriptorLength, - IN DWORD dwTargetBufferOffset, - OUT LPDWORD lpdwNumberOfBytesRead, - IN DWORD dwFlags, - IN LPWSAOVERLAPPED lpOverlapped OPTIONAL, - IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL, - IN LPWSATHREADID lpThreadId, - OUT LPINT lpErrno); + _In_ SOCKET s, + _In_reads_(dwBufferCount) LPWSABUFEX lpBuffers, + _In_ DWORD dwBufferCount, + _In_reads_bytes_(dwTargetDescriptorLength) LPVOID lpTargetBufferDescriptor, + _In_ DWORD dwTargetDescriptorLength, + _In_ DWORD dwTargetBufferOffset, + _Out_ LPDWORD lpdwNumberOfBytesRead, + _In_ DWORD dwFlags, + _In_opt_ LPWSAOVERLAPPED lpOverlapped, + _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, + _In_ LPWSATHREADID lpThreadId, + _Out_ LPINT lpErrno); #if(_WIN32_WINNT >= 0x0501) -typedef int +typedef +_Must_inspect_result_ +int (WSPAPI *LPFN_WSPMEMORYREGISTRATIONCACHECALLBACK)( - IN PVOID lpvAddress, - IN SIZE_T Size, - OUT LPINT lpErrno); -#endif - + _In_reads_bytes_(Size) PVOID lpvAddress, + _In_ SIZE_T Size, + _Out_ LPINT lpErrno); +#endif + +_Must_inspect_result_ int WSPAPI WSPStartupEx( - IN WORD wVersionRequested, - OUT LPWSPDATA lpWSPData, - IN LPWSAPROTOCOL_INFOW lpProtocolInfo, - IN LPWSPUPCALLTABLEEX lpUpcallTable, - OUT LPWSPPROC_TABLE lpProcTable); - + _In_ WORD wVersionRequested, + _Out_ LPWSPDATA lpWSPData, + _In_ LPWSAPROTOCOL_INFOW lpProtocolInfo, + _In_ LPWSPUPCALLTABLEEX lpUpcallTable, + _Out_ LPWSPPROC_TABLE lpProcTable); + +_Must_inspect_result_ HANDLE WSPAPI WSPRegisterMemory( - IN SOCKET s, - IN PVOID lpBuffer, - IN DWORD dwBufferLength, - IN DWORD dwFlags, - OUT LPINT lpErrno); + _In_ SOCKET s, + _In_reads_bytes_(dwBufferLength) PVOID lpBuffer, + _In_ DWORD dwBufferLength, + _In_ DWORD dwFlags, + _Out_ LPINT lpErrno); int WSPAPI WSPDeregisterMemory( - IN SOCKET s, - IN HANDLE Handle, - OUT LPINT lpErrno); - + _In_ SOCKET s, + _In_ HANDLE Handle, + _Out_ LPINT lpErrno); + +_Must_inspect_result_ int WSPAPI WSPRegisterRdmaMemory( - IN SOCKET s, - IN PVOID lpBuffer, - IN DWORD dwBufferLength, - IN DWORD dwFlags, - OUT LPVOID lpRdmaBufferDescriptor, - IN OUT LPDWORD lpdwDescriptorLength, - OUT LPINT lpErrno); + _In_ SOCKET s, + _In_reads_bytes_(dwBufferLength) PVOID lpBuffer, + _In_ DWORD dwBufferLength, + _In_ DWORD dwFlags, + _Out_writes_bytes_(*lpdwDescriptorLength) LPVOID lpRdmaBufferDescriptor, + _Inout_ LPDWORD lpdwDescriptorLength, + _Out_ LPINT lpErrno); int WSPAPI WSPDeregisterRdmaMemory( - IN SOCKET s, - IN LPVOID lpRdmaBufferDescriptor, - IN DWORD dwDescriptorLength, - OUT LPINT lpErrno); + _In_ SOCKET s, + _In_reads_bytes_(dwDescriptorLength) LPVOID lpRdmaBufferDescriptor, + _In_ DWORD dwDescriptorLength, + _Out_ LPINT lpErrno); int WSPAPI WSPRdmaWrite( - IN SOCKET s, - IN LPWSABUFEX lpBuffers, - IN DWORD dwBufferCount, - IN LPVOID lpTargetBufferDescriptor, - IN DWORD dwTargetDescriptorLength, - IN DWORD dwTargetBufferOffset, - OUT LPDWORD lpdwNumberOfBytesWritten, - IN DWORD dwFlags, - IN LPWSAOVERLAPPED lpOverlapped OPTIONAL, - IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL, - IN LPWSATHREADID lpThreadId, - OUT LPINT lpErrno); + _In_ SOCKET s, + _In_reads_(dwBufferCount) LPWSABUFEX lpBuffers, + _In_ DWORD dwBufferCount, + _In_reads_bytes_(dwTargetDescriptorLength) LPVOID lpTargetBufferDescriptor, + _In_ DWORD dwTargetDescriptorLength, + _In_ DWORD dwTargetBufferOffset, + _Out_ LPDWORD lpdwNumberOfBytesWritten, + _In_ DWORD dwFlags, + _In_opt_ LPWSAOVERLAPPED lpOverlapped, + _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, + _In_ LPWSATHREADID lpThreadId, + _Out_ LPINT lpErrno); int WSPAPI WSPRdmaRead( - IN SOCKET s, - IN LPWSABUFEX lpBuffers, - IN DWORD dwBufferCount, - IN LPVOID lpTargetBufferDescriptor, - IN DWORD dwTargetDescriptorLength, - IN DWORD dwTargetBufferOffset, - OUT LPDWORD lpdwNumberOfBytesRead, - IN DWORD dwFlags, - IN LPWSAOVERLAPPED lpOverlapped OPTIONAL, - IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL, - IN LPWSATHREADID lpThreadId, - OUT LPINT lpErrno); + _In_ SOCKET s, + _In_reads_(dwBufferCount) LPWSABUFEX lpBuffers, + _In_ DWORD dwBufferCount, + _In_reads_bytes_(dwTargetDescriptorLength) LPVOID lpTargetBufferDescriptor, + _In_ DWORD dwTargetDescriptorLength, + _In_ DWORD dwTargetBufferOffset, + _Out_ LPDWORD lpdwNumberOfBytesRead, + _In_ DWORD dwFlags, + _In_opt_ LPWSAOVERLAPPED lpOverlapped, + _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, + _In_ LPWSATHREADID lpThreadId, + _Out_ LPINT lpErrno); #if(_WIN32_WINNT >= 0x0501) +_Must_inspect_result_ int WSPAPI WSPMemoryRegistrationCacheCallback( - IN PVOID lpvAddress, - IN SIZE_T Size, - OUT LPINT lpErrno); + _In_reads_bytes_(Size) PVOID lpvAddress, + _In_ SIZE_T Size, + _Out_ LPINT lpErrno); #endif #ifdef __cplusplus } #endif + +#endif /* _WS2SAN_H_ */
11 years, 4 months
1
0
0
0
← Newer
1
...
28
29
30
31
32
33
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Results per page:
10
25
50
100
200