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
November 2015
----- 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
14 participants
457 discussions
Start a n
N
ew thread
[spetreolle] 69794: [USBUHCI] Too much DPRINT1 is too much. No code changes.
by spetreolle@svn.reactos.org
Author: spetreolle Date: Tue Nov 3 15:45:50 2015 New Revision: 69794 URL:
http://svn.reactos.org/svn/reactos?rev=69794&view=rev
Log: [USBUHCI] Too much DPRINT1 is too much. No code changes. Modified: trunk/reactos/drivers/usb/usbuhci/hardware.cpp Modified: trunk/reactos/drivers/usb/usbuhci/hardware.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/hardwa…
============================================================================== --- trunk/reactos/drivers/usb/usbuhci/hardware.cpp [iso-8859-1] (original) +++ trunk/reactos/drivers/usb/usbuhci/hardware.cpp [iso-8859-1] Tue Nov 3 15:45:50 2015 @@ -166,7 +166,7 @@ NTSTATUS Status; ULONG BytesRead; - DPRINT1("CUSBHardwareDevice::Initialize\n"); + DPRINT("CUSBHardwareDevice::Initialize\n"); // // Create DMAMemoryManager for use with QueueHeads and Transfer Descriptors. @@ -252,7 +252,7 @@ DEVICE_DESCRIPTION DeviceDescription; NTSTATUS Status; - DPRINT1("CUSBHardwareDevice::PnpStart\n"); + DPRINT("CUSBHardwareDevice::PnpStart\n"); for(Index = 0; Index < TranslatedResources->List[0].PartialResourceList.Count; Index++) { // @@ -296,7 +296,7 @@ // Store Resource base // m_Base = (PULONG)ResourceDescriptor->u.Port.Start.LowPart; //FIXME - DPRINT1("UHCI Base %p Length %x\n", m_Base, ResourceDescriptor->u.Port.Length); + DPRINT("UHCI Base %p Length %x\n", m_Base, ResourceDescriptor->u.Port.Length); break; } } @@ -380,7 +380,7 @@ // // Start the controller // - DPRINT1("Starting Controller\n"); + DPRINT("Starting Controller\n"); Status = StartController(); @@ -469,7 +469,7 @@ // // debug info // - DPRINT1("[USBUHCI] USBCMD: %x USBSTS %x\n", ReadRegister16(UHCI_USBCMD), ReadRegister16(UHCI_USBSTS)); + DPRINT("[USBUHCI] USBCMD: %x USBSTS %x\n", ReadRegister16(UHCI_USBCMD), ReadRegister16(UHCI_USBSTS)); // // Set the run bit in the command register @@ -487,7 +487,7 @@ // get controller status // Status = ReadRegister16(UHCI_USBSTS); - DPRINT1("[USBUHCI] Status %x\n", Status); + DPRINT("[USBUHCI] Status %x\n", Status); if (!(Status & UHCI_USBSTS_HCHALT)) { @@ -498,7 +498,7 @@ } } - DPRINT1("[USBUHCI] USBCMD: %x USBSTS %x\n", ReadRegister16(UHCI_USBCMD), ReadRegister16(UHCI_USBSTS)); + DPRINT("[USBUHCI] USBCMD: %x USBSTS %x\n", ReadRegister16(UHCI_USBCMD), ReadRegister16(UHCI_USBSTS)); if ((Status & UHCI_USBSTS_HCHALT)) @@ -529,13 +529,13 @@ WriteRegister16(UHCI_PORTSC1 + Index * 2, Status & ~(UHCI_PORTSC_STATCHA | UHCI_PORTSC_SUSPEND)); } - DPRINT1("[USBUHCI] Controller Started\n"); - DPRINT1("[USBUHCI] Controller Status %x\n", ReadRegister16(UHCI_USBSTS)); - DPRINT1("[USBUHCI] Controller Cmd Status %x\n", ReadRegister16(UHCI_USBCMD)); - DPRINT1("[USBUHCI] Controller Interrupt Status %x\n", ReadRegister16(UHCI_USBINTR)); - DPRINT1("[USBUHCI] Controller Frame %x\n", ReadRegister16(UHCI_FRNUM)); - DPRINT1("[USBUHCI] Controller Port Status 0 %x\n", ReadRegister16(UHCI_PORTSC1)); - DPRINT1("[USBUHCI] Controller Port Status 1 %x\n", ReadRegister16(UHCI_PORTSC1 + 2)); + DPRINT("[USBUHCI] Controller Started\n"); + DPRINT("[USBUHCI] Controller Status %x\n", ReadRegister16(UHCI_USBSTS)); + DPRINT("[USBUHCI] Controller Cmd Status %x\n", ReadRegister16(UHCI_USBCMD)); + DPRINT("[USBUHCI] Controller Interrupt Status %x\n", ReadRegister16(UHCI_USBINTR)); + DPRINT("[USBUHCI] Controller Frame %x\n", ReadRegister16(UHCI_FRNUM)); + DPRINT("[USBUHCI] Controller Port Status 0 %x\n", ReadRegister16(UHCI_PORTSC1)); + DPRINT("[USBUHCI] Controller Port Status 1 %x\n", ReadRegister16(UHCI_PORTSC1 + 2)); // queue timer @@ -570,7 +570,7 @@ // delay is 10 ms // Timeout.QuadPart = 10; - DPRINT1("Waiting %lu milliseconds for global reset\n", Timeout.LowPart); + DPRINT("Waiting %lu milliseconds for global reset\n", Timeout.LowPart); // // convert to 100 ns units (absolute) @@ -604,7 +604,7 @@ USHORT Value; PHYSICAL_ADDRESS Address; - DPRINT1("[USBUHCI] InitializeController\n"); + DPRINT("[USBUHCI] InitializeController\n"); // // now disable all interrupts @@ -632,15 +632,15 @@ // Value = 0; BusInterface.GetBusData(BusInterface.Context, PCI_WHICHSPACE_CONFIG, &Value, PCI_LEGSUP, sizeof(USHORT)); - DPRINT1("[USBUHCI] LEGSUP %x\n", Value); + DPRINT("[USBUHCI] LEGSUP %x\n", Value); Value = PCI_LEGSUP_USBPIRQDEN; BusInterface.SetBusData(BusInterface.Context, PCI_WHICHSPACE_CONFIG, &Value, PCI_LEGSUP, sizeof(USHORT)); - DPRINT1("[USBUHCI] Acquired ownership\n"); + DPRINT("[USBUHCI] Acquired ownership\n"); Value = 0; BusInterface.GetBusData(BusInterface.Context, PCI_WHICHSPACE_CONFIG, &Value, 0x60, sizeof(UCHAR)); - DPRINT1("[USBUHCI] SBRN %x\n", Value); + DPRINT("[USBUHCI] SBRN %x\n", Value); // // perform global reset @@ -724,7 +724,7 @@ } } - DPRINT1("Index %d QueueHead %p LinkPhysical %x ElementPhysical %x PhysicalAddress %x Request %p NextElementDescriptor %p\n", + DPRINT("Index %d QueueHead %p LinkPhysical %x ElementPhysical %x PhysicalAddress %x Request %p NextElementDescriptor %p\n", 0, m_QueueHead[0], m_QueueHead[0]->LinkPhysical, @@ -732,7 +732,7 @@ m_QueueHead[0]->PhysicalAddress, m_QueueHead[0]->Request, m_QueueHead[0]->NextElementDescriptor); - DPRINT1("Index %d QueueHead %p LinkPhysical %x ElementPhysical %x PhysicalAddress %x Request %p NextElementDescriptor %p\n", + DPRINT("Index %d QueueHead %p LinkPhysical %x ElementPhysical %x PhysicalAddress %x Request %p NextElementDescriptor %p\n", 1, m_QueueHead[1], m_QueueHead[1]->LinkPhysical, @@ -741,7 +741,7 @@ m_QueueHead[1]->Request, m_QueueHead[1]->NextElementDescriptor); - DPRINT1("Index %d QueueHead %p LinkPhysical %x ElementPhysical %x PhysicalAddress %x Request %p NextElementDescriptor %p\n", + DPRINT("Index %d QueueHead %p LinkPhysical %x ElementPhysical %x PhysicalAddress %x Request %p NextElementDescriptor %p\n", 2, m_QueueHead[2], m_QueueHead[2]->LinkPhysical, @@ -749,7 +749,7 @@ m_QueueHead[2]->PhysicalAddress, m_QueueHead[2]->Request, m_QueueHead[2]->NextElementDescriptor); - DPRINT1("Index %d QueueHead %p LinkPhysical %x ElementPhysical %x PhysicalAddress %x Request %p NextElementDescriptor %p\n", + DPRINT("Index %d QueueHead %p LinkPhysical %x ElementPhysical %x PhysicalAddress %x Request %p NextElementDescriptor %p\n", 3, m_QueueHead[3], m_QueueHead[3]->LinkPhysical, @@ -757,7 +757,7 @@ m_QueueHead[3]->PhysicalAddress, m_QueueHead[3]->Request, m_QueueHead[3]->NextElementDescriptor); - DPRINT1("Index %d QueueHead %p LinkPhysical %x ElementPhysical %x PhysicalAddress %x Request %p NextElementDescriptor %p\n", + DPRINT("Index %d QueueHead %p LinkPhysical %x ElementPhysical %x PhysicalAddress %x Request %p NextElementDescriptor %p\n", 4, m_QueueHead[4], m_QueueHead[4]->LinkPhysical, @@ -831,7 +831,7 @@ // WriteRegister16(UHCI_USBINTR, UHCI_USBINTR_CRC | UHCI_USBINTR_IOC| UHCI_USBINTR_SHORT); - DPRINT1("[USBUHCI] Controller initialized\n"); + DPRINT("[USBUHCI] Controller initialized\n"); return STATUS_SUCCESS; } @@ -857,7 +857,7 @@ // wait for the controller to stop while((ReadRegister16(UHCI_USBSTS) & UHCI_USBSTS_HCHALT) == 0) { - DPRINT1("[UHCI] Waiting for the controller to halt\n"); + DPRINT("[UHCI] Waiting for the controller to halt\n"); KeStallExecutionProcessor(10); } @@ -902,7 +902,7 @@ ULONG Index; LARGE_INTEGER Timeout; - DPRINT1("[UHCI] ResetPort Id %lu\n", PortIndex); + DPRINT("[UHCI] ResetPort Id %lu\n", PortIndex); // // sanity check @@ -935,7 +935,7 @@ // delay is 20 ms for port reset // Timeout.QuadPart = 20; - DPRINT1("Waiting %lu milliseconds for port reset\n", Timeout.LowPart); + DPRINT("Waiting %lu milliseconds for port reset\n", Timeout.LowPart); // // convert to 100 ns units (absolute) @@ -1012,7 +1012,7 @@ } m_PortResetChange |= (1 << PortIndex); - DPRINT1("[USBUhci] Port Index %x Status after reset %x\n", PortIndex, ReadRegister16(Port)); + DPRINT("[USBUHCI] Port Index %x Status after reset %x\n", PortIndex, ReadRegister16(Port)); // // is there a callback @@ -1158,7 +1158,7 @@ { ULONG PortRegister; - DPRINT1("[UHCI] SetPortFeature PortId %x Feature %x\n", PortId, Feature); + DPRINT("[UHCI] SetPortFeature PortId %x Feature %x\n", PortId, Feature); // // sanity check @@ -1268,7 +1268,7 @@ // error interrupt // Acknowledge |= UHCI_USBSTS_ERRINT; - DPRINT1("[UHCI] Error interrupt\n"); + DPRINT("[UHCI] Error interrupt\n"); } if (Status & UHCI_USBSTS_RESDET) @@ -1276,7 +1276,7 @@ // // resume detected // - DPRINT1("[UHCI] Resume detected\n"); + DPRINT("[UHCI] Resume detected\n"); Acknowledge |= UHCI_USBSTS_RESDET; } @@ -1285,7 +1285,7 @@ // // host system error // - DPRINT1("[UHCI] Host System Error\n"); + DPRINT("[UHCI] Host System Error\n"); Acknowledge |= UHCI_USBSTS_HOSTERR; } @@ -1294,7 +1294,7 @@ // // processing error // - DPRINT1("[UHCI] Process Error\n"); + DPRINT("[UHCI] Process Error\n"); Acknowledge |= UHCI_USBSTS_HCPRERR; } @@ -1303,7 +1303,7 @@ // // controller halted // - DPRINT1("[UHCI] Host controller halted\n"); + DPRINT("[UHCI] Host controller halted\n"); // // disable interrupts @@ -1346,7 +1346,7 @@ VOID CUSBHardwareDevice::WriteRegister16( - ULONG Register, + ULONG Register, USHORT Value) { WRITE_PORT_USHORT((PUSHORT)((ULONG)m_Base + Register), Value);
9 years, 1 month
1
0
0
0
[jimtabor] 69793: [Win32SS] - Simplify and restructure thread send messages, use look aside list, message signals and global message link for sorting trouble messages. - See CORE-9210 for more info...
by jimtabor@svn.reactos.org
Author: jimtabor Date: Tue Nov 3 15:18:51 2015 New Revision: 69793 URL:
http://svn.reactos.org/svn/reactos?rev=69793&view=rev
Log: [Win32SS] - Simplify and restructure thread send messages, use look aside list, message signals and global message link for sorting trouble messages. - See CORE-9210 for more information. Related to and fixed CORE-9718 and CORE-9975. Could have fixed CORE-9695. Modified: trunk/reactos/win32ss/user/ntuser/callback.c trunk/reactos/win32ss/user/ntuser/focus.c trunk/reactos/win32ss/user/ntuser/main.c trunk/reactos/win32ss/user/ntuser/message.c trunk/reactos/win32ss/user/ntuser/msgqueue.c trunk/reactos/win32ss/user/ntuser/msgqueue.h trunk/reactos/win32ss/user/ntuser/win32.h Modified: trunk/reactos/win32ss/user/ntuser/callback.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/callba…
============================================================================== --- trunk/reactos/win32ss/user/ntuser/callback.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/callback.c [iso-8859-1] Tue Nov 3 15:18:51 2015 @@ -51,12 +51,18 @@ PINT_CALLBACK_HEADER Mem; PTHREADINFO W32Thread; - ASSERT(Data); - - Mem = ((PINT_CALLBACK_HEADER)Data - 1); - W32Thread = PsGetCurrentThreadWin32Thread(); ASSERT(W32Thread); + + if (W32Thread->TIF_flags & TIF_INCLEANUP) + { + ERR("CbFM Thread is already in cleanup\n"); + return; + } + + ASSERT(Data); + + Mem = ((PINT_CALLBACK_HEADER)Data - 1); /* Remove the memory block from the thread's callback list */ RemoveEntryList(&Mem->ListEntry); @@ -340,8 +346,9 @@ &ResultLength); if (!NT_SUCCESS(Status)) { + ERR("Error Callback to User space Status %lx\n",Status); UserEnterCo(); - return -1; + return 0; } _SEH2_TRY Modified: trunk/reactos/win32ss/user/ntuser/focus.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/focus.…
============================================================================== --- trunk/reactos/win32ss/user/ntuser/focus.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/focus.c [iso-8859-1] Tue Nov 3 15:18:51 2015 @@ -340,7 +340,13 @@ WARN("ASYNC SAW: Found one in the Sent Msg Queue! %p Activate/Deactivate %d\n", Message->Msg.hwnd, !!wParam); RemoveEntryList(&Message->ListEntry); // Purge the entry. ClearMsgBitsMask(pti, Message->QS_Flags); - ExFreePoolWithTag(Message, TAG_USRMSG); + InsertTailList(&usmList, &Message->ListEntry); + /* Notify the sender. */ + if (Message->pkCompletionEvent != NULL) + { + KeSetEvent(Message->pkCompletionEvent, IO_NO_INCREMENT, FALSE); + } + FreeUserMessage(Message); } } } @@ -929,7 +935,7 @@ { if (Window->head.pti->MessageQueue != ThreadQueue) { - ERR("Window Thread dos not match Current!\n"); + ERR("Window Thread does not match Current!\n"); return NULL; } } Modified: trunk/reactos/win32ss/user/ntuser/main.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/main.c…
============================================================================== --- trunk/reactos/win32ss/user/ntuser/main.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/main.c [iso-8859-1] Tue Nov 3 15:18:51 2015 @@ -488,8 +488,6 @@ InitializeListHead(&ptiCurrent->W32CallbackListHead); InitializeListHead(&ptiCurrent->PostedMessagesListHead); InitializeListHead(&ptiCurrent->SentMessagesListHead); - InitializeListHead(&ptiCurrent->DispatchingMessagesHead); - InitializeListHead(&ptiCurrent->LocalDispatchingMessagesHead); InitializeListHead(&ptiCurrent->PtiLink); for (i = 0; i < NB_HOOKS; i++) { @@ -776,6 +774,12 @@ psle = PopEntryList(&ptiCurrent->ReferencesList); } + } + + if (ptiCurrent->cEnterCount) + { + KeSetKernelStackSwapEnable(TRUE); + ptiCurrent->cEnterCount = 0; } /* Find the THREADINFO in the PROCESSINFO's list */ Modified: trunk/reactos/win32ss/user/ntuser/message.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/messag…
============================================================================== --- trunk/reactos/win32ss/user/ntuser/message.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/message.c [iso-8859-1] Tue Nov 3 15:18:51 2015 @@ -1278,7 +1278,7 @@ LPARAM lParam ) { ULONG_PTR Result = 0; - if(co_IntSendMessageTimeout(hWnd, Msg, wParam, lParam, SMTO_NORMAL, 0, &Result)) + if (co_IntSendMessageTimeout(hWnd, Msg, wParam, lParam, SMTO_NORMAL, 0, &Result)) { return (LRESULT)Result; } @@ -1399,7 +1399,7 @@ wParam, lParamPacked, lParamBufferSize ); - if(uResult) + if (uResult) { *uResult = Result; } @@ -1697,7 +1697,7 @@ RETURN(TRUE); } - if(!(Message = ExAllocatePoolWithTag(NonPagedPool, sizeof(USER_SENT_MESSAGE), TAG_USRMSG))) + if(!(Message = AllocateUserMessage(FALSE))) { ERR("MsqSendMessage(): Not enough memory to allocate a message"); RETURN( FALSE); @@ -1707,19 +1707,18 @@ Message->Msg.message = Msg; Message->Msg.wParam = wParam; Message->Msg.lParam = lParamPacked; - Message->CompletionEvent = NULL; - Message->Result = 0; + Message->pkCompletionEvent = NULL; // No event needed. Message->lResult = 0; Message->QS_Flags = 0; Message->ptiReceiver = ptiSendTo; Message->ptiSender = NULL; // mjmartin, you are right! This is null. Message->ptiCallBackSender = Win32Thread; - InitializeListHead(&Message->DispatchingListEntry); Message->CompletionCallback = CompletionCallback; Message->CompletionCallbackContext = CompletionCallbackContext; Message->HookMessage = MSQ_NORMAL; Message->HasPackedLParam = (lParamBufferSize > 0); Message->QS_Flags = QS_SENDMESSAGE; + Message->flags = SMF_RECEIVERFREE; if (Msg & 0x80000000) // Higher priority event message! InsertHeadList(&ptiSendTo->SentMessagesListHead, &Message->ListEntry); @@ -2723,14 +2722,15 @@ break; case FNID_SENDMESSAGE: { - Ret = co_IntDoSendMessage(hWnd, Msg, wParam, lParam, 0); + lResult = co_IntDoSendMessage(hWnd, Msg, wParam, lParam, 0); + Ret = TRUE; if (ResultInfo) { _SEH2_TRY { ProbeForWrite((PVOID)ResultInfo, sizeof(ULONG_PTR), 1); - RtlCopyMemory((PVOID)ResultInfo, &Ret, sizeof(ULONG_PTR)); + RtlCopyMemory((PVOID)ResultInfo, &lResult, sizeof(ULONG_PTR)); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { Modified: trunk/reactos/win32ss/user/ntuser/msgqueue.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/msgque…
============================================================================== --- trunk/reactos/win32ss/user/ntuser/msgqueue.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/msgqueue.c [iso-8859-1] Tue Nov 3 15:18:51 2015 @@ -14,10 +14,12 @@ /* GLOBALS *******************************************************************/ static PPAGED_LOOKASIDE_LIST pgMessageLookasideList; +static PPAGED_LOOKASIDE_LIST pgSendMsgLookasideList; +INT SendMsgCount = 0; PUSER_MESSAGE_QUEUE gpqCursor; ULONG_PTR gdwMouseMoveExtraInfo = 0; DWORD gdwMouseMoveTimeStamp = 0; - +LIST_ENTRY usmList; /* FUNCTIONS *****************************************************************/ @@ -26,6 +28,7 @@ NTAPI MsqInitializeImpl(VOID) { + // Setup Post Messages pgMessageLookasideList = ExAllocatePoolWithTag(NonPagedPool, sizeof(PAGED_LOOKASIDE_LIST), TAG_USRMSG); if (!pgMessageLookasideList) return STATUS_NO_MEMORY; @@ -36,6 +39,19 @@ sizeof(USER_MESSAGE), TAG_USRMSG, 256); + // Setup Send Messages + pgSendMsgLookasideList = ExAllocatePoolWithTag(NonPagedPool, sizeof(PAGED_LOOKASIDE_LIST), TAG_USRMSG); + if (!pgSendMsgLookasideList) + return STATUS_NO_MEMORY; + ExInitializePagedLookasideList(pgSendMsgLookasideList, + NULL, + NULL, + 0, + sizeof(USER_SENT_MESSAGE), + TAG_USRMSG, + 16); + + InitializeListHead(&usmList); return(STATUS_SUCCESS); } @@ -743,6 +759,115 @@ ExFreeToPagedLookasideList(pgMessageLookasideList, Message); } +PUSER_SENT_MESSAGE FASTCALL +AllocateUserMessage(BOOL KEvent) +{ + PUSER_SENT_MESSAGE Message; + + if(!(Message = ExAllocateFromPagedLookasideList(pgSendMsgLookasideList))) + { + ERR("AllocateUserMessage(): Not enough memory to allocate a message"); + return NULL; + } + RtlZeroMemory(Message, sizeof(USER_SENT_MESSAGE)); + + if (KEvent) + { + Message->pkCompletionEvent = &Message->CompletionEvent;; + + KeInitializeEvent(Message->pkCompletionEvent, NotificationEvent, FALSE); + } + SendMsgCount++; + //ERR("AUM pti %p msg %p\n",PsGetCurrentThreadWin32Thread(),Message); + return Message; +} + +VOID FASTCALL +FreeUserMessage(PUSER_SENT_MESSAGE Message) +{ + Message->pkCompletionEvent = NULL; + + /* Remove it from the list */ + RemoveEntryList(&Message->ListEntry); + + ExFreeToPagedLookasideList(pgMessageLookasideList, Message); + SendMsgCount--; +} + +VOID APIENTRY +MsqRemoveWindowMessagesFromQueue(PWND Window) +{ + PTHREADINFO pti; + PUSER_SENT_MESSAGE SentMessage; + PUSER_MESSAGE PostedMessage; + PLIST_ENTRY CurrentEntry, ListHead; + + ASSERT(Window); + + pti = Window->head.pti; + + /* remove the posted messages for this window */ + CurrentEntry = pti->PostedMessagesListHead.Flink; + ListHead = &pti->PostedMessagesListHead; + while (CurrentEntry != ListHead) + { + PostedMessage = CONTAINING_RECORD(CurrentEntry, USER_MESSAGE, ListEntry); + + if (PostedMessage->Msg.hwnd == Window->head.h) + { + if (PostedMessage->Msg.message == WM_QUIT && pti->QuitPosted == 0) + { + pti->QuitPosted = 1; + pti->exitCode = PostedMessage->Msg.wParam; + } + RemoveEntryList(&PostedMessage->ListEntry); + ClearMsgBitsMask(pti, PostedMessage->QS_Flags); + MsqDestroyMessage(PostedMessage); + CurrentEntry = pti->PostedMessagesListHead.Flink; + } + else + { + CurrentEntry = CurrentEntry->Flink; + } + } + + /* remove the sent messages for this window */ + CurrentEntry = pti->SentMessagesListHead.Flink; + ListHead = &pti->SentMessagesListHead; + while (CurrentEntry != ListHead) + { + SentMessage = CONTAINING_RECORD(CurrentEntry, USER_SENT_MESSAGE, ListEntry); + + if(SentMessage->Msg.hwnd == Window->head.h) + { + TRACE("Remove Window Messages From Sent Queue\n"); + + ClearMsgBitsMask(pti, SentMessage->QS_Flags); + + /* wake the sender's thread */ + if (SentMessage->pkCompletionEvent != NULL) + { + KeSetEvent(SentMessage->pkCompletionEvent, IO_NO_INCREMENT, FALSE); + } + + if (SentMessage->HasPackedLParam) + { + if (SentMessage->Msg.lParam) + ExFreePool((PVOID)SentMessage->Msg.lParam); + } + + /* free the message */ + FreeUserMessage(SentMessage); + + CurrentEntry = pti->SentMessagesListHead.Flink; + } + else + { + CurrentEntry = CurrentEntry->Flink; + } + } +} + BOOLEAN FASTCALL co_MsqDispatchOneSentMessage( _In_ PTHREADINFO pti) @@ -762,6 +887,9 @@ /* remove it from the list of pending messages */ Entry = RemoveHeadList(&pti->SentMessagesListHead); Message = CONTAINING_RECORD(Entry, USER_SENT_MESSAGE, ListEntry); + + // Signal this message is being processed. + Message->flags |= SMF_RECEIVERBUSY|SMF_RECEIVEDMESSAGE; SaveMsg = pti->pusmCurrent; pti->pusmCurrent = Message; @@ -773,15 +901,14 @@ pti->pcti->CTI_flags |= CTI_INSENDMESSAGE; // Let the user know... } - /* insert it to the list of messages that are currently dispatched by this - message queue */ - InsertTailList(&pti->LocalDispatchingMessagesHead, &Message->ListEntry); + /* Now insert it to the global list of messages that can be removed Justin Case there's Trouble */ + InsertTailList(&usmList, &Message->ListEntry); ClearMsgBitsMask(pti, Message->QS_Flags); if (Message->HookMessage == MSQ_ISHOOK) { // Direct Hook Call processor - Result = co_CallHook( Message->Msg.message, // HookId + Result = co_CallHook( Message->Msg.message, // HookId (INT)(INT_PTR)Message->Msg.hwnd, // Code Message->Msg.wParam, Message->Msg.lParam); @@ -810,7 +937,9 @@ /* The message has not been processed yet, reinsert it. */ RemoveEntryList(&Message->ListEntry); InsertTailList(&Message->ptiCallBackSender->SentMessagesListHead, &Message->ListEntry); - TRACE("Callback Message not processed yet. Requeuing the message\n"); + // List is occupied need to set the bit. + MsqWakeQueue(Message->ptiCallBackSender, QS_SENDMESSAGE, TRUE); + ERR("Callback Message not processed yet. Requeuing the message\n"); //// <---- Need to see if this happens. Ret = FALSE; goto Exit; } @@ -823,10 +952,6 @@ Message->Msg.lParam); } - /* remove the message from the local dispatching list, because it doesn't need - to be cleaned up on thread termination anymore */ - RemoveEntryList(&Message->ListEntry); - /* If the message is a callback, insert it in the callback senders MessageQueue */ if (Message->CompletionCallback) { @@ -836,6 +961,7 @@ Message->QS_Flags |= QS_SMRESULT; /* insert it in the callers message queue */ + RemoveEntryList(&Message->ListEntry); InsertTailList(&Message->ptiCallBackSender->SentMessagesListHead, &Message->ListEntry); MsqWakeQueue(Message->ptiCallBackSender, QS_SENDMESSAGE, TRUE); } @@ -843,29 +969,14 @@ goto Exit; } - /* remove the message from the dispatching list if needed, so lock the sender's message queue */ - if (Message->ptiSender && !(Message->ptiSender->TIF_flags & TIF_INCLEANUP)) - { - if (!IsListEmpty(&Message->DispatchingListEntry)) - { - /* only remove it from the dispatching list if not already removed by a timeout */ - RemoveEntryList(&Message->DispatchingListEntry); - InitializeListHead(&Message->DispatchingListEntry); - } - } - - /* still keep the sender's message queue locked, so the sender can't exit the - MsqSendMessage() function (if timed out) */ + // Retrieve the result from callback. if (Message->QS_Flags & QS_SMRESULT) { Result = Message->lResult; } /* Let the sender know the result. */ - if (Message->Result != NULL) - { - *Message->Result = Result; - } + Message->lResult = Result; if (Message->HasPackedLParam) { @@ -873,14 +984,22 @@ ExFreePool((PVOID)Message->Msg.lParam); } + // Clear busy signal. + Message->flags &= ~SMF_RECEIVERBUSY; + /* Notify the sender. */ - if (Message->CompletionEvent != NULL) - { - KeSetEvent(Message->CompletionEvent, IO_NO_INCREMENT, FALSE); + if (Message->pkCompletionEvent != NULL) + { + KeSetEvent(Message->pkCompletionEvent, IO_NO_INCREMENT, FALSE); } /* free the message */ - ExFreePoolWithTag(Message, TAG_USRMSG); + if (Message->flags & SMF_RECEIVERFREE) + { + TRACE("Receiver Freeing Message %p\n",Message); + FreeUserMessage(Message); + } + Ret = TRUE; Exit: /* do not hangup on the user if this is reentering */ @@ -888,89 +1007,6 @@ pti->pusmCurrent = SaveMsg; return Ret; -} - -VOID APIENTRY -MsqRemoveWindowMessagesFromQueue(PWND Window) -{ - PTHREADINFO pti; - PUSER_SENT_MESSAGE SentMessage; - PUSER_MESSAGE PostedMessage; - PLIST_ENTRY CurrentEntry, ListHead; - - ASSERT(Window); - - pti = Window->head.pti; - - /* remove the posted messages for this window */ - CurrentEntry = pti->PostedMessagesListHead.Flink; - ListHead = &pti->PostedMessagesListHead; - while (CurrentEntry != ListHead) - { - PostedMessage = CONTAINING_RECORD(CurrentEntry, USER_MESSAGE, - ListEntry); - if (PostedMessage->Msg.hwnd == Window->head.h) - { - if (PostedMessage->Msg.message == WM_QUIT && pti->QuitPosted == 0) - { - pti->QuitPosted = 1; - pti->exitCode = PostedMessage->Msg.wParam; - } - RemoveEntryList(&PostedMessage->ListEntry); - ClearMsgBitsMask(pti, PostedMessage->QS_Flags); - MsqDestroyMessage(PostedMessage); - CurrentEntry = pti->PostedMessagesListHead.Flink; - } - else - { - CurrentEntry = CurrentEntry->Flink; - } - } - - /* remove the sent messages for this window */ - CurrentEntry = pti->SentMessagesListHead.Flink; - ListHead = &pti->SentMessagesListHead; - while (CurrentEntry != ListHead) - { - SentMessage = CONTAINING_RECORD(CurrentEntry, USER_SENT_MESSAGE, ListEntry); - - if(SentMessage->Msg.hwnd == Window->head.h) - { - TRACE("Notify the sender and remove a message from the queue that had not been dispatched\n"); - - RemoveEntryList(&SentMessage->ListEntry); - ClearMsgBitsMask(pti, SentMessage->QS_Flags); - - /* Only if the message has a sender was the queue referenced */ - if ((SentMessage->ptiSender) && - (!IsListEmpty(&SentMessage->DispatchingListEntry))) - { - RemoveEntryList(&SentMessage->DispatchingListEntry); - InitializeListHead(&SentMessage->DispatchingListEntry); - } - - /* wake the sender's thread */ - if (SentMessage->CompletionEvent != NULL) - { - KeSetEvent(SentMessage->CompletionEvent, IO_NO_INCREMENT, FALSE); - } - - if (SentMessage->HasPackedLParam) - { - if (SentMessage->Msg.lParam) - ExFreePool((PVOID)SentMessage->Msg.lParam); - } - - /* free the message */ - ExFreePoolWithTag(SentMessage, TAG_USRMSG); - - CurrentEntry = pti->SentMessagesListHead.Flink; - } - else - { - CurrentEntry = CurrentEntry->Flink; - } - } } BOOL FASTCALL @@ -988,9 +1024,9 @@ PTHREADINFO ptiSender; PUSER_SENT_MESSAGE Message; - if(!(Message = ExAllocatePoolWithTag(NonPagedPool, sizeof(USER_SENT_MESSAGE), TAG_USRMSG))) - { - ERR("MsqSendMessage(): Not enough memory to allocate a message"); + if(!(Message = AllocateUserMessage(FALSE))) + { + ERR("MsqSendMessageAsync(): Not enough memory to allocate a message"); return FALSE; } @@ -1000,18 +1036,15 @@ Message->Msg.message = Msg; Message->Msg.wParam = wParam; Message->Msg.lParam = lParam; - Message->CompletionEvent = NULL; - Message->Result = 0; - Message->lResult = 0; + Message->pkCompletionEvent = NULL; // No event needed. Message->ptiReceiver = ptiReceiver; - Message->ptiSender = NULL; Message->ptiCallBackSender = ptiSender; - InitializeListHead(&Message->DispatchingListEntry); Message->CompletionCallback = CompletionCallback; Message->CompletionCallbackContext = CompletionCallbackContext; Message->HookMessage = HookMessage; Message->HasPackedLParam = HasPackedLParam; Message->QS_Flags = QS_SENDMESSAGE; + Message->flags = SMF_RECEIVERFREE; InsertTailList(&ptiReceiver->SentMessagesListHead, &Message->ListEntry); MsqWakeQueue(ptiReceiver, QS_SENDMESSAGE, TRUE); @@ -1031,12 +1064,12 @@ ULONG_PTR *uResult) { PTHREADINFO pti; - PUSER_SENT_MESSAGE Message; - KEVENT CompletionEvent; + PUSER_SENT_MESSAGE SaveMsg, Message; NTSTATUS WaitStatus; LARGE_INTEGER Timeout; PLIST_ENTRY Entry; PWND pWnd; + BOOLEAN SwapStateEnabled; LRESULT Result = 0; //// Result could be trashed. //// pti = PsGetCurrentThreadWin32Thread(); @@ -1105,57 +1138,57 @@ } } - if(!(Message = ExAllocatePoolWithTag(PagedPool, sizeof(USER_SENT_MESSAGE), TAG_USRMSG))) + if(!(Message = AllocateUserMessage(TRUE))) { ERR("MsqSendMessage(): Not enough memory to allocate a message\n"); + if (uResult) *uResult = -1; return STATUS_INSUFFICIENT_RESOURCES; } - - KeInitializeEvent(&CompletionEvent, NotificationEvent, FALSE); Timeout.QuadPart = Int32x32To64(-10000,uTimeout); // Pass SMTO test with a TO of 0x80000000. TRACE("Timeout val %lld\n",Timeout.QuadPart) - - /* FIXME: Increase reference counter of sender's message queue here */ Message->Msg.hwnd = Wnd; Message->Msg.message = Msg; Message->Msg.wParam = wParam; Message->Msg.lParam = lParam; - Message->CompletionEvent = &CompletionEvent; - Message->Result = &Result; - Message->lResult = 0; - Message->QS_Flags = 0; Message->ptiReceiver = ptirec; Message->ptiSender = pti; - Message->ptiCallBackSender = NULL; - Message->CompletionCallback = NULL; - Message->CompletionCallbackContext = 0; Message->HookMessage = HookMessage; - Message->HasPackedLParam = FALSE; - - /* Add it to the list of pending messages */ - InsertTailList(&pti->DispatchingMessagesHead, &Message->DispatchingListEntry); + Message->QS_Flags = QS_SENDMESSAGE; + + SaveMsg = pti->pusmSent; + pti->pusmSent = Message; /* Queue it in the destination's message queue */ InsertTailList(&ptirec->SentMessagesListHead, &Message->ListEntry); - Message->QS_Flags = QS_SENDMESSAGE; MsqWakeQueue(ptirec, QS_SENDMESSAGE, TRUE); - /* We can't access the Message anymore since it could have already been deleted! */ + // First time in, turn off swapping of the stack. + if (pti->cEnterCount == 0) + { + SwapStateEnabled = KeSetKernelStackSwapEnable(FALSE); + } + pti->cEnterCount++; if (Block) { PVOID WaitObjects[2]; - WaitObjects[0] = &CompletionEvent; // Wait 0 - WaitObjects[1] = ptirec->pEThread; // Wait 1 + WaitObjects[0] = Message->pkCompletionEvent; // Wait 0 + WaitObjects[1] = ptirec->pEThread; // Wait 1 UserLeaveCo(); - WaitStatus = KeWaitForMultipleObjects(2, WaitObjects, WaitAny, UserRequest, - UserMode, FALSE, (uTimeout ? &Timeout : NULL), NULL); + WaitStatus = KeWaitForMultipleObjects( 2, + WaitObjects, + WaitAny, + UserRequest, + UserMode, + FALSE, + (uTimeout ? &Timeout : NULL), + NULL ); UserEnterCo(); @@ -1168,39 +1201,24 @@ { if (CONTAINING_RECORD(Entry, USER_SENT_MESSAGE, ListEntry) == Message) { - /* We can access Message here, it's secure because the message queue is locked - and the message is still hasn't been dispatched */ - Message->CompletionEvent = NULL; - Message->Result = NULL; + Message->pkCompletionEvent = NULL; RemoveEntryList(&Message->ListEntry); - RemoveEntryList(&Message->DispatchingListEntry); ClearMsgBitsMask(ptirec, Message->QS_Flags); - ExFreePoolWithTag(Message, TAG_USRMSG); + InsertTailList(&usmList, &Message->ListEntry); break; } Entry = Entry->Flink; } - TRACE("MsqSendMessage (blocked) timed out 1 Status %lx\n", WaitStatus); + ERR("MsqSendMessage (blocked) timed out 1 Status %lx\n", WaitStatus); } // Receiving thread passed on and left us hanging with issues still pending. else if (WaitStatus == STATUS_WAIT_1) { ERR("Bk Receiving Thread woken up dead!\n"); - Entry = pti->DispatchingMessagesHead.Flink; - while (Entry != &pti->DispatchingMessagesHead) - { - if (CONTAINING_RECORD(Entry, USER_SENT_MESSAGE, DispatchingListEntry) == Message) - { - Message->CompletionEvent = NULL; - Message->Result = NULL; - RemoveEntryList(&Message->DispatchingListEntry); - InitializeListHead(&Message->DispatchingListEntry); - break; - } - Entry = Entry->Flink; - } + Message->flags |= SMF_RECEIVERDIED; } + while (co_MsqDispatchOneSentMessage(pti)) ; } @@ -1208,16 +1226,22 @@ { PVOID WaitObjects[3]; - WaitObjects[0] = &CompletionEvent; // Wait 0 - WaitObjects[1] = pti->pEventQueueServer; // Wait 1 - WaitObjects[2] = ptirec->pEThread; // Wait 2 + WaitObjects[0] = Message->pkCompletionEvent; // Wait 0 + WaitObjects[1] = pti->pEventQueueServer; // Wait 1 + WaitObjects[2] = ptirec->pEThread; // Wait 2 do { UserLeaveCo(); - WaitStatus = KeWaitForMultipleObjects(3, WaitObjects, WaitAny, UserRequest, - UserMode, FALSE, (uTimeout ? &Timeout : NULL), NULL); + WaitStatus = KeWaitForMultipleObjects( 3, + WaitObjects, + WaitAny, + UserRequest, + UserMode, + FALSE, + (uTimeout ? &Timeout : NULL), + NULL); UserEnterCo(); @@ -1230,41 +1254,23 @@ { if (CONTAINING_RECORD(Entry, USER_SENT_MESSAGE, ListEntry) == Message) { - /* We can access Message here, it's secure because the message queue is locked - and the message is still hasn't been dispatched */ - Message->CompletionEvent = NULL; - Message->Result = NULL; + Message->pkCompletionEvent = NULL; RemoveEntryList(&Message->ListEntry); - RemoveEntryList(&Message->DispatchingListEntry); - InitializeListHead(&Message->DispatchingListEntry); ClearMsgBitsMask(ptirec, Message->QS_Flags); - ExFreePoolWithTag(Message, TAG_USRMSG); + InsertTailList(&usmList, &Message->ListEntry); break; } Entry = Entry->Flink; } - TRACE("MsqSendMessage timed out 2 Status %lx\n", WaitStatus); - + ERR("MsqSendMessage timed out 2 Status %lx\n", WaitStatus); break; } // Receiving thread passed on and left us hanging with issues still pending. else if (WaitStatus == STATUS_WAIT_2) { ERR("NB Receiving Thread woken up dead!\n"); - Entry = pti->DispatchingMessagesHead.Flink; - while (Entry != &pti->DispatchingMessagesHead) - { - if (CONTAINING_RECORD(Entry, USER_SENT_MESSAGE, DispatchingListEntry) == Message) - { - Message->CompletionEvent = NULL; - Message->Result = NULL; - RemoveEntryList(&Message->DispatchingListEntry); - InitializeListHead(&Message->DispatchingListEntry); - break; - } - Entry = Entry->Flink; - } + Message->flags |= SMF_RECEIVERDIED; break; } @@ -1275,19 +1281,52 @@ } while (WaitStatus == STATUS_WAIT_1); } + // Count is nil, restore swapping of the stack. + if (--pti->cEnterCount == 0 ) + { + KeSetKernelStackSwapEnable(SwapStateEnabled); + } + + // Handle User APC if (WaitStatus == STATUS_USER_APC) { // The current thread is dying! TRACE("User APC\n"); + + // The Message will be on the Trouble list until Thread cleanup. + Message->flags |= SMF_SENDERDIED; + co_IntDeliverUserAPC(); ERR("User APC Returned\n"); // Should not see this message. } + // Force this thread to wake up for the next go around. + KeSetEvent(pti->pEventQueueServer, IO_NO_INCREMENT, FALSE); + + Result = Message->lResult; + + // Determine whether this message is being processed or not. + if ((Message->flags & (SMF_RECEIVERBUSY|SMF_RECEIVEDMESSAGE)) != SMF_RECEIVEDMESSAGE) + { + Message->flags |= SMF_RECEIVERFREE; + } + + if (!(Message->flags & SMF_RECEIVERFREE)) + { + TRACE("Sender Freeing Message %p ptirec %p bit %d list empty %d\n",Message,ptirec,!!(ptirec->pcti->fsChangeBits & QS_SENDMESSAGE),IsListEmpty(&ptirec->SentMessagesListHead)); + // Make it to this point, the message was received. + FreeUserMessage(Message); + } + + pti->pusmSent = SaveMsg; + + TRACE("MSM Allocation Count %d Status %lx Result %d\n",SendMsgCount,WaitStatus,Result); + if (WaitStatus != STATUS_TIMEOUT) { if (uResult) { - *uResult = (STATUS_WAIT_0 == WaitStatus ? Result : -1); + *uResult = (STATUS_WAIT_0 == WaitStatus ? Result : 0); } } @@ -2104,6 +2143,23 @@ PUSER_MESSAGE CurrentMessage; PUSER_SENT_MESSAGE CurrentSentMessage; + TRACE("MsqCleanupThreadMsgs %p\n",pti); + + // Clear it all out. + if (pti->pcti) + { + pti->pcti->fsWakeBits = 0; + pti->pcti->fsChangeBits = 0; + } + + pti->nCntsQBits[QSRosKey] = 0; + pti->nCntsQBits[QSRosMouseMove] = 0; + pti->nCntsQBits[QSRosMouseButton] = 0; + pti->nCntsQBits[QSRosPostMessage] = 0; + pti->nCntsQBits[QSRosSendMessage] = 0; + pti->nCntsQBits[QSRosHotKey] = 0; + pti->nCntsQBits[QSRosEvent] = 0; + /* cleanup posted messages */ while (!IsListEmpty(&pti->PostedMessagesListHead)) { @@ -2122,22 +2178,15 @@ /* remove the messages that have not yet been dispatched */ while (!IsListEmpty(&pti->SentMessagesListHead)) { - CurrentEntry = RemoveHeadList(&pti->SentMessagesListHead); + CurrentEntry = pti->SentMessagesListHead.Flink; CurrentSentMessage = CONTAINING_RECORD(CurrentEntry, USER_SENT_MESSAGE, ListEntry); - TRACE("Notify the sender and remove a message from the queue that had not been dispatched\n"); - /* Only if the message has a sender was the message in the DispatchingList */ - if ((CurrentSentMessage->ptiSender) && - (!IsListEmpty(&CurrentSentMessage->DispatchingListEntry))) + ERR("Thread Cleanup Sent Messages\n"); + + /* wake the sender's thread */ + if (CurrentSentMessage->pkCompletionEvent != NULL) { - RemoveEntryList(&CurrentSentMessage->DispatchingListEntry); - InitializeListHead(&CurrentSentMessage->DispatchingListEntry); - } - - /* wake the sender's thread */ - if (CurrentSentMessage->CompletionEvent != NULL) - { - KeSetEvent(CurrentSentMessage->CompletionEvent, IO_NO_INCREMENT, FALSE); + KeSetEvent(CurrentSentMessage->pkCompletionEvent, IO_NO_INCREMENT, FALSE); } if (CurrentSentMessage->HasPackedLParam) @@ -2147,71 +2196,49 @@ } /* free the message */ - ExFreePool(CurrentSentMessage); - } - - /* notify senders of dispatching messages. This needs to be cleaned up if e.g. - ExitThread() was called in a SendMessage() umode callback */ - while (!IsListEmpty(&pti->LocalDispatchingMessagesHead)) - { - CurrentEntry = RemoveHeadList(&pti->LocalDispatchingMessagesHead); - CurrentSentMessage = CONTAINING_RECORD(CurrentEntry, USER_SENT_MESSAGE, ListEntry); - - /* remove the message from the dispatching list */ - if (!IsListEmpty(&CurrentSentMessage->DispatchingListEntry)) + FreeUserMessage(CurrentSentMessage); + } + + // Process Trouble Message List + if (!IsListEmpty(&usmList)) + { + CurrentEntry = usmList.Flink; + while (CurrentEntry != &usmList) { - RemoveEntryList(&CurrentSentMessage->DispatchingListEntry); - InitializeListHead(&CurrentSentMessage->DispatchingListEntry); - } - - TRACE("Notify the sender, the thread has been terminated while dispatching a message!\n"); - - /* wake the sender's thread */ - if (CurrentSentMessage->CompletionEvent != NULL) - { - KeSetEvent(CurrentSentMessage->CompletionEvent, IO_NO_INCREMENT, FALSE); - } - - if (CurrentSentMessage->HasPackedLParam) - { - if (CurrentSentMessage->Msg.lParam) + CurrentSentMessage = CONTAINING_RECORD(CurrentEntry, USER_SENT_MESSAGE, ListEntry); + CurrentEntry = CurrentEntry->Flink; + + TRACE("Found troubled messages on the list\n"); + + if ( pti == CurrentSentMessage->ptiReceiver ) { - _PRAGMA_WARNING_SUPPRESS(__WARNING_USING_UNINIT_VAR); - ExFreePool((PVOID)CurrentSentMessage->Msg.lParam); + if (CurrentSentMessage->HasPackedLParam) + { + if (CurrentSentMessage->Msg.lParam) + ExFreePool((PVOID)CurrentSentMessage->Msg.lParam); + } + + /* free the message */ + FreeUserMessage(CurrentSentMessage); + } + else if ( pti == CurrentSentMessage->ptiSender || + pti == CurrentSentMessage->ptiCallBackSender ) + { + if (!(CurrentSentMessage->flags & SMF_RECEIVERFREE)) + { + + if (CurrentSentMessage->HasPackedLParam) + { + if (CurrentSentMessage->Msg.lParam) + ExFreePool((PVOID)CurrentSentMessage->Msg.lParam); + } + + /* free the message */ + FreeUserMessage(CurrentSentMessage); + } } } - - /* free the message */ - ExFreePool(CurrentSentMessage); - } - - /* tell other threads not to bother returning any info to us */ - while (! IsListEmpty(&pti->DispatchingMessagesHead)) - { - CurrentEntry = RemoveHeadList(&pti->DispatchingMessagesHead); - CurrentSentMessage = CONTAINING_RECORD(CurrentEntry, USER_SENT_MESSAGE, DispatchingListEntry); - InitializeListHead(&CurrentSentMessage->DispatchingListEntry); - CurrentSentMessage->CompletionEvent = NULL; - CurrentSentMessage->Result = NULL; - - /* do NOT dereference our message queue as it might get attempted to be - locked later */ - } - - // Clear it all out. - if (pti->pcti) - { - pti->pcti->fsWakeBits = 0; - pti->pcti->fsChangeBits = 0; - } - - pti->nCntsQBits[QSRosKey] = 0; - pti->nCntsQBits[QSRosMouseMove] = 0; - pti->nCntsQBits[QSRosMouseButton] = 0; - pti->nCntsQBits[QSRosPostMessage] = 0; - pti->nCntsQBits[QSRosSendMessage] = 0; - pti->nCntsQBits[QSRosHotKey] = 0; - pti->nCntsQBits[QSRosEvent] = 0; + } } VOID FASTCALL @@ -2364,7 +2391,7 @@ if (Message->QS_Flags & QS_SMRESULT) return FALSE; - // SendMessageXxx || Callback msg and not a notify msg + // SendMessageXxx || Callback msg and not a notify msg if (Message->ptiSender || Message->CompletionCallback) { Message->lResult = lResult; Modified: trunk/reactos/win32ss/user/ntuser/msgqueue.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/msgque…
============================================================================== --- trunk/reactos/win32ss/user/ntuser/msgqueue.h [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/msgqueue.h [iso-8859-1] Tue Nov 3 15:18:51 2015 @@ -22,19 +22,24 @@ LIST_ENTRY ListEntry; MSG Msg; DWORD QS_Flags; // Original QS bits used to create this message. - PKEVENT CompletionEvent; - LRESULT* Result; + PKEVENT pkCompletionEvent; LRESULT lResult; + DWORD flags; PTHREADINFO ptiSender; PTHREADINFO ptiReceiver; SENDASYNCPROC CompletionCallback; PTHREADINFO ptiCallBackSender; ULONG_PTR CompletionCallbackContext; - /* entry in the dispatching list of the sender's message queue */ - LIST_ENTRY DispatchingListEntry; INT HookMessage; BOOL HasPackedLParam; + KEVENT CompletionEvent; } USER_SENT_MESSAGE, *PUSER_SENT_MESSAGE; + +#define SMF_RECEIVERDIED 0x00000002 +#define SMF_SENDERDIED 0x00000004 +#define SMF_RECEIVERFREE 0x00000008 +#define SMF_RECEIVEDMESSAGE 0x00000010 +#define SMF_RECEIVERBUSY 0x00004000 typedef struct _USER_MESSAGE_QUEUE { @@ -116,6 +121,8 @@ }; #define POSTEVENT_NWE 14 + +extern LIST_ENTRY usmList; BOOL FASTCALL MsqIsHung(PTHREADINFO pti); VOID CALLBACK HungAppSysTimerProc(HWND,UINT,UINT_PTR,DWORD); @@ -252,6 +259,9 @@ BOOL FASTCALL IntCallMsgFilter(LPMSG,INT); WPARAM FASTCALL MsqGetDownKeyState(PUSER_MESSAGE_QUEUE); BOOL FASTCALL IsThreadSuspended(PTHREADINFO); +PUSER_SENT_MESSAGE FASTCALL AllocateUserMessage(BOOL); +VOID FASTCALL FreeUserMessage(PUSER_SENT_MESSAGE); + int UserShowCursor(BOOL bShow); PCURICON_OBJECT Modified: trunk/reactos/win32ss/user/ntuser/win32.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/win32.…
============================================================================== --- trunk/reactos/win32ss/user/ntuser/win32.h [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/win32.h [iso-8859-1] Tue Nov 3 15:18:51 2015 @@ -93,8 +93,7 @@ struct _CLIENTINFO * pClientInfo; FLONG TIF_flags; PUNICODE_STRING pstrAppName; - /* Messages that are currently dispatched to other threads */ - LIST_ENTRY DispatchingMessagesHead; // psmsSent + struct _USER_SENT_MESSAGE *pusmSent; struct _USER_SENT_MESSAGE *pusmCurrent; /* Queue of messages sent to the queue. */ LIST_ENTRY SentMessagesListHead; // psmsReceiveList @@ -127,6 +126,7 @@ INT iCursorLevel; POINT ptLast; + INT cEnterCount; /* Queue of messages posted to the queue. */ LIST_ENTRY PostedMessagesListHead; // mlPost WORD fsChangeBitsRemoved; @@ -146,8 +146,6 @@ // Accounting of queue bit sets, the rest are flags. QS_TIMER QS_PAINT counts are handled in thread information. DWORD nCntsQBits[QSIDCOUNTS]; // QS_KEY QS_MOUSEMOVE QS_MOUSEBUTTON QS_POSTMESSAGE QS_SENDMESSAGE QS_HOTKEY - /* Messages that are currently dispatched by this message queue, required for cleanup */ - LIST_ENTRY LocalDispatchingMessagesHead; LIST_ENTRY WindowListHead; LIST_ENTRY W32CallbackListHead; SINGLE_LIST_ENTRY ReferencesList;
9 years, 1 month
1
0
0
0
[tfaber] 69792: [BROWSEUI] - IEnumString::Next's pceltFetched parameter is not optional, so provide it. Fixes exception when using Emerge Desktop
by tfaber@svn.reactos.org
Author: tfaber Date: Tue Nov 3 12:31:09 2015 New Revision: 69792 URL:
http://svn.reactos.org/svn/reactos?rev=69792&view=rev
Log: [BROWSEUI] - IEnumString::Next's pceltFetched parameter is not optional, so provide it. Fixes exception when using Emerge Desktop Modified: trunk/reactos/dll/win32/browseui/CAutoComplete.cpp Modified: trunk/reactos/dll/win32/browseui/CAutoComplete.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/CAutoCo…
============================================================================== --- trunk/reactos/dll/win32/browseui/CAutoComplete.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/browseui/CAutoComplete.cpp [iso-8859-1] Tue Nov 3 12:31:09 2015 @@ -262,6 +262,7 @@ RECT r; BOOL control, filled, displayall = FALSE; int cpt, height, sel; + ULONG fetched; if (!pThis->enabled) { @@ -429,7 +430,7 @@ for(cpt = 0;;) { - hr = pThis->enumstr->Next(1, &strs, NULL); + hr = pThis->enumstr->Next(1, &strs, &fetched); if (hr != S_OK) break;
9 years, 1 month
1
0
0
0
[spetreolle] 69791: [IPHLPAPI] Fix GetAdaptersAdresses operational status. ReactOS is now seen online. CORE-9178 #resolve Please retest apps with connectivity problems.
by spetreolle@svn.reactos.org
Author: spetreolle Date: Mon Nov 2 23:56:46 2015 New Revision: 69791 URL:
http://svn.reactos.org/svn/reactos?rev=69791&view=rev
Log: [IPHLPAPI] Fix GetAdaptersAdresses operational status. ReactOS is now seen online. CORE-9178 #resolve Please retest apps with connectivity problems. Modified: trunk/reactos/dll/win32/iphlpapi/CMakeLists.txt trunk/reactos/dll/win32/iphlpapi/address.c trunk/reactos/dll/win32/iphlpapi/iphlpapi_main.c Modified: trunk/reactos/dll/win32/iphlpapi/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/iphlpapi/CMakeLi…
============================================================================== --- trunk/reactos/dll/win32/iphlpapi/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/win32/iphlpapi/CMakeLists.txt [iso-8859-1] Mon Nov 2 23:56:46 2015 @@ -6,6 +6,7 @@ spec2def(iphlpapi.dll iphlpapi.spec ADD_IMPORTLIB) +add_definitions(-DGetAdaptersAddressesV2) list(APPEND SOURCE address.c dhcp_reactos.c Modified: trunk/reactos/dll/win32/iphlpapi/address.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/iphlpapi/address…
============================================================================== --- trunk/reactos/dll/win32/iphlpapi/address.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/iphlpapi/address.c [iso-8859-1] Mon Nov 2 23:56:46 2015 @@ -9,7 +9,7 @@ #include "iphlpapi_private.h" WINE_DEFAULT_DEBUG_CHANNEL(iphlpapi); -#if 1 +#ifdef GetAdaptersAddressesV2 /* Helper for GetAdaptersAddresses: * Retrieves the list of network adapters from tcpip.sys */ static @@ -422,7 +422,11 @@ CurrentAA->Flags = 0; // FIXME! CurrentAA->Mtu = Entry->if_mtu; CurrentAA->IfType = Entry->if_type; - CurrentAA->OperStatus = Entry->if_operstatus; + if(Entry->if_operstatus >= IF_OPER_STATUS_CONNECTING) + CurrentAA->OperStatus = IfOperStatusUp; + else + CurrentAA->OperStatus = IfOperStatusDown; + /* Next items */ Ptr = (BYTE*)(CurrentAA + 1); Modified: trunk/reactos/dll/win32/iphlpapi/iphlpapi_main.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/iphlpapi/iphlpap…
============================================================================== --- trunk/reactos/dll/win32/iphlpapi/iphlpapi_main.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/iphlpapi/iphlpapi_main.c [iso-8859-1] Mon Nov 2 23:56:46 2015 @@ -1517,22 +1517,6 @@ return ret; } - -/****************************************************************** - * GetPerAdapterInfo (IPHLPAPI.@) - * - * - * PARAMS - * - * IfIndex [In] - * pPerAdapterInfo [In/Out] - * pOutBufLen [In/Out] - * - * RETURNS - * - * DWORD - * - */ static void CreateNameServerListEnumNamesFunc( PWCHAR Interface, PWCHAR Server, PVOID Data) { IP_ADDR_STRING *pNext; @@ -1563,6 +1547,21 @@ Context->NumServers++; } +/****************************************************************** + * GetPerAdapterInfo (IPHLPAPI.@) + * + * + * PARAMS + * + * IfIndex [In] + * pPerAdapterInfo [In/Out] + * pOutBufLen [In/Out] + * + * RETURNS + * + * DWORD + * + */ DWORD WINAPI GetPerAdapterInfo(ULONG IfIndex, PIP_PER_ADAPTER_INFO pPerAdapterInfo, PULONG pOutBufLen) { HKEY hkey; @@ -2294,7 +2293,7 @@ /* * @implemented */ -#if 0 +#ifdef GetAdaptersAddressesV1 DWORD WINAPI DECLSPEC_HOTPATCH GetAdaptersAddresses(ULONG Family,ULONG Flags,PVOID Reserved,PIP_ADAPTER_ADDRESSES pAdapterAddresses,PULONG pOutBufLen) { InterfaceIndexTable *indexTable; @@ -2308,7 +2307,7 @@ if (!pOutBufLen) return ERROR_INVALID_PARAMETER; if (Reserved) return ERROR_INVALID_PARAMETER; - indexTable = getNonLoopbackInterfaceIndexTable(); //I think we want non-loopback here + indexTable = getInterfaceIndexTable(); if (!indexTable) return ERROR_NOT_ENOUGH_MEMORY; @@ -2345,8 +2344,8 @@ /* We're only going to implement what's required for XP SP0 */ } } - - if (*pOutBufLen < requiredSize) + TRACE("size: %d, requiredSize: %d\n", *pOutBufLen, requiredSize); + if (!pAdapterAddresses || *pOutBufLen < requiredSize) { *pOutBufLen = requiredSize; closeTcpFile(tcpFile); @@ -2397,16 +2396,15 @@ currentLocation += sizeof(WCHAR); currentAddress->Next = (PVOID)currentLocation; + /* Terminate the last address correctly */ + if(i==0) + currentAddress->Next = NULL; /* We're only going to implement what's required for XP SP0 */ currentAddress = currentAddress->Next; } } - - /* Terminate the last address correctly */ - if (currentAddress) - currentAddress->Next = NULL; /* Now again, for real this time */ @@ -2470,7 +2468,10 @@ currentAddress->IfType = ifInfo.if_info.ent.if_type; /* Operational status */ - currentAddress->OperStatus = ifInfo.if_info.ent.if_operstatus; + if(ifInfo.if_info.ent.if_operstatus >= IF_OPER_STATUS_CONNECTING) + currentAddress->OperStatus = IfOperStatusUp; + else + currentAddress->OperStatus = IfOperStatusDown; /* We're only going to implement what's required for XP SP0 */
9 years, 1 month
1
0
0
0
[rnaumann] 69790: [APPLICATIONS] -Improve some icons. By Henry Tang Ih. CORE-10408
by rnaumann@svn.reactos.org
Author: rnaumann Date: Mon Nov 2 22:11:51 2015 New Revision: 69790 URL:
http://svn.reactos.org/svn/reactos?rev=69790&view=rev
Log: [APPLICATIONS] -Improve some icons. By Henry Tang Ih. CORE-10408 Modified: trunk/reactos/base/applications/mmc/resources/mmc.ico trunk/reactos/base/applications/screensavers/3dtext/res/icon_3dtext.ico trunk/reactos/base/applications/wordpad/res/wordpad.ico Modified: trunk/reactos/base/applications/mmc/resources/mmc.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mmc/reso…
============================================================================== Binary files - no diff available. Modified: trunk/reactos/base/applications/screensavers/3dtext/res/icon_3dtext.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/screensa…
============================================================================== Binary files - no diff available. Modified: trunk/reactos/base/applications/wordpad/res/wordpad.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/wordpad/…
============================================================================== Binary files - no diff available.
9 years, 1 month
1
0
0
0
[rnaumann] 69789: [NTOBJSHEX] - Improve the icons. By Jared Smudde. CORE-10466
by rnaumann@svn.reactos.org
Author: rnaumann Date: Mon Nov 2 22:05:44 2015 New Revision: 69789 URL:
http://svn.reactos.org/svn/reactos?rev=69789&view=rev
Log: [NTOBJSHEX] - Improve the icons. By Jared Smudde. CORE-10466 Modified: trunk/reactos/dll/shellext/ntobjshex/resources/1.ico trunk/reactos/dll/shellext/ntobjshex/resources/2.ico trunk/reactos/dll/shellext/ntobjshex/resources/3.ico trunk/reactos/dll/shellext/ntobjshex/resources/4.ico trunk/reactos/dll/shellext/ntobjshex/resources/5.ico trunk/reactos/dll/shellext/ntobjshex/resources/6.ico trunk/reactos/dll/shellext/ntobjshex/resources/8.ico Modified: trunk/reactos/dll/shellext/ntobjshex/resources/1.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/ntobjshex/res…
============================================================================== Binary files - no diff available. Modified: trunk/reactos/dll/shellext/ntobjshex/resources/2.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/ntobjshex/res…
============================================================================== Binary files - no diff available. Modified: trunk/reactos/dll/shellext/ntobjshex/resources/3.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/ntobjshex/res…
============================================================================== Binary files - no diff available. Modified: trunk/reactos/dll/shellext/ntobjshex/resources/4.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/ntobjshex/res…
============================================================================== Binary files - no diff available. Modified: trunk/reactos/dll/shellext/ntobjshex/resources/5.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/ntobjshex/res…
============================================================================== Binary files - no diff available. Modified: trunk/reactos/dll/shellext/ntobjshex/resources/6.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/ntobjshex/res…
============================================================================== Binary files - no diff available. Modified: trunk/reactos/dll/shellext/ntobjshex/resources/8.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/ntobjshex/res…
============================================================================== Binary files - no diff available.
9 years, 1 month
1
0
0
0
[akhaldi] 69788: [WS2_32_NEW] Improve the FILE header section. Brought to you by Adam Stachowicz. CORE-10114
by akhaldi@svn.reactos.org
Author: akhaldi Date: Mon Nov 2 18:37:49 2015 New Revision: 69788 URL:
http://svn.reactos.org/svn/reactos?rev=69788&view=rev
Log: [WS2_32_NEW] Improve the FILE header section. Brought to you by Adam Stachowicz. CORE-10114 Modified: trunk/reactos/dll/win32/ws2_32_new/inc/ws2_32.h trunk/reactos/dll/win32/ws2_32_new/inc/ws2_32p.h trunk/reactos/dll/win32/ws2_32_new/src/addrconv.c trunk/reactos/dll/win32/ws2_32_new/src/addrinfo.c trunk/reactos/dll/win32/ws2_32_new/src/async.c trunk/reactos/dll/win32/ws2_32_new/src/bhook.c trunk/reactos/dll/win32/ws2_32_new/src/dcatalog.c trunk/reactos/dll/win32/ws2_32_new/src/dcatitem.c trunk/reactos/dll/win32/ws2_32_new/src/dllmain.c trunk/reactos/dll/win32/ws2_32_new/src/dprocess.c trunk/reactos/dll/win32/ws2_32_new/src/dprovide.c trunk/reactos/dll/win32/ws2_32_new/src/dsocket.c trunk/reactos/dll/win32/ws2_32_new/src/dthread.c trunk/reactos/dll/win32/ws2_32_new/src/dupsock.c trunk/reactos/dll/win32/ws2_32_new/src/enumprot.c trunk/reactos/dll/win32/ws2_32_new/src/event.c trunk/reactos/dll/win32/ws2_32_new/src/getproto.c trunk/reactos/dll/win32/ws2_32_new/src/getxbyxx.c trunk/reactos/dll/win32/ws2_32_new/src/ioctl.c trunk/reactos/dll/win32/ws2_32_new/src/nscatalo.c trunk/reactos/dll/win32/ws2_32_new/src/nscatent.c trunk/reactos/dll/win32/ws2_32_new/src/nspinstl.c trunk/reactos/dll/win32/ws2_32_new/src/nsprovid.c trunk/reactos/dll/win32/ws2_32_new/src/nsquery.c trunk/reactos/dll/win32/ws2_32_new/src/qos.c trunk/reactos/dll/win32/ws2_32_new/src/qshelpr.c trunk/reactos/dll/win32/ws2_32_new/src/rasdial.c trunk/reactos/dll/win32/ws2_32_new/src/recv.c trunk/reactos/dll/win32/ws2_32_new/src/rnr.c trunk/reactos/dll/win32/ws2_32_new/src/scihlpr.c trunk/reactos/dll/win32/ws2_32_new/src/select.c trunk/reactos/dll/win32/ws2_32_new/src/send.c trunk/reactos/dll/win32/ws2_32_new/src/sockctrl.c trunk/reactos/dll/win32/ws2_32_new/src/socklife.c trunk/reactos/dll/win32/ws2_32_new/src/spinstal.c trunk/reactos/dll/win32/ws2_32_new/src/sputil.c trunk/reactos/dll/win32/ws2_32_new/src/startup.c trunk/reactos/dll/win32/ws2_32_new/src/wsautil.c Modified: trunk/reactos/dll/win32/ws2_32_new/inc/ws2_32.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/inc/w…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/inc/ws2_32.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/inc/ws2_32.h [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2.2 Library - * FILE: lib/ws2_32.h + * FILE: dll/win32/ws2_32_new/inc/ws2_32.h * PURPOSE: WinSock 2.2 Main Header */ Modified: trunk/reactos/dll/win32/ws2_32_new/inc/ws2_32p.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/inc/w…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/inc/ws2_32p.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/inc/ws2_32p.h [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2.2 Library - * FILE: lib/ws2_32.h + * FILE: dll/win32/ws2_32_new/inc/ws2_32p.h * PURPOSE: WinSock 2.2 Main Header */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/addrconv.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/a…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/addrconv.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/addrconv.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: addrconv.c + * FILE: dll/win32/ws2_32_new/src/addrconv.c * PURPOSE: Address and Port Conversion Support * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/addrinfo.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/a…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/addrinfo.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/addrinfo.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: addrinfo.c + * FILE: dll/win32/ws2_32_new/src/addrinfo.c * PURPOSE: Protocol-Independent Address Resolution * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/async.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/a…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/async.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/async.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: async.c + * FILE: dll/win32/ws2_32_new/src/async.c * PURPOSE: Async Block Object and Async Thread Management * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/bhook.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/b…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/bhook.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/bhook.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: bhook.c + * FILE: dll/win32/ws2_32_new/src/bhook.c * PURPOSE: Blocking Hook support for 1.x clients * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/dcatalog.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/d…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/dcatalog.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/dcatalog.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: dcatalog.c + * FILE: dll/win32/ws2_32_new/src/dcatalog.c * PURPOSE: Transport Catalog Object * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/dcatitem.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/d…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/dcatitem.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/dcatitem.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: dcatitem.c + * FILE: dll/win32/ws2_32_new/src/dcatitem.c * PURPOSE: Transport Catalog Entry Object * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/dllmain.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/d…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/dllmain.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/dllmain.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: dllmain.c + * FILE: dll/win32/ws2_32_new/src/dllmain.c * PURPOSE: DLL Entrypoint * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/dprocess.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/d…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/dprocess.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/dprocess.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: dprocess.c + * FILE: dll/win32/ws2_32_new/src/dprocess.c * PURPOSE: Process Object * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/dprovide.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/d…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/dprovide.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/dprovide.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: dprovide.c + * FILE: dll/win32/ws2_32_new/src/dprovide.c * PURPOSE: Transport Provider Object * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/dsocket.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/d…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/dsocket.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/dsocket.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: dsocket.c + * FILE: dll/win32/ws2_32_new/src/dsocket.c * PURPOSE: Socket Object * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/dthread.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/d…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/dthread.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/dthread.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: dprocess.c + * FILE: dll/win32/ws2_32_new/src/dthread.c * PURPOSE: Thread Object * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/dupsock.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/d…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/dupsock.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/dupsock.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: dupsock.c + * FILE: dll/win32/ws2_32_new/src/dupsock.c * PURPOSE: Socket Duplication * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/enumprot.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/e…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/enumprot.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/enumprot.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: enumprot.c + * FILE: dll/win32/ws2_32_new/src/enumprot.c * PURPOSE: Protocol Enumeration * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/event.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/e…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/event.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/event.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: event.c + * FILE: dll/win32/ws2_32_new/src/event.c * PURPOSE: Socket Events * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/getproto.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/g…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/getproto.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/getproto.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: getproto.c + * FILE: dll/win32/ws2_32_new/src/getproto.c * PURPOSE: GetProtoByY Functions. * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/getxbyxx.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/g…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/getxbyxx.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/getxbyxx.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: getxbyy.c + * FILE: dll/win32/ws2_32_new/src/getxbyxx.c * PURPOSE: Get X by Y Functions for Name Resolution. * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/ioctl.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/i…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/ioctl.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/ioctl.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: ioctl.c + * FILE: dll/win32/ws2_32_new/src/ioctl.c * PURPOSE: Socket I/O Control Code support. * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/nscatalo.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/n…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/nscatalo.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/nscatalo.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: nscatalo.c + * FILE: dll/win32/ws2_32_new/src/nscatalo.c * PURPOSE: Namespace Catalog Object * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/nscatent.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/n…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/nscatent.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/nscatent.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: nscatent.c + * FILE: dll/win32/ws2_32_new/src/nscatent.c * PURPOSE: Namespace Catalog Entry Object * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/nspinstl.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/n…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/nspinstl.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/nspinstl.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: nspinstl.c + * FILE: dll/win32/ws2_32_new/src/nspinstl.c * PURPOSE: Namespace Provider Installation * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/nsprovid.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/n…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/nsprovid.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/nsprovid.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: nsprovid.c + * FILE: dll/win32/ws2_32_new/src/nsprovid.c * PURPOSE: Namespace Provider Object * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/nsquery.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/n…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/nsquery.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/nsquery.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: nsquery.c + * FILE: dll/win32/ws2_32_new/src/nsquery.c * PURPOSE: Namespace Query Object * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/qos.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/q…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/qos.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/qos.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: qos.c + * FILE: dll/win32/ws2_32_new/src/qos.c * PURPOSE: QoS Support * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/qshelpr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/q…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/qshelpr.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/qshelpr.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: qshelpr.c + * FILE: dll/win32/ws2_32_new/src/qshelpr.c * PURPOSE: Query Set Conversion/Packing Helpers * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/rasdial.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/r…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/rasdial.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/rasdial.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: rasdial.c + * FILE: dll/win32/ws2_32_new/src/rasdial.c * PURPOSE: RAS Auto-Dial Support * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/recv.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/r…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/recv.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/recv.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: recv.c + * FILE: dll/win32/ws2_32_new/src/recv.c * PURPOSE: Socket Receive Support * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/rnr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/r…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/rnr.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/rnr.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: rnr.c + * FILE: dll/win32/ws2_32_new/src/rnr.c * PURPOSE: Registration n' Resolution Support * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/scihlpr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/s…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/scihlpr.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/scihlpr.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: scihlpr.c + * FILE: dll/win32/ws2_32_new/src/scihlpr.c * PURPOSE: Service Class Information Conversion/Packing Helpers * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/select.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/s…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/select.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/select.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: sselect.c + * FILE: dll/win32/ws2_32_new/src/select.c * PURPOSE: Socket Select Support * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/send.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/s…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/send.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/send.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: send.c + * FILE: dll/win32/ws2_32_new/src/send.c * PURPOSE: Socket Sending Support. * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/sockctrl.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/s…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/sockctrl.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/sockctrl.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: socktrl.c + * FILE: dll/win32/ws2_32_new/src/sockctrl.c * PURPOSE: Socket Control/State Support * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/socklife.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/s…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/socklife.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/socklife.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: socklife.c + * FILE: dll/win32/ws2_32_new/src/socklife.c * PURPOSE: Socket Lifetime Support * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/spinstal.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/s…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/spinstal.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/spinstal.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: spinstal.c + * FILE: dll/win32/ws2_32_new/src/spinstal.c * PURPOSE: Transport Service Provider Installation * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/sputil.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/s…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/sputil.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/sputil.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: sputil.c + * FILE: dll/win32/ws2_32_new/src/sputil.c * PURPOSE: Transport Service Provider Utility Functions * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/startup.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/s…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/startup.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/startup.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: startup.c + * FILE: dll/win32/ws2_32_new/src/startup.c * PURPOSE: Startup/Cleanup Support * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */ Modified: trunk/reactos/dll/win32/ws2_32_new/src/wsautil.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32_new/src/w…
============================================================================== --- trunk/reactos/dll/win32/ws2_32_new/src/wsautil.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32_new/src/wsautil.c [iso-8859-1] Mon Nov 2 18:37:49 2015 @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WinSock 2 API - * FILE: wsautil.c + * FILE: dll/win32/ws2_32_new/src/wsautil.c * PURPOSE: Winsock Utility Functions * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net) */
9 years, 1 month
1
0
0
0
[akhaldi] 69787: [MSAFD] Handle SO_SNDTIMEO and SO_RCVTIMEO in WSPGetSockOpt(). By Peter Hater. CORE-10440
by akhaldi@svn.reactos.org
Author: akhaldi Date: Mon Nov 2 18:12:23 2015 New Revision: 69787 URL:
http://svn.reactos.org/svn/reactos?rev=69787&view=rev
Log: [MSAFD] Handle SO_SNDTIMEO and SO_RCVTIMEO in WSPGetSockOpt(). By Peter Hater. CORE-10440 Modified: trunk/reactos/dll/win32/msafd/misc/dllmain.c Modified: trunk/reactos/dll/win32/msafd/misc/dllmain.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msafd/misc/dllma…
============================================================================== --- trunk/reactos/dll/win32/msafd/misc/dllmain.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msafd/misc/dllmain.c [iso-8859-1] Mon Nov 2 18:12:23 2015 @@ -2174,6 +2174,14 @@ Buffer = &IntBuffer; BufferSize = sizeof(INT); break; + case SO_SNDTIMEO: + Buffer = &Socket->SharedData.SendTimeout; + BufferSize = sizeof(DWORD); + break; + case SO_RCVTIMEO: + Buffer = &Socket->SharedData.RecvTimeout; + BufferSize = sizeof(DWORD); + break; case SO_GROUP_ID: case SO_GROUP_PRIORITY:
9 years, 1 month
1
0
0
0
[akhaldi] 69786: [MSAFD] Return SOCKET_ERROR instead of 0 in WSPAddressToString, WSPDuplicateSocket and WSPStringToAddress. By Peter Hater. CORE-10440
by akhaldi@svn.reactos.org
Author: akhaldi Date: Mon Nov 2 17:55:26 2015 New Revision: 69786 URL:
http://svn.reactos.org/svn/reactos?rev=69786&view=rev
Log: [MSAFD] Return SOCKET_ERROR instead of 0 in WSPAddressToString, WSPDuplicateSocket and WSPStringToAddress. By Peter Hater. CORE-10440 Modified: trunk/reactos/dll/win32/msafd/misc/stubs.c Modified: trunk/reactos/dll/win32/msafd/misc/stubs.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msafd/misc/stubs…
============================================================================== --- trunk/reactos/dll/win32/msafd/misc/stubs.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msafd/misc/stubs.c [iso-8859-1] Mon Nov 2 17:55:26 2015 @@ -25,7 +25,7 @@ { UNIMPLEMENTED; - return 0; + return SOCKET_ERROR; } @@ -50,7 +50,7 @@ { UNIMPLEMENTED; - return 0; + return SOCKET_ERROR; } @@ -114,7 +114,7 @@ { UNIMPLEMENTED; - return 0; + return SOCKET_ERROR; } /* EOF */
9 years, 1 month
1
0
0
0
[akhaldi] 69785: [MSAFD] Add more exports. By Peter Hater. CORE-10440
by akhaldi@svn.reactos.org
Author: akhaldi Date: Mon Nov 2 17:39:35 2015 New Revision: 69785 URL:
http://svn.reactos.org/svn/reactos?rev=69785&view=rev
Log: [MSAFD] Add more exports. By Peter Hater. CORE-10440 Modified: trunk/reactos/dll/win32/msafd/msafd.spec Modified: trunk/reactos/dll/win32/msafd/msafd.spec URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msafd/msafd.spec…
============================================================================== --- trunk/reactos/dll/win32/msafd/msafd.spec [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msafd/msafd.spec [iso-8859-1] Mon Nov 2 17:39:35 2015 @@ -1 +1,15 @@ -@ stdcall WSPStartup (long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall WSPAccept(long ptr ptr ptr long ptr) +@ stdcall WSPBind(long ptr long ptr) +@ stdcall WSPCleanup(ptr) +@ stdcall WSPCloseSocket(long ptr) +@ stdcall WSPConnect(long ptr long ptr ptr ptr ptr ptr) +@ stdcall WSPGetPeerName(long ptr ptr ptr) +@ stdcall WSPGetSockName(long ptr ptr ptr) +@ stdcall WSPGetSockOpt(long long long ptr ptr ptr) +@ stdcall WSPIoctl(long long ptr long ptr long ptr ptr ptr ptr ptr) +@ stdcall WSPListen(long long ptr) +@ stdcall WSPSelect(long ptr ptr ptr ptr ptr) +@ stdcall WSPSetSockOpt(long long long ptr long ptr) +@ stdcall WSPShutdown(long long ptr) +@ stdcall WSPSocket(long long long ptr long long ptr) +@ stdcall WSPStartup(long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr)
9 years, 1 month
1
0
0
0
← Newer
1
...
41
42
43
44
45
46
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
34
35
36
37
38
39
40
41
42
43
44
45
46
Results per page:
10
25
50
100
200