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
April 2014
----- 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
15 participants
492 discussions
Start a n
N
ew thread
[hbelusca] 62848: [KERNEL32] - Add a debug output to the default console dispatcher for the CTRL_LAST_CLOSE_EVENT code; - hardcoded_value--; Addendum to revision 62847.
by hbelusca@svn.reactos.org
Author: hbelusca Date: Mon Apr 21 01:36:00 2014 New Revision: 62848 URL:
http://svn.reactos.org/svn/reactos?rev=62848&view=rev
Log: [KERNEL32] - Add a debug output to the default console dispatcher for the CTRL_LAST_CLOSE_EVENT code; - hardcoded_value--; Addendum to revision 62847. Modified: trunk/reactos/dll/win32/kernel32/client/console/console.c Modified: trunk/reactos/dll/win32/kernel32/client/console/console.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
============================================================================== --- trunk/reactos/dll/win32/kernel32/client/console/console.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/kernel32/client/console/console.c [iso-8859-1] Mon Apr 21 01:36:00 2014 @@ -57,6 +57,10 @@ case CTRL_CLOSE_EVENT: DPRINT("Ctrl Close Event\n"); + break; + + case CTRL_LAST_CLOSE_EVENT: + DPRINT("Ctrl Last Close Event\n"); break; case CTRL_LOGOFF_EVENT: @@ -171,9 +175,9 @@ switch(nCode) { case CTRL_CLOSE_EVENT: + case CTRL_LAST_CLOSE_EVENT: case CTRL_LOGOFF_EVENT: case CTRL_SHUTDOWN_EVENT: - case 3: nExitCode = CodeAndFlag; break; }
10 years, 8 months
1
0
0
0
[hbelusca] 62847: [KERNEL32][CONSRV] Implement (undocumented) SetLastConsoleEventActive API. Patch by Alexander Andrejevic, with a minor modification by me concerning the addition of a NotifiedLast...
by hbelusca@svn.reactos.org
Author: hbelusca Date: Mon Apr 21 01:22:17 2014 New Revision: 62847 URL:
http://svn.reactos.org/svn/reactos?rev=62847&view=rev
Log: [KERNEL32][CONSRV] Implement (undocumented) SetLastConsoleEventActive API. Patch by Alexander Andrejevic, with a minor modification by me concerning the addition of a NotifiedLastCloseProcess member to the CONSOLE structure and a check that makes sure that only the app that asked for the notification, receives it (and so that we don't call the console control dispatcher for nothing). This API is used by ntvdm to be sure that it gets killed when all other console apps attached to the ntvdm's console are away. CORE-7250 Modified: trunk/reactos/dll/win32/kernel32/client/console/console.c trunk/reactos/include/psdk/wincon.h trunk/reactos/include/reactos/subsys/win/conmsg.h trunk/reactos/win32ss/user/winsrv/consrv/condrv/console.c trunk/reactos/win32ss/user/winsrv/consrv/console.c trunk/reactos/win32ss/user/winsrv/consrv/handle.c trunk/reactos/win32ss/user/winsrv/consrv/include/conio.h Modified: trunk/reactos/dll/win32/kernel32/client/console/console.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
============================================================================== --- trunk/reactos/dll/win32/kernel32/client/console/console.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/kernel32/client/console/console.c [iso-8859-1] Mon Apr 21 01:22:17 2014 @@ -30,6 +30,7 @@ PHANDLER_ROUTINE* CtrlHandlers; ULONG NrCtrlHandlers; ULONG NrAllocatedHandlers; +BOOL LastCloseNotify = FALSE; HANDLE InputWaitHandle = INVALID_HANDLE_VALUE; @@ -129,8 +130,14 @@ case CTRL_SHUTDOWN_EVENT: break; - case 3: - ExitThread(0); + case CTRL_LAST_CLOSE_EVENT: + /* + * In case the console app hasn't register for last close notification, + * just kill this console handler thread. We don't want that such apps + * get killed for unexpected reasons. On the contrary apps that registered + * can be killed because they expect to be. + */ + if (!LastCloseNotify) ExitThread(0); break; case 4: @@ -2595,14 +2602,26 @@ } /* - * @unimplemented - */ -BOOL + * @implemented + */ +DWORD WINAPI SetLastConsoleEventActive(VOID) { - STUB; - return FALSE; + CONSOLE_API_MESSAGE ApiMessage; + PCONSOLE_NOTIFYLASTCLOSE NotifyLastCloseRequest = &ApiMessage.Data.NotifyLastCloseRequest; + + /* Set the flag used by the console control dispatcher */ + LastCloseNotify = TRUE; + + /* Set up the input arguments */ + NotifyLastCloseRequest->ConsoleHandle = NtCurrentPeb()->ProcessParameters->ConsoleHandle; + + /* Call CSRSS; just return the NTSTATUS cast to DWORD */ + return CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, + NULL, + CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepNotifyLastClose), + sizeof(*NotifyLastCloseRequest)); } /* EOF */ Modified: trunk/reactos/include/psdk/wincon.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/wincon.h?rev=…
============================================================================== --- trunk/reactos/include/psdk/wincon.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/wincon.h [iso-8859-1] Mon Apr 21 01:22:17 2014 @@ -65,11 +65,12 @@ /* * Control handler codes */ -#define CTRL_C_EVENT 0 -#define CTRL_BREAK_EVENT 1 -#define CTRL_CLOSE_EVENT 2 -#define CTRL_LOGOFF_EVENT 5 -#define CTRL_SHUTDOWN_EVENT 6 +#define CTRL_C_EVENT 0 +#define CTRL_BREAK_EVENT 1 +#define CTRL_CLOSE_EVENT 2 +#define CTRL_LAST_CLOSE_EVENT 3 /* Undocumented */ +#define CTRL_LOGOFF_EVENT 5 +#define CTRL_SHUTDOWN_EVENT 6 /* * Input mode flags Modified: trunk/reactos/include/reactos/subsys/win/conmsg.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/subsys/win…
============================================================================== --- trunk/reactos/include/reactos/subsys/win/conmsg.h [iso-8859-1] (original) +++ trunk/reactos/include/reactos/subsys/win/conmsg.h [iso-8859-1] Mon Apr 21 01:22:17 2014 @@ -204,6 +204,20 @@ typedef struct { + HANDLE ConsoleHandle; + DWORD CtrlEvent; + DWORD ProcessGroupId; +} CONSOLE_GENERATECTRLEVENT, *PCONSOLE_GENERATECTRLEVENT; + +typedef struct +{ + HANDLE ConsoleHandle; +} CONSOLE_NOTIFYLASTCLOSE, *PCONSOLE_NOTIFYLASTCLOSE; + + + +typedef struct +{ HANDLE OutputHandle; BOOL Unicode; @@ -347,6 +361,7 @@ DWORD Flags; DWORD State; } CONSOLE_GETSETHWSTATE, *PCONSOLE_GETSETHWSTATE; + typedef struct @@ -529,6 +544,15 @@ typedef struct { HANDLE ConsoleHandle; + HANDLE InputHandle; + DWORD NumberOfEvents; +} CONSOLE_GETNUMINPUTEVENTS, *PCONSOLE_GETNUMINPUTEVENTS; + + + +typedef struct +{ + HANDLE ConsoleHandle; HANDLE Handle; } CONSOLE_CLOSEHANDLE, *PCONSOLE_CLOSEHANDLE; @@ -584,6 +608,7 @@ } CONSOLE_OPENCONSOLE, *PCONSOLE_OPENCONSOLE; + typedef struct { HANDLE ConsoleHandle; @@ -699,20 +724,6 @@ } CONSOLE_GETSETHISTORYINFO, *PCONSOLE_GETSETHISTORYINFO; - -typedef struct -{ - HANDLE ConsoleHandle; - DWORD CtrlEvent; - DWORD ProcessGroupId; -} CONSOLE_GENERATECTRLEVENT, *PCONSOLE_GENERATECTRLEVENT; - -typedef struct -{ - HANDLE ConsoleHandle; - HANDLE InputHandle; - DWORD NumberOfEvents; -} CONSOLE_GETNUMINPUTEVENTS, *PCONSOLE_GETNUMINPUTEVENTS; typedef struct { @@ -757,8 +768,10 @@ CONSOLE_ATTACHCONSOLE AttachConsoleRequest; CONSOLE_FREECONSOLE FreeConsoleRequest; - /* Process list */ + /* Processes */ CONSOLE_GETPROCESSLIST GetProcessListRequest; + CONSOLE_GENERATECTRLEVENT GenerateCtrlEventRequest; + CONSOLE_NOTIFYLASTCLOSE NotifyLastCloseRequest; /* Handles */ CONSOLE_OPENCONSOLE OpenConsoleRequest; @@ -806,6 +819,7 @@ CONSOLE_GETINPUT GetInputRequest; // SrvGetConsoleInput / PeekConsoleInput & ReadConsoleInput CONSOLE_READOUTPUT ReadOutputRequest; // SrvReadConsoleOutput / ReadConsoleOutput CONSOLE_READOUTPUTCODE ReadOutputCodeRequest; // SrvReadConsoleOutputString / ReadConsoleOutputAttribute & ReadConsoleOutputCharacter + CONSOLE_GETNUMINPUTEVENTS GetNumInputEventsRequest; /* Write */ CONSOLE_WRITECONSOLE WriteConsoleRequest; // SrvWriteConsole / WriteConsole @@ -830,9 +844,6 @@ CONSOLE_SETHISTORYNUMBERCOMMANDS SetHistoryNumberCommandsRequest; CONSOLE_GETSETHISTORYINFO HistoryInfoRequest; - CONSOLE_GENERATECTRLEVENT GenerateCtrlEventRequest; - CONSOLE_GETNUMINPUTEVENTS GetNumInputEventsRequest; - /* Input and Output Code Pages */ CONSOLE_GETINPUTOUTPUTCP GetConsoleCPRequest; CONSOLE_SETINPUTOUTPUTCP SetConsoleCPRequest; Modified: trunk/reactos/win32ss/user/winsrv/consrv/condrv/console.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/winsrv/consrv…
============================================================================== --- trunk/reactos/win32ss/user/winsrv/consrv/condrv/console.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/winsrv/consrv/condrv/console.c [iso-8859-1] Mon Apr 21 01:22:17 2014 @@ -244,7 +244,7 @@ return Status; } -static NTSTATUS +NTSTATUS ConDrvConsoleCtrlEvent(IN ULONG CtrlEvent, IN PCONSOLE_PROCESS_DATA ProcessData) { @@ -535,6 +535,8 @@ Console->ReferenceCount = 0; InitializeCriticalSection(&Console->Lock); InitializeListHead(&Console->ProcessList); + Console->NotifiedLastCloseProcess = NULL; + Console->NotifyLastClose = FALSE; /* Initialize the frontend interface */ ResetFrontEnd(Console); Modified: trunk/reactos/win32ss/user/winsrv/consrv/console.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/winsrv/consrv…
============================================================================== --- trunk/reactos/win32ss/user/winsrv/consrv/console.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/winsrv/consrv/console.c [iso-8859-1] Mon Apr 21 01:22:17 2014 @@ -641,8 +641,27 @@ CSR_API(SrvConsoleNotifyLastClose) { - DPRINT1("%s not yet implemented\n", __FUNCTION__); - return STATUS_NOT_IMPLEMENTED; + NTSTATUS Status; + PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process); + PCONSOLE Console; + + Status = ConSrvGetConsole(ProcessData, &Console, TRUE); + if (!NT_SUCCESS(Status)) return Status; + + /* Only one process is allowed to be registered for last close notification */ + if (!Console->NotifyLastClose) + { + Console->NotifiedLastCloseProcess = ProcessData; + Console->NotifyLastClose = TRUE; + Status = STATUS_SUCCESS; + } + else + { + Status = STATUS_ACCESS_DENIED; + } + + ConSrvReleaseConsole(Console, TRUE); + return Status; } Modified: trunk/reactos/win32ss/user/winsrv/consrv/handle.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/winsrv/consrv…
============================================================================== --- trunk/reactos/win32ss/user/winsrv/consrv/handle.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/winsrv/consrv/handle.c [iso-8859-1] Mon Apr 21 01:22:17 2014 @@ -633,6 +633,10 @@ return Status; } +NTSTATUS +ConDrvConsoleCtrlEvent(IN ULONG CtrlEvent, + IN PCONSOLE_PROCESS_DATA ProcessData); + VOID FASTCALL ConSrvRemoveConsole(PCONSOLE_PROCESS_DATA ProcessData) @@ -661,6 +665,30 @@ /* Update the internal info of the terminal */ TermRefreshInternalInfo(Console); + + /* + * Check if there is only one process still attached to the console, + * and that the console should send a control event in this case. + */ + if ((Console->ProcessList.Flink != &Console->ProcessList) && + (Console->ProcessList.Flink->Flink == &Console->ProcessList) && + // (Console->ProcessList.Flink == Console->ProcessList.Blink) && + Console->NotifyLastClose) + { + PCONSOLE_PROCESS_DATA LastProcess = CONTAINING_RECORD(Console->ProcessList.Flink, + CONSOLE_PROCESS_DATA, + ConsoleLink); + /* If the remaining process is the one that wanted the notification... */ + if (LastProcess == Console->NotifiedLastCloseProcess) + { + /* ... notify it that it's the only one remaining on the console */ + ConDrvConsoleCtrlEvent(CTRL_LAST_CLOSE_EVENT, LastProcess); + } + + /* In any case reset the pointer and the flag */ + Console->NotifiedLastCloseProcess = NULL; + Console->NotifyLastClose = FALSE; + } /* Release the console */ DPRINT("ConSrvRemoveConsole - Decrement Console->ReferenceCount = %lu\n", Console->ReferenceCount); Modified: trunk/reactos/win32ss/user/winsrv/consrv/include/conio.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/winsrv/consrv…
============================================================================== --- trunk/reactos/win32ss/user/winsrv/consrv/include/conio.h [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/winsrv/consrv/include/conio.h [iso-8859-1] Mon Apr 21 01:22:17 2014 @@ -282,6 +282,8 @@ CONSOLE_STATE State; /* State of the console */ LIST_ENTRY ProcessList; /* List of processes owning the console. The first one is the so-called "Console Leader Process" */ + PCONSOLE_PROCESS_DATA NotifiedLastCloseProcess; /* Pointer to the unique process that needs to be notified when all the other processes have been detached from the console */ + BOOLEAN NotifyLastClose; /* TRUE if the console should send a control event to the last attached process after all the others detached, if it wanted to be notified */ FRONTEND TermIFace; /* Frontend-specific interface */
10 years, 8 months
1
0
0
0
[hbelusca] 62846: [KERNEL32][CONSRV] Make kernel32 / winsrv console CSR structures Win2k3-compliant for CreateConsoleScreenBuffer. The aim is to be able to put our kernel32.dll or winsrv.dll on win...
by hbelusca@svn.reactos.org
Author: hbelusca Date: Sun Apr 20 22:40:39 2014 New Revision: 62846 URL:
http://svn.reactos.org/svn/reactos?rev=62846&view=rev
Log: [KERNEL32][CONSRV] Make kernel32 / winsrv console CSR structures Win2k3-compliant for CreateConsoleScreenBuffer. The aim is to be able to put our kernel32.dll or winsrv.dll on win2k3, and vice-versa. Because of that, we need to introduce and use the redundant hMutex and lpBitMap in the CONSOLE_CREATESCREENBUFFER structure, instead of the ones that are already present in its CONSOLE_GRAPHICS_BUFFER_INFO member ... Isn't MS dumb sometimes? I also homogeneize some variable names wrt. equivalent ones that I use elsewhere, and I fix a broken return value in the case the API fails. Part 3/X CORE-7931 Modified: trunk/reactos/dll/win32/kernel32/client/console/console.c trunk/reactos/include/reactos/subsys/win/conmsg.h trunk/reactos/win32ss/user/winsrv/consrv/conoutput.c Modified: trunk/reactos/dll/win32/kernel32/client/console/console.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
============================================================================== --- trunk/reactos/dll/win32/kernel32/client/console/console.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/kernel32/client/console/console.c [iso-8859-1] Sun Apr 20 22:40:39 2014 @@ -1935,11 +1935,10 @@ DWORD dwFlags, LPVOID lpScreenBufferData) { - NTSTATUS Status; CONSOLE_API_MESSAGE ApiMessage; PCONSOLE_CREATESCREENBUFFER CreateScreenBufferRequest = &ApiMessage.Data.CreateScreenBufferRequest; PCSR_CAPTURE_BUFFER CaptureBuffer = NULL; - PCONSOLE_GRAPHICS_BUFFER_INFO GraphicsBufferInfo = /*(PCONSOLE_GRAPHICS_BUFFER_INFO)*/lpScreenBufferData; + PCONSOLE_GRAPHICS_BUFFER_INFO GraphicsBufferInfo = lpScreenBufferData; if ( (dwDesiredAccess & ~(GENERIC_READ | GENERIC_WRITE)) || (dwShareMode & ~(FILE_SHARE_READ | FILE_SHARE_WRITE)) || @@ -1949,15 +1948,16 @@ return INVALID_HANDLE_VALUE; } + CreateScreenBufferRequest->ConsoleHandle = NtCurrentPeb()->ProcessParameters->ConsoleHandle; + CreateScreenBufferRequest->DesiredAccess = dwDesiredAccess; + CreateScreenBufferRequest->InheritHandle = + (lpSecurityAttributes ? lpSecurityAttributes->bInheritHandle : FALSE); + CreateScreenBufferRequest->ShareMode = dwShareMode; CreateScreenBufferRequest->ScreenBufferType = dwFlags; - CreateScreenBufferRequest->Access = dwDesiredAccess; - CreateScreenBufferRequest->ShareMode = dwShareMode; - CreateScreenBufferRequest->Inheritable = - (lpSecurityAttributes ? lpSecurityAttributes->bInheritHandle : FALSE); if (dwFlags == CONSOLE_GRAPHICS_BUFFER) { - if (CreateScreenBufferRequest->Inheritable || GraphicsBufferInfo == NULL) + if (CreateScreenBufferRequest->InheritHandle || GraphicsBufferInfo == NULL) { SetLastError(ERROR_INVALID_PARAMETER); return INVALID_HANDLE_VALUE; @@ -1969,7 +1969,7 @@ if (CaptureBuffer == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return FALSE; + return INVALID_HANDLE_VALUE; } CsrCaptureMessageBuffer(CaptureBuffer, @@ -1978,24 +1978,23 @@ (PVOID*)&CreateScreenBufferRequest->GraphicsBufferInfo.lpBitMapInfo); } - Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, - CaptureBuffer, - CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepCreateScreenBuffer), - sizeof(CONSOLE_CREATESCREENBUFFER)); - - if (CaptureBuffer) - CsrFreeCaptureBuffer(CaptureBuffer); - - if (!NT_SUCCESS(Status)) - { - BaseSetLastNTError(Status); + CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, + CaptureBuffer, + CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepCreateScreenBuffer), + sizeof(*CreateScreenBufferRequest)); + + if (CaptureBuffer) CsrFreeCaptureBuffer(CaptureBuffer); + + if (!NT_SUCCESS(ApiMessage.Status)) + { + BaseSetLastNTError(ApiMessage.Status); return INVALID_HANDLE_VALUE; } if (dwFlags == CONSOLE_GRAPHICS_BUFFER && GraphicsBufferInfo) { - GraphicsBufferInfo->hMutex = CreateScreenBufferRequest->GraphicsBufferInfo.hMutex ; - GraphicsBufferInfo->lpBitMap = CreateScreenBufferRequest->GraphicsBufferInfo.lpBitMap; + GraphicsBufferInfo->hMutex = CreateScreenBufferRequest->hMutex ; // CreateScreenBufferRequest->GraphicsBufferInfo.hMutex ; + GraphicsBufferInfo->lpBitMap = CreateScreenBufferRequest->lpBitMap; // CreateScreenBufferRequest->GraphicsBufferInfo.lpBitMap; } return CreateScreenBufferRequest->OutputHandle; Modified: trunk/reactos/include/reactos/subsys/win/conmsg.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/subsys/win…
============================================================================== --- trunk/reactos/include/reactos/subsys/win/conmsg.h [iso-8859-1] (original) +++ trunk/reactos/include/reactos/subsys/win/conmsg.h [iso-8859-1] Sun Apr 20 22:40:39 2014 @@ -351,17 +351,19 @@ typedef struct { - HANDLE OutputHandle; /* Handle to newly created screen buffer */ + HANDLE ConsoleHandle; + DWORD DesiredAccess; + BOOL InheritHandle; + DWORD ShareMode; DWORD ScreenBufferType; /* Type of the screen buffer: CONSOLE_TEXTMODE_BUFFER or CONSOLE_GRAPHICS_BUFFER */ /* - * If we are creating a graphics screen buffer, - * this structure holds the initialization information. + * This structure holds the initialization information + * for graphics screen buffers. */ CONSOLE_GRAPHICS_BUFFER_INFO GraphicsBufferInfo; - - DWORD Access; - DWORD ShareMode; - BOOL Inheritable; + HANDLE hMutex; + PVOID lpBitMap; + HANDLE OutputHandle; /* Handle to newly created screen buffer */ } CONSOLE_CREATESCREENBUFFER, *PCONSOLE_CREATESCREENBUFFER; typedef struct Modified: trunk/reactos/win32ss/user/winsrv/consrv/conoutput.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/winsrv/consrv…
============================================================================== --- trunk/reactos/win32ss/user/winsrv/consrv/conoutput.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/winsrv/consrv/conoutput.c [iso-8859-1] Sun Apr 20 22:40:39 2014 @@ -232,8 +232,8 @@ /* Get infos from the graphics buffer information structure */ if (!CsrValidateMessageBuffer(ApiMessage, (PVOID*)&CreateScreenBufferRequest->GraphicsBufferInfo.lpBitMapInfo, - 1, - CreateScreenBufferRequest->GraphicsBufferInfo.dwBitMapInfoLength)) + CreateScreenBufferRequest->GraphicsBufferInfo.dwBitMapInfoLength, + sizeof(BYTE))) { Status = STATUS_INVALID_PARAMETER; goto Quit; @@ -242,11 +242,13 @@ ScreenBufferInfo = &GraphicsInfo; /* Initialize shared variables */ - CreateScreenBufferRequest->GraphicsBufferInfo.hMutex = GraphicsInfo.Info.hMutex = INVALID_HANDLE_VALUE; - CreateScreenBufferRequest->GraphicsBufferInfo.lpBitMap = GraphicsInfo.Info.lpBitMap = NULL; + // CreateScreenBufferRequest->GraphicsBufferInfo.hMutex + CreateScreenBufferRequest->hMutex = GraphicsInfo.Info.hMutex = INVALID_HANDLE_VALUE; + // CreateScreenBufferRequest->GraphicsBufferInfo.lpBitMap + CreateScreenBufferRequest->lpBitMap = GraphicsInfo.Info.lpBitMap = NULL; /* A graphics screen buffer is never inheritable */ - CreateScreenBufferRequest->Inheritable = FALSE; + CreateScreenBufferRequest->InheritHandle = FALSE; } Status = ConDrvCreateScreenBuffer(&Buff, @@ -261,8 +263,8 @@ Status = ConSrvInsertObject(ProcessData, &CreateScreenBufferRequest->OutputHandle, &Buff->Header, - CreateScreenBufferRequest->Access, - CreateScreenBufferRequest->Inheritable, + CreateScreenBufferRequest->DesiredAccess, + CreateScreenBufferRequest->InheritHandle, CreateScreenBufferRequest->ShareMode); RtlLeaveCriticalSection(&ProcessData->HandleTableLock); @@ -276,8 +278,10 @@ * Initialize the graphics buffer information structure * and give it back to the client. */ - CreateScreenBufferRequest->GraphicsBufferInfo.hMutex = Buffer->ClientMutex; - CreateScreenBufferRequest->GraphicsBufferInfo.lpBitMap = Buffer->ClientBitMap; + // CreateScreenBufferRequest->GraphicsBufferInfo.hMutex + CreateScreenBufferRequest->hMutex = Buffer->ClientMutex; + // CreateScreenBufferRequest->GraphicsBufferInfo.lpBitMap + CreateScreenBufferRequest->lpBitMap = Buffer->ClientBitMap; } Quit:
10 years, 8 months
1
0
0
0
[fireball] 62845: [ARWINSS] - Update the patch to trunk. CSR stuff is still missing, however other necessary changes are in. 7kb -> 10kb size increase (temporary, I hope).
by fireball@svn.reactos.org
Author: fireball Date: Sun Apr 20 22:11:39 2014 New Revision: 62845 URL:
http://svn.reactos.org/svn/reactos?rev=62845&view=rev
Log: [ARWINSS] - Update the patch to trunk. CSR stuff is still missing, however other necessary changes are in. 7kb -> 10kb size increase (temporary, I hope). Modified: branches/arwinss/trunk.diff Modified: branches/arwinss/trunk.diff URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/trunk.diff?rev=62845&r1…
============================================================================== --- branches/arwinss/trunk.diff [iso-8859-1] (original) +++ branches/arwinss/trunk.diff [iso-8859-1] Sun Apr 20 22:11:39 2014 @@ -1,6 +1,6 @@ Index: base/shell/explorer/desktop/desktop.cpp =================================================================== ---- base/shell/explorer/desktop/desktop.cpp (revision 62316) +--- base/shell/explorer/desktop/desktop.cpp (revision 62758) +++ base/shell/explorer/desktop/desktop.cpp (working copy) @@ -326,8 +326,8 @@ HWND DesktopWindow::Create() @@ -15,8 +15,17 @@ int height = GetSystemMetrics(SM_CYSCREEN); Index: cmake/baseaddress.cmake =================================================================== ---- cmake/baseaddress.cmake (revision 62316) +--- cmake/baseaddress.cmake (revision 62758) +++ cmake/baseaddress.cmake (working copy) +@@ -1,7 +1,7 @@ + set(baseaddress_ntdll 0x7c920000) # should be above 0x7c920000 + set(baseaddress_kernel32 0x77d80000) + set(baseaddress_msvcrt 0x77cd0000) +-set(baseaddress_advapi32 0x77c20000) ++set(baseaddress_advapi32 0x77c70000) + set(baseaddress_gdi32 0x77bb0000) + set(baseaddress_user32 0x77a20000) + set(baseaddress_dhcpcsvc 0x779d0000) @@ -272,6 +272,7 @@ set(baseaddress_wbemprox 0x70c70000) set(baseaddress_windowscodecs 0x70b60000) @@ -27,7 +36,7 @@ set(baseaddress_wing32 0x70900000) Index: cmake/config.cmake =================================================================== ---- cmake/config.cmake (revision 62316) +--- cmake/config.cmake (revision 62758) +++ cmake/config.cmake (working copy) @@ -58,6 +58,9 @@ "Whether to compile support for ELF files. @@ -37,11 +46,11 @@ +"Whether to build and use Wine-based Win32 subsystem.") + set(NSWPAT FALSE CACHE BOOL - "Whether to compile apps/libs with features covered software patents or not. + "Whether to build apps/libs with features covered by software patents. If you live in a country where software patents are valid/apply, don't Index: CMakeLists.txt =================================================================== ---- CMakeLists.txt (revision 62316) +--- CMakeLists.txt (revision 62758) +++ CMakeLists.txt (working copy) @@ -134,6 +134,10 @@ add_definitions(-D_WINKD_=1) @@ -51,7 +60,7 @@ + add_definitions(-D_ARWINSS_=1) + endif() + - if((NOT DEFINED PCH) AND (CMAKE_VERSION STREQUAL "2.8.12.1-ReactOS")) + if((NOT DEFINED PCH) AND (CMAKE_VERSION STREQUAL "2.8.12.1-ReactOS") AND (NOT CMAKE_C_COMPILER_ID STREQUAL "Clang")) set(PCH 1) else() @@ -236,6 +240,9 @@ @@ -66,7 +75,7 @@ create_iso_lists() Index: include/asm/syscalls.inc =================================================================== ---- include/asm/syscalls.inc (revision 62316) +--- include/asm/syscalls.inc (revision 62758) +++ include/asm/syscalls.inc (working copy) @@ -95,6 +95,7 @@ @@ -86,7 +95,7 @@ .ENDP Index: include/psdk/winddi.h =================================================================== ---- include/psdk/winddi.h (revision 62316) +--- include/psdk/winddi.h (revision 62758) +++ include/psdk/winddi.h (working copy) @@ -2683,7 +2683,7 @@ _In_ ULONG cjSize, @@ -99,7 +108,7 @@ FONTOBJ_pGetGammaTables( Index: include/reactos/wine/config.h =================================================================== ---- include/reactos/wine/config.h (revision 62316) +--- include/reactos/wine/config.h (revision 62758) +++ include/reactos/wine/config.h (working copy) @@ -1,3 +1,5 @@ +#include "reactos/buildno.h" @@ -109,7 +118,7 @@ /* Define to a function attribute for Microsoft hotpatch assembly prefix. */ Index: lib/3rdparty/CMakeLists.txt =================================================================== ---- lib/3rdparty/CMakeLists.txt (revision 62316) +--- lib/3rdparty/CMakeLists.txt (revision 62758) +++ lib/3rdparty/CMakeLists.txt (working copy) @@ -2,7 +2,9 @@ add_subdirectory(adns) @@ -121,33 +130,42 @@ add_subdirectory(fullfat) add_subdirectory(libmpg123) add_subdirectory(libsamplerate) -Index: lib/3rdparty/freetype/CMakeLists.txt -=================================================================== ---- lib/3rdparty/freetype/CMakeLists.txt (revision 62316) -+++ lib/3rdparty/freetype/CMakeLists.txt (working copy) -@@ -11,7 +11,9 @@ - src/base/ftbbox.c - src/base/ftbdf.c - src/base/ftbitmap.c -+ src/base/ftcid.c - src/base/ftdebug.c -+ src/base/ftfstype.c - src/base/ftgasp.c - src/base/ftglyph.c - src/base/ftgxval.c +Index: subsystems/win32/csrsrv/init.c +=================================================================== +--- subsystems/win32/csrsrv/init.c (revision 62758) ++++ subsystems/win32/csrsrv/init.c (working copy) +@@ -20,7 +20,7 @@ + /* DATA ***********************************************************************/ + + // Debug Flag +-ULONG CsrDebug = 0; // 0xFFFFFFFF; ++ULONG CsrDebug = 0xFFFFFFFF; + + HANDLE CsrHeap = NULL; + HANDLE CsrObjectDirectory = NULL; Index: win32ss/CMakeLists.txt =================================================================== ---- win32ss/CMakeLists.txt (revision 62316) +--- win32ss/CMakeLists.txt (revision 62758) +++ win32ss/CMakeLists.txt (working copy) -@@ -7,6 +7,8 @@ +@@ -6,7 +6,10 @@ + PROJECT(WIN32SS) add_subdirectory(drivers) ++add_subdirectory(user/winsrv) +if (NOT _ARWINSS_) + if(USE_DIBLIB) add_subdirectory(gdi/diblib) endif() +@@ -18,7 +21,6 @@ + add_subdirectory(gdi/gdi32) + add_subdirectory(reactx) + add_subdirectory(user/user32) +-add_subdirectory(user/winsrv) + + spec2def(win32k.sys win32k.spec ADD_IMPORTLIB) + @@ -243,3 +245,4 @@ add_asm_files(win32ksys_asm sys-stubs.S) add_library(win32ksys ${win32ksys_asm}) @@ -156,7 +174,7 @@ \ No newline at end of file Index: win32ss/drivers/CMakeLists.txt =================================================================== ---- win32ss/drivers/CMakeLists.txt (revision 62316) +--- win32ss/drivers/CMakeLists.txt (revision 62758) +++ win32ss/drivers/CMakeLists.txt (working copy) @@ -1,6 +1,8 @@ @@ -169,7 +187,7 @@ add_subdirectory(watchdog) Index: win32ss/include/ntgdihdl.h =================================================================== ---- win32ss/include/ntgdihdl.h (revision 62316) +--- win32ss/include/ntgdihdl.h (revision 62758) +++ win32ss/include/ntgdihdl.h (working copy) @@ -270,6 +270,7 @@ DWORD dwCFCount; @@ -199,3 +217,81 @@ typedef struct _BRUSH_ATTR /* Used with pen too. */ { FLONG AttrFlags; +Index: win32ss/user/winsrv/consrv/conoutput.c +=================================================================== +--- win32ss/user/winsrv/consrv/conoutput.c (revision 62758) ++++ win32ss/user/winsrv/consrv/conoutput.c (working copy) +@@ -77,9 +77,13 @@ + * Indeed, the palette handle comes from a console app + * calling ourselves, running in CSRSS. + */ ++#ifndef _ARWINSS_ + NtUserConsoleControl(ConsoleMakePalettePublic, + &SetPaletteRequest->PaletteHandle, + sizeof(SetPaletteRequest->PaletteHandle)); ++#else ++ UNIMPLEMENTED; ++#endif + + Status = ConDrvSetConsolePalette(Buffer->Header.Console, + Buffer, +Index: win32ss/user/winsrv/consrv/frontends/gui/conwnd.c +=================================================================== +--- win32ss/user/winsrv/consrv/frontends/gui/conwnd.c (revision 62758) ++++ win32ss/user/winsrv/consrv/frontends/gui/conwnd.c (working copy) +@@ -161,7 +161,11 @@ + } + else + { ++#ifndef _ARWINSS_ + NtUserConsoleControl(GuiConsoleWndClassAtom, &WndClassAtom, sizeof(ATOM)); ++#else ++ UNIMPLEMENTED; ++#endif + } + + return (WndClassAtom != 0); +Index: win32ss/user/winsrv/usersrv/init.c +=================================================================== +--- win32ss/user/winsrv/usersrv/init.c (revision 62758) ++++ win32ss/user/winsrv/usersrv/init.c (working copy) +@@ -95,7 +95,9 @@ + WINAPI + PrivateCsrssManualGuiCheck(LONG Check) + { ++#ifndef _ARWINSS_ + NtUserCallOneParam(Check, ONEPARAM_ROUTINE_CSRSS_GUICHECK); ++#endif + } + + ULONG +@@ -102,7 +104,13 @@ + NTAPI + CreateSystemThreads(PVOID pParam) + { ++#ifndef _ARWINSS_ + NtUserCallOneParam((DWORD)pParam, ONEPARAM_ROUTINE_CREATESYSTEMTHREADS); ++#else ++ while (TRUE) ++ { ++ } ++#endif + DPRINT1("This thread should not terminate!\n"); + return 0; + } +Index: win32ss/user/winsrv/usersrv/shutdown.c +=================================================================== +--- win32ss/user/winsrv/usersrv/shutdown.c (revision 62758) ++++ win32ss/user/winsrv/usersrv/shutdown.c (working copy) +@@ -901,7 +901,11 @@ + NTSTATUS Status; + + /* FIXME Inside 2000 says we should impersonate the caller here */ ++#ifndef _ARWINSS_ + Status = NtUserCallTwoParam(UserProcessId, Flags, TWOPARAM_ROUTINE_EXITREACTOS); ++#else ++ Status = 0; ++#endif + + /* If the message isn't handled, the return value is 0, so 0 doesn't indicate + success. Success is indicated by a 1 return value, if anything besides 0
10 years, 8 months
1
0
0
0
[tfaber] 62844: [NTDLL_APITEST] - Add test for NtQueryVolumeInformationFile. Patch by Víctor Martínez. ROSTESTS-134 #resolve
by tfaber@svn.reactos.org
Author: tfaber Date: Sun Apr 20 18:15:41 2014 New Revision: 62844 URL:
http://svn.reactos.org/svn/reactos?rev=62844&view=rev
Log: [NTDLL_APITEST] - Add test for NtQueryVolumeInformationFile. Patch by Víctor Martínez. ROSTESTS-134 #resolve Added: trunk/rostests/apitests/ntdll/NtQueryVolumeInformationFile.c (with props) Modified: trunk/rostests/apitests/ntdll/CMakeLists.txt trunk/rostests/apitests/ntdll/testlist.c Modified: trunk/rostests/apitests/ntdll/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/ntdll/CMakeLists…
============================================================================== --- trunk/rostests/apitests/ntdll/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/apitests/ntdll/CMakeLists.txt [iso-8859-1] Sun Apr 20 18:15:41 2014 @@ -9,6 +9,7 @@ NtMapViewOfSection.c NtProtectVirtualMemory.c NtQuerySystemEnvironmentValue.c + NtQueryVolumeInformationFile.c RtlBitmap.c RtlDetermineDosPathNameType.c RtlDoesFileExists.c Added: trunk/rostests/apitests/ntdll/NtQueryVolumeInformationFile.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/ntdll/NtQueryVol…
============================================================================== --- trunk/rostests/apitests/ntdll/NtQueryVolumeInformationFile.c (added) +++ trunk/rostests/apitests/ntdll/NtQueryVolumeInformationFile.c [iso-8859-1] Sun Apr 20 18:15:41 2014 @@ -0,0 +1,85 @@ +/* + * PROJECT: ReactOS API Tests + * LICENSE: GPLv2+ - See COPYING in the top level directory + * PURPOSE: NtQueryVolumeInformationFile tests + * PROGRAMMER: VÃctor MartÃnez Calvo <vicmarcal(a)gmail.com> + */ + +#define WIN32_NO_STATUS +#include <stdio.h> +#include <wine/test.h> +#include <ndk/ntndk.h> + +START_TEST(NtQueryVolumeInformationFile) +{ + IO_STATUS_BLOCK IoStatusBlock; + FILE_FS_DEVICE_INFORMATION FileFsDevice; + OBJECT_ATTRIBUTES attr; + HANDLE handle; + WCHAR path[MAX_PATH]; + UNICODE_STRING pathW; + NTSTATUS status; + + /*Store a valid Handle*/ + GetWindowsDirectoryW(path, MAX_PATH); + RtlDosPathNameToNtPathName_U(path, &pathW, NULL, NULL); + + InitializeObjectAttributes(&attr, &pathW, OBJ_CASE_INSENSITIVE, NULL, NULL); + status = NtOpenFile(&handle, SYNCHRONIZE|FILE_LIST_DIRECTORY, &attr, &IoStatusBlock, FILE_SHARE_READ|FILE_SHARE_WRITE, FILE_DIRECTORY_FILE|FILE_SYNCHRONOUS_IO_NONALERT); + + RtlFreeUnicodeString(&pathW); + + if (!NT_SUCCESS(status)) + { + skip("NtOpenFile failed: 0x%lx\n", status); + return; + } + + /*Testing VALID handle, with NULL IN parameters*/ + SetLastError(0xdeadb33f); + status = NtQueryVolumeInformationFile(handle, NULL, &FileFsDevice, sizeof(FILE_FS_DEVICE_INFORMATION), FileFsDeviceInformation); + ok(status == STATUS_ACCESS_VIOLATION, "Expected STATUS_ACCESS_VIOLATION, got 0x%lx\n", status); + ok(GetLastError() == 0xdeadb33f, "Expected 0xdeadb33f, got %lx\n", GetLastError()); + + SetLastError(0xcacacaca); + status = NtQueryVolumeInformationFile(handle, &IoStatusBlock, NULL, sizeof(FILE_FS_DEVICE_INFORMATION), FileFsDeviceInformation); + ok(status == STATUS_ACCESS_VIOLATION, "Expected STATUS_ACCESS_VIOLATION, got 0x%lx\n", status); + ok(GetLastError() == 0xcacacaca, "Expected 0xcacacaca, got %lx\n", GetLastError()); + + SetLastError(0xdadadada); + status = NtQueryVolumeInformationFile(handle, &IoStatusBlock, &FileFsDevice, 0, FileFsDeviceInformation); + ok(status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got 0x%lx\n", status); + ok(GetLastError() == 0xdadadada, "Expected 0xdadadada, got %lx\n", GetLastError()); + + /*All valid, invalid FsInformationClass value.*/ + SetLastError(0xdeadbeef); + status = NtQueryVolumeInformationFile(handle, &IoStatusBlock, &FileFsDevice, sizeof(FILE_FS_DEVICE_INFORMATION), 0); + ok(status == STATUS_INVALID_INFO_CLASS, "Expected STATUS_INVALID_INFO_CLASS, got 0x%lx\n", status); + ok(GetLastError() == 0xdeadbeef, "Expected 0xdeadbeef, got %lx\n", GetLastError()); + + /*Testing NULL handle*/ + SetLastError(0xdeadbeef); + status = NtQueryVolumeInformationFile(NULL, &IoStatusBlock, &FileFsDevice, sizeof(FILE_FS_DEVICE_INFORMATION), FileFsDeviceInformation); + ok(status == STATUS_INVALID_HANDLE, "Expected STATUS_INVALID_HANDLE, got 0x%lx\n", status); + ok(GetLastError() == 0xdeadbeef, "Expected 0xdeadbeef, got %lx\n", GetLastError()); + + /*Testing INVALID_HANDLE_VALUE*/ + SetLastError(0xdeaddead); + status = NtQueryVolumeInformationFile((HANDLE)(-1), &IoStatusBlock, &FileFsDevice, sizeof(FILE_FS_DEVICE_INFORMATION), FileFsDeviceInformation); + ok(status == STATUS_OBJECT_TYPE_MISMATCH, "Expected STATUS_OBJECT_TYPE_MISMATCH, got 0x%lx\n", status); + ok(GetLastError() == 0xdeaddead, "Expected 0xdeaddead, got %lx\n", GetLastError()); + + /*Now all NULL. Priority check: FsInformationClass value!*/ + SetLastError(0xcacacaca); + status = NtQueryVolumeInformationFile(NULL, NULL, NULL, 0, 0); + ok(status == STATUS_INVALID_INFO_CLASS, "Expected STATUS_INVALID_INFO_CLASS, got 0x%lx\n", status); + ok(GetLastError() == 0xcacacaca, "Expected 0xcacacaca, got %lx\n", GetLastError()); + + /*Almost all NULL. Then it checks against the Length!*/ + SetLastError(0xdeadbeef); + status = NtQueryVolumeInformationFile(NULL, NULL, NULL, 0, FileFsDeviceInformation); + ok(status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got 0x%lx\n", status); + ok(GetLastError() == 0xdeadbeef, "Expected 0xdeadbeef, got %lx\n", GetLastError()); + + NtClose(handle); +} Propchange: trunk/rostests/apitests/ntdll/NtQueryVolumeInformationFile.c ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/rostests/apitests/ntdll/testlist.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/ntdll/testlist.c…
============================================================================== --- trunk/rostests/apitests/ntdll/testlist.c [iso-8859-1] (original) +++ trunk/rostests/apitests/ntdll/testlist.c [iso-8859-1] Sun Apr 20 18:15:41 2014 @@ -12,6 +12,7 @@ extern void func_NtMapViewOfSection(void); extern void func_NtProtectVirtualMemory(void); extern void func_NtQuerySystemEnvironmentValue(void); +extern void func_NtQueryVolumeInformationFile(void); extern void func_NtSystemInformation(void); extern void func_RtlBitmap(void); extern void func_RtlDetermineDosPathNameType(void); @@ -39,6 +40,7 @@ { "NtMapViewOfSection", func_NtMapViewOfSection }, { "NtProtectVirtualMemory", func_NtProtectVirtualMemory }, { "NtQuerySystemEnvironmentValue", func_NtQuerySystemEnvironmentValue }, + { "NtQueryVolumeInformationFile", func_NtQueryVolumeInformationFile }, { "NtSystemInformation", func_NtSystemInformation }, { "RtlBitmapApi", func_RtlBitmap }, { "RtlDetermineDosPathNameType", func_RtlDetermineDosPathNameType },
10 years, 8 months
1
0
0
0
[hbelusca] 62843: [KERNEL32][CONSRV] Implement console part of Get/SetHandleInformation, needed by msvcrt / cmd.exe (at least the windows version) and other console apps...
by hbelusca@svn.reactos.org
Author: hbelusca Date: Sun Apr 20 14:39:38 2014 New Revision: 62843 URL:
http://svn.reactos.org/svn/reactos?rev=62843&view=rev
Log: [KERNEL32][CONSRV] Implement console part of Get/SetHandleInformation, needed by msvcrt / cmd.exe (at least the windows version) and other console apps... Modified: trunk/reactos/dll/win32/kernel32/client/console/console.c trunk/reactos/dll/win32/kernel32/client/handle.c trunk/reactos/dll/win32/kernel32/include/console.h trunk/reactos/include/reactos/subsys/win/conmsg.h trunk/reactos/win32ss/user/winsrv/consrv/handle.c Modified: trunk/reactos/dll/win32/kernel32/client/console/console.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
============================================================================== --- trunk/reactos/dll/win32/kernel32/client/console/console.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/kernel32/client/console/console.c [iso-8859-1] Sun Apr 20 14:39:38 2014 @@ -305,6 +305,67 @@ } return DuplicateHandleRequest->TargetHandle; +} + + +/* + * @implemented + */ +BOOL +WINAPI +GetConsoleHandleInformation(IN HANDLE hHandle, + OUT LPDWORD lpdwFlags) +{ + CONSOLE_API_MESSAGE ApiMessage; + PCONSOLE_GETHANDLEINFO GetHandleInfoRequest = &ApiMessage.Data.GetHandleInfoRequest; + + GetHandleInfoRequest->ConsoleHandle = NtCurrentPeb()->ProcessParameters->ConsoleHandle; + GetHandleInfoRequest->Handle = hHandle; + + CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, + NULL, + CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetHandleInformation), + sizeof(*GetHandleInfoRequest)); + if (!NT_SUCCESS(ApiMessage.Status)) + { + BaseSetLastNTError(ApiMessage.Status); + return FALSE; + } + + *lpdwFlags = GetHandleInfoRequest->Flags; + + return TRUE; +} + + +/* + * @implemented + */ +BOOL +WINAPI +SetConsoleHandleInformation(IN HANDLE hHandle, + IN DWORD dwMask, + IN DWORD dwFlags) +{ + CONSOLE_API_MESSAGE ApiMessage; + PCONSOLE_SETHANDLEINFO SetHandleInfoRequest = &ApiMessage.Data.SetHandleInfoRequest; + + SetHandleInfoRequest->ConsoleHandle = NtCurrentPeb()->ProcessParameters->ConsoleHandle; + SetHandleInfoRequest->Handle = hHandle; + SetHandleInfoRequest->Mask = dwMask; + SetHandleInfoRequest->Flags = dwFlags; + + CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, + NULL, + CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetHandleInformation), + sizeof(*SetHandleInfoRequest)); + if (!NT_SUCCESS(ApiMessage.Status)) + { + BaseSetLastNTError(ApiMessage.Status); + return FALSE; + } + + return TRUE; } Modified: trunk/reactos/dll/win32/kernel32/client/handle.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
============================================================================== --- trunk/reactos/dll/win32/kernel32/client/handle.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/kernel32/client/handle.c [iso-8859-1] Sun Apr 20 14:39:38 2014 @@ -50,10 +50,7 @@ if (IsConsoleHandle(hObject)) { - /* FIXME: GetConsoleHandleInformation required */ - UNIMPLEMENTED; - BaseSetLastNTError(STATUS_NOT_IMPLEMENTED); - return FALSE; + return GetConsoleHandleInformation(hObject, lpdwFlags); } Status = NtQueryObject(hObject, @@ -91,10 +88,7 @@ if (IsConsoleHandle(hObject)) { - /* FIXME: SetConsoleHandleInformation required */ - UNIMPLEMENTED; - BaseSetLastNTError(STATUS_NOT_IMPLEMENTED); - return FALSE; + return SetConsoleHandleInformation(hObject, dwMask, dwFlags); } Status = NtQueryObject(hObject, Modified: trunk/reactos/dll/win32/kernel32/include/console.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/include…
============================================================================== --- trunk/reactos/dll/win32/kernel32/include/console.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/kernel32/include/console.h [iso-8859-1] Sun Apr 20 14:39:38 2014 @@ -39,6 +39,15 @@ DWORD dwOptions); BOOL WINAPI +GetConsoleHandleInformation(IN HANDLE hHandle, + OUT LPDWORD lpdwFlags); + +BOOL WINAPI +SetConsoleHandleInformation(IN HANDLE hHandle, + IN DWORD dwMask, + IN DWORD dwFlags); + +BOOL WINAPI VerifyConsoleIoHandle(HANDLE Handle); BOOL WINAPI Modified: trunk/reactos/include/reactos/subsys/win/conmsg.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/subsys/win…
============================================================================== --- trunk/reactos/include/reactos/subsys/win/conmsg.h [iso-8859-1] (original) +++ trunk/reactos/include/reactos/subsys/win/conmsg.h [iso-8859-1] Sun Apr 20 14:39:38 2014 @@ -547,6 +547,21 @@ HANDLE TargetHandle; } CONSOLE_DUPLICATEHANDLE, *PCONSOLE_DUPLICATEHANDLE; +typedef struct +{ + HANDLE ConsoleHandle; + HANDLE Handle; + DWORD Flags; +} CONSOLE_GETHANDLEINFO, *PCONSOLE_GETHANDLEINFO; + +typedef struct +{ + HANDLE ConsoleHandle; + HANDLE Handle; + DWORD Mask; + DWORD Flags; +} CONSOLE_SETHANDLEINFO, *PCONSOLE_SETHANDLEINFO; + /* * Type of handles. */ @@ -748,6 +763,8 @@ CONSOLE_CLOSEHANDLE CloseHandleRequest; CONSOLE_VERIFYHANDLE VerifyHandleRequest; CONSOLE_DUPLICATEHANDLE DuplicateHandleRequest; + CONSOLE_GETHANDLEINFO GetHandleInfoRequest; + CONSOLE_SETHANDLEINFO SetHandleInfoRequest; /* Cursor */ CONSOLE_SHOWCURSOR ShowCursorRequest; Modified: trunk/reactos/win32ss/user/winsrv/consrv/handle.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/winsrv/consrv…
============================================================================== --- trunk/reactos/win32ss/user/winsrv/consrv/handle.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/winsrv/consrv/handle.c [iso-8859-1] Sun Apr 20 14:39:38 2014 @@ -377,7 +377,6 @@ HANDLE Handle) { ULONG Index = HandleToULong(Handle) >> 2; - PCONSOLE_IO_OBJECT Object; RtlEnterCriticalSection(&ProcessData->HandleTableLock); @@ -386,7 +385,7 @@ // (ProcessData->HandleTable != NULL && ProcessData->HandleTableSize != 0) ); if (Index >= ProcessData->HandleTableSize || - (Object = ProcessData->HandleTable[Index].Object) == NULL) + ProcessData->HandleTable[Index].Object == NULL) { RtlLeaveCriticalSection(&ProcessData->HandleTableLock); return STATUS_INVALID_HANDLE; @@ -814,14 +813,100 @@ CSR_API(SrvGetHandleInformation) { - DPRINT1("%s not yet implemented\n", __FUNCTION__); - return STATUS_NOT_IMPLEMENTED; + NTSTATUS Status; + PCONSOLE_GETHANDLEINFO GetHandleInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetHandleInfoRequest; + PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process); + PCONSOLE Console; + + HANDLE Handle = GetHandleInfoRequest->Handle; + ULONG Index = HandleToULong(Handle) >> 2; + PCONSOLE_IO_HANDLE Entry; + + Status = ConSrvGetConsole(ProcessData, &Console, TRUE); + if (!NT_SUCCESS(Status)) + { + DPRINT1("Can't get console\n"); + return Status; + } + + RtlEnterCriticalSection(&ProcessData->HandleTableLock); + + ASSERT(ProcessData->HandleTable); + // ASSERT( (ProcessData->HandleTable == NULL && ProcessData->HandleTableSize == 0) || + // (ProcessData->HandleTable != NULL && ProcessData->HandleTableSize != 0) ); + + if (!IsConsoleHandle(Handle) || + Index >= ProcessData->HandleTableSize || + (Entry = &ProcessData->HandleTable[Index])->Object == NULL) + { + Status = STATUS_INVALID_HANDLE; + goto Quit; + } + + /* + * Retrieve the handle information flags. The console server + * doesn't support HANDLE_FLAG_PROTECT_FROM_CLOSE. + */ + GetHandleInfoRequest->Flags = 0; + if (Entry->Inheritable) GetHandleInfoRequest->Flags |= HANDLE_FLAG_INHERIT; + + Status = STATUS_SUCCESS; + +Quit: + RtlLeaveCriticalSection(&ProcessData->HandleTableLock); + + ConSrvReleaseConsole(Console, TRUE); + return Status; } CSR_API(SrvSetHandleInformation) { - DPRINT1("%s not yet implemented\n", __FUNCTION__); - return STATUS_NOT_IMPLEMENTED; + NTSTATUS Status; + PCONSOLE_SETHANDLEINFO SetHandleInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetHandleInfoRequest; + PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process); + PCONSOLE Console; + + HANDLE Handle = SetHandleInfoRequest->Handle; + ULONG Index = HandleToULong(Handle) >> 2; + PCONSOLE_IO_HANDLE Entry; + + Status = ConSrvGetConsole(ProcessData, &Console, TRUE); + if (!NT_SUCCESS(Status)) + { + DPRINT1("Can't get console\n"); + return Status; + } + + RtlEnterCriticalSection(&ProcessData->HandleTableLock); + + ASSERT(ProcessData->HandleTable); + // ASSERT( (ProcessData->HandleTable == NULL && ProcessData->HandleTableSize == 0) || + // (ProcessData->HandleTable != NULL && ProcessData->HandleTableSize != 0) ); + + if (!IsConsoleHandle(Handle) || + Index >= ProcessData->HandleTableSize || + (Entry = &ProcessData->HandleTable[Index])->Object == NULL) + { + Status = STATUS_INVALID_HANDLE; + goto Quit; + } + + /* + * Modify the handle information flags. The console server + * doesn't support HANDLE_FLAG_PROTECT_FROM_CLOSE. + */ + if (SetHandleInfoRequest->Mask & HANDLE_FLAG_INHERIT) + { + Entry->Inheritable = ((SetHandleInfoRequest->Flags & HANDLE_FLAG_INHERIT) != 0); + } + + Status = STATUS_SUCCESS; + +Quit: + RtlLeaveCriticalSection(&ProcessData->HandleTableLock); + + ConSrvReleaseConsole(Console, TRUE); + return Status; } CSR_API(SrvCloseHandle)
10 years, 8 months
1
0
0
0
[akhaldi] 62842: [NTDLL_WINETEST] * Sync with Wine 1.7.17. CORE-8080
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sun Apr 20 13:44:55 2014 New Revision: 62842 URL:
http://svn.reactos.org/svn/reactos?rev=62842&view=rev
Log: [NTDLL_WINETEST] * Sync with Wine 1.7.17. CORE-8080 Modified: trunk/rostests/winetests/ntdll/CMakeLists.txt trunk/rostests/winetests/ntdll/atom.c trunk/rostests/winetests/ntdll/change.c trunk/rostests/winetests/ntdll/directory.c trunk/rostests/winetests/ntdll/error.c trunk/rostests/winetests/ntdll/exception.c trunk/rostests/winetests/ntdll/file.c trunk/rostests/winetests/ntdll/generated.c trunk/rostests/winetests/ntdll/info.c trunk/rostests/winetests/ntdll/om.c trunk/rostests/winetests/ntdll/path.c trunk/rostests/winetests/ntdll/pipe.c trunk/rostests/winetests/ntdll/port.c trunk/rostests/winetests/ntdll/reg.c trunk/rostests/winetests/ntdll/rtl.c trunk/rostests/winetests/ntdll/rtlstr.c trunk/rostests/winetests/ntdll/string.c trunk/rostests/winetests/ntdll/testlist.c trunk/rostests/winetests/ntdll/time.c [This mail would be too long, it was shortened to contain the URLs only.] Modified: trunk/rostests/winetests/ntdll/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/CMakeList…
Modified: trunk/rostests/winetests/ntdll/atom.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/atom.c?re…
Modified: trunk/rostests/winetests/ntdll/change.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/change.c?…
Modified: trunk/rostests/winetests/ntdll/directory.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/directory…
Modified: trunk/rostests/winetests/ntdll/error.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/error.c?r…
Modified: trunk/rostests/winetests/ntdll/exception.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/exception…
Modified: trunk/rostests/winetests/ntdll/file.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/file.c?re…
Modified: trunk/rostests/winetests/ntdll/generated.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/generated…
Modified: trunk/rostests/winetests/ntdll/info.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/info.c?re…
Modified: trunk/rostests/winetests/ntdll/om.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/om.c?rev=…
Modified: trunk/rostests/winetests/ntdll/path.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/path.c?re…
Modified: trunk/rostests/winetests/ntdll/pipe.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/pipe.c?re…
Modified: trunk/rostests/winetests/ntdll/port.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/port.c?re…
Modified: trunk/rostests/winetests/ntdll/reg.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/reg.c?rev…
Modified: trunk/rostests/winetests/ntdll/rtl.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/rtl.c?rev…
Modified: trunk/rostests/winetests/ntdll/rtlstr.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/rtlstr.c?…
Modified: trunk/rostests/winetests/ntdll/string.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/string.c?…
Modified: trunk/rostests/winetests/ntdll/testlist.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/testlist.…
Modified: trunk/rostests/winetests/ntdll/time.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/time.c?re…
10 years, 8 months
1
0
0
0
[akhaldi] 62841: [PSDK] * Add some missing LDR_ADDREF_DLL_PIN definition.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sun Apr 20 13:42:12 2014 New Revision: 62841 URL:
http://svn.reactos.org/svn/reactos?rev=62841&view=rev
Log: [PSDK] * Add some missing LDR_ADDREF_DLL_PIN definition. Modified: trunk/reactos/include/psdk/winternl.h Modified: trunk/reactos/include/psdk/winternl.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winternl.h?re…
============================================================================== --- trunk/reactos/include/psdk/winternl.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/winternl.h [iso-8859-1] Sun Apr 20 13:42:12 2014 @@ -2448,6 +2448,9 @@ #define LDR_DONT_RESOLVE_REFS 0x40000000 #define LDR_WINE_INTERNAL 0x80000000 +/* flag for LdrAddRefDll */ +#define LDR_ADDREF_DLL_PIN 0x00000001 + /* FIXME: to be checked */ #define MAXIMUM_FILENAME_LENGTH 256
10 years, 8 months
1
0
0
0
[akhaldi] 62840: [PSDK] * Add some missing definitions.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sun Apr 20 13:34:54 2014 New Revision: 62840 URL:
http://svn.reactos.org/svn/reactos?rev=62840&view=rev
Log: [PSDK] * Add some missing definitions. Modified: trunk/reactos/include/psdk/shellapi.h trunk/reactos/include/psdk/shobjidl.idl Modified: trunk/reactos/include/psdk/shellapi.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/shellapi.h?re…
============================================================================== --- trunk/reactos/include/psdk/shellapi.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/shellapi.h [iso-8859-1] Sun Apr 20 13:34:54 2014 @@ -652,6 +652,127 @@ #define DoEnvironmentSubst DoEnvironmentSubstA #endif +#if (NTDDI_VERSION >= NTDDI_VISTA) + +typedef struct _SHSTOCKICONINFO { + DWORD cbSize; + HICON hIcon; + int iSysImageIndex; + int iIcon; + WCHAR szPath[MAX_PATH]; +} SHSTOCKICONINFO; + +#define SHGSI_ICONLOCATION 0 + +typedef enum SHSTOCKICONID +{ + SIID_INVALID=-1, + SIID_DOCNOASSOC, + SIID_DOCASSOC, + SIID_APPLICATION, + SIID_FOLDER, + SIID_FOLDEROPEN, + SIID_DRIVE525, + SIID_DRIVE35, + SIID_DRIVERREMOVE, + SIID_DRIVERFIXED, + SIID_DRIVERNET, + SIID_DRIVERNETDISABLE, + SIID_DRIVERCD, + SIID_DRIVERRAM, + SIID_WORLD, + /* Missing: 14 */ + SIID_SERVER = 15, + SIID_PRINTER, + SIID_MYNETWORK, + /* Missing: 18 - 21 */ + SIID_FIND = 22, + SIID_HELP, + /* Missing: 24 - 27 */ + SIID_SHARE = 28, + SIID_LINK, + SIID_SLOWFILE, + SIID_RECYCLER, + SIID_RECYCLERFULL, + /* Missing: 33 - 39 */ + SIID_MEDIACDAUDIO = 40, + /* Missing: 41 - 46 */ + SIID_LOCK = 47, + /* Missing: 48 */ + SIID_AUTOLIST = 49, + SIID_PRINTERNET, + SIID_SERVERSHARE, + SIID_PRINTERFAX, + SIID_PRINTERFAXNET, + SIID_PRINTERFILE, + SIID_STACK, + SIID_MEDIASVCD, + SIID_STUFFEDFOLDER, + SIID_DRIVEUNKNOWN, + SIID_DRIVEDVD, + SIID_MEDIADVD, + SIID_MEDIADVDRAM, + SIID_MEDIADVDRW, + SIID_MEDIADVDR, + SIID_MEDIADVDROM, + SIID_MEDIACDAUDIOPLUS, + SIID_MEDIACDRW, + SIID_MEDIACDR, + SIID_MEDIACDBURN, + SIID_MEDIABLANKCD, + SIID_MEDIACDROM, + SIID_AUDIOFILES, + SIID_IMAGEFILES, + SIID_VIDEOFILES, + SIID_MIXEDFILES, + SIID_FOLDERBACK, + SIID_FOLDERFRONT, + SIID_SHIELD, + SIID_WARNING, + SIID_INFO, + SIID_ERROR, + SIID_KEY, + SIID_SOFTWARE, + SIID_RENAME, + SIID_DELETE, + SIID_MEDIAAUDIODVD, + SIID_MEDIAMOVIEDVD, + SIID_MEDIAENHANCEDCD, + SIID_MEDIAENHANCEDDVD, + SIID_MEDIAHDDVD, + SIID_MEDIABLUERAY, + SIID_MEDIAVCD, + SIID_MEDIADVDPLUSR, + SIID_MEDIADVDPLUSRW, + SIID_DESKTOPPC, + SIID_MOBILEPC, + SIID_USERS, + SIID_MEDIASMARTMEDIA, + SIID_MEDIACOMPACTFLASH, + SIID_DEVICECELLPHONE, + SIID_DEVICECAMERA, + SIID_DEVICEVIDEOCAMERA, + SIID_DEVICEAUDIOPLAYER, + SIID_NETWORKCONNECT, + SIID_INTERNET, + SIID_ZIPFILE, + SIID_SETTINGS, + /* Missing: 107 - 131 */ + SIID_DRIVEHDDVD = 132, + SIID_DRIVEBD, + SIID_MEDIAHDDVDROM, + SIID_MEDIAHDDVDR, + SIID_MEDIAHDDVDRAM, + SIID_MEDIABDROM, + SIID_MEDIABDR, + SIID_MEDIABDRE, + SIID_CLUSTEREDDRIVE, + /* Missing: 141 - 174 */ + SIID_MAX_ICONS = 175 +} SHSTOCKICONID; + +#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ + #if !defined(_WIN64) #include <poppack.h> #endif Modified: trunk/reactos/include/psdk/shobjidl.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/shobjidl.idl?…
============================================================================== --- trunk/reactos/include/psdk/shobjidl.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/shobjidl.idl [iso-8859-1] Sun Apr 20 13:34:54 2014 @@ -3813,6 +3813,137 @@ HRESULT AbortList(); } +[ + uuid(ddefe873-6997-4e68-be26-39b633adbe12), + object, + pointer_default(unique) +] +interface IQueryCancelAutoPlay : IUnknown +{ + HRESULT AllowAutoPlay([in, string] LPCWSTR path, + [in] DWORD content_type, + [in, string] LPCWSTR label, + [in] DWORD serial_number); +} + +[ + uuid(d594d0d8-8da7-457b-b3b4-ce5dbaac0b88), + pointer_default(unique) +] +interface ITransferAdviseSink : IUnknown +{ + [v1_enum] enum _TRANSFER_ADVISE_STATE + { + TS_NONE = 0, + TS_PERFORMING = 1, + TS_PREPARING = 2, + TS_INDETERMINATE = 4 + }; + typedef DWORD TRANSFER_ADVISE_STATE; + + HRESULT UpdateProgress([in] ULONGLONG size_current, + [in] ULONGLONG size_total, + [in] INT files_current, + [in] INT files_total, + [in] INT folders_current, + [in] INT folders_total); + HRESULT UpdateTransferState([in] TRANSFER_ADVISE_STATE state); + HRESULT ConfirmOverwrite([in] IShellItem *source, + [in] IShellItem *dest_parent, + [in, string] LPCWSTR name); + HRESULT ConfirmEncryptLoss([in] IShellItem *source); + HRESULT FileFailure([in] IShellItem *item, + [in, unique, string] LPCWSTR itemname, + [in] HRESULT hr, + [out, unique, size_is(crename)] LPWSTR rename, + [in] ULONG crename); + HRESULT SubStreamFailure([in] IShellItem *item, + [in, string] LPCWSTR stream, + [in] HRESULT hr); + HRESULT PropertyFailure([in] IShellItem *item, + [in, unique] const PROPERTYKEY *key, + [in] HRESULT hr); +} + +[v1_enum] enum _TRANSFER_SOURCE_FLAGS +{ + TSF_NORMAL = 0, + TSF_FAIL_EXIST = 0, + TSF_RENAME_EXIST = 0x1, + TSF_OVERWRITE_EXIST = 0x2, + TSF_ALLOW_DECRYPTION = 0x4, + TSF_NO_SECURITY = 0x8, + TSF_COPY_CREATION_TIME = 0x10, + TSF_COPY_WRITE_TIME = 0x20, + TSF_USE_FULL_ACCESS = 0x40, + TSF_DELETE_RECYCLE_IF_POSSIBLE = 0x80, + TSF_COPY_HARD_LINK = 0x100, + TSF_COPY_LOCALIZED_NAME = 0x200, + TSF_MOVE_AS_COPY_DELETE = 0x400, + TSF_SUSPEND_SHELLEVENTS = 0x800 +}; +typedef DWORD TRANSFER_SOURCE_FLAGS; + +[ + uuid(00adb003-bde9-45c6-8e29-d09f9353e108), + object, + pointer_default(unique) +] +interface ITransferSource : IUnknown +{ + HRESULT Advise([in] ITransferAdviseSink *sink, [out] DWORD *cookie); + HRESULT Unadvise([in] DWORD cookie); + HRESULT SetProperties([in] IPropertyChangeArray *array); + HRESULT OpenItem([in] IShellItem *item, + [in] TRANSFER_SOURCE_FLAGS flags, + [in] REFIID riid, + [out, iid_is(riid)] void **ppv); + HRESULT MoveItem([in] IShellItem *item, + [in] IShellItem *parent_dest, + [in, string] LPCWSTR name_dest, + [in] TRANSFER_SOURCE_FLAGS flags, + [out] IShellItem **newitem); + HRESULT RecycleItem([in] IShellItem *source, + [in] IShellItem *parent_dest, + [in] TRANSFER_SOURCE_FLAGS flags, + [out] IShellItem **new_dest); + HRESULT RemoveItem([in] IShellItem *source, [in] TRANSFER_SOURCE_FLAGS flags); + HRESULT RenameItem([in] IShellItem *source, + [in, string] LPCWSTR newname, + [in] TRANSFER_SOURCE_FLAGS flags, + [out] IShellItem **new_dest); + HRESULT LinkItem([in] IShellItem *source, + [in] IShellItem *parent_dest, + [in, unique, string] LPCWSTR new_name, + [in] TRANSFER_SOURCE_FLAGS flags, + [out] IShellItem **new_dest); + HRESULT ApplyPropertiesToItem([in] IShellItem *source, [out] IShellItem **newitem); + HRESULT GetDefaultDestinationName([in] IShellItem *source, + [in] IShellItem *parent_dest, + [out, string] LPWSTR *dest_name); + HRESULT EnterFolder([in] IShellItem *child_folder); + HRESULT LeaveFolder([in] IShellItem *child_folder); +} + +[ + uuid(48addd32-3ca5-4124-abe3-b5a72531b207), + object, + pointer_default(unique) +] +interface ITransferDestination : IUnknown +{ + HRESULT Advise([in] ITransferAdviseSink *sink, [out] DWORD *cookie); + HRESULT Unadvise([in] DWORD cookie); + HRESULT CreateItem([in, string] LPCWSTR name, + [in] DWORD attr, + [in] ULONGLONG size, + [in] TRANSFER_SOURCE_FLAGS flags, + [in] REFIID riid, + [out, iid_is(riid)] void **ppv, + [in] REFIID resources, + [out, iid_is(riid)] void **presources); +} + /***************************************************************************** * ShellObjects typelibrary */ @@ -3895,6 +4026,14 @@ } [ + uuid(331f1768-05a9-4ddd-b86e-dae34ddc998a) + ] + coclass QueryCancelAutoPlay + { + interface IQueryCancelAutoPlay; + } + + [ uuid(9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917) ] coclass ShellItem {
10 years, 8 months
1
0
0
0
[khornicek] 62839: [WIN32K] - apply r61265 for win32k, for consistency
by khornicek@svn.reactos.org
Author: khornicek Date: Sun Apr 20 13:29:53 2014 New Revision: 62839 URL:
http://svn.reactos.org/svn/reactos?rev=62839&view=rev
Log: [WIN32K] - apply r61265 for win32k, for consistency Modified: trunk/reactos/win32ss/user/ntuser/win32kdebug.h Modified: trunk/reactos/win32ss/user/ntuser/win32kdebug.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/win32k…
============================================================================== --- trunk/reactos/win32ss/user/ntuser/win32kdebug.h [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/win32kdebug.h [iso-8859-1] Sun Apr 20 13:29:53 2014 @@ -28,6 +28,12 @@ */ #if DBG + + #include <builddir.h> + + #if !defined(__RELFILE__) + #define __RELFILE__ __FILE__ + #endif typedef struct { @@ -129,7 +135,7 @@ #define DBG_PRINT(ppi,ch,level,fmt, ...) do { \ if((level == ERR_LEVEL) || (ppi && DBG_IS_CHANNEL_ENABLED(ppi,ch,level))) \ - DbgPrint("(%s:%d) " fmt, __FILE__, __LINE__, ##__VA_ARGS__); \ + DbgPrint("(%s:%d) " fmt, __RELFILE__, __LINE__, ##__VA_ARGS__); \ }while(0); #define ERR(fmt, ...) DBG_PRINT(DBG_GET_PPI, DbgDefaultChannel, ERR_LEVEL,"err: " fmt, ##__VA_ARGS__) @@ -147,7 +153,7 @@ #define WARN_PPI(ppi,ch,fmt, ...) DBG_PRINT(ppi, DbgCh##ch, WARN_LEVEL,"warn: " fmt, ##__VA_ARGS__) #define TRACE_PPI(ppi,ch,fmt, ...) DBG_PRINT(ppi, DbgCh##ch, TRACE_LEVEL,"trace: " fmt, ##__VA_ARGS__) - #define STUB DbgPrint("WARNING: %s at %s:%d is UNIMPLEMENTED!\n",__FUNCTION__,__FILE__,__LINE__); + #define STUB DbgPrint("WARNING: %s at %s:%d is UNIMPLEMENTED!\n",__FUNCTION__,__RELFILE__,__LINE__); #else #define DBG_GET_PPI
10 years, 8 months
1
0
0
0
← Newer
1
...
22
23
24
25
26
27
28
...
50
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
47
48
49
50
Results per page:
10
25
50
100
200