In case NFS session expires while reading/writing to a file, renew the session instead of just failing.
This avoids not being able to transfer any file with slow connection, and not being able to transfer big files with normal connection.
CORE-8204
CORE-13484
svn path=/trunk/; revision=75444
In case of synchronous read, it's legit for the FSD to notify EOF by returning success & zero read length.
It fixes never ending reads when copying a file from NFS to local disk.
CORE-8204
CORE-11327
CORE-13484
svn path=/trunk/; revision=75443
Don't forget to set RX_CONTEXT_FLAG_FROM_POOL flag when allocating a new RX_CONTEXT structure from pool.
This avoids leaking it afterwards and exhausting NP pool when using NFS.
CORE-8204
CORE-11327
CORE-13484
CORE-13604
svn path=/trunk/; revision=75442
- Implement RxAcquireFcbForLazyWrite(), RxAcquireFcbForReadAhead(), RxReleaseFcbFromLazyWrite(), RxReleaseFcbFromReadAhead()
This makes RXCE better at dealing with Cc (and the other way round ;-)). This notably avoids infinite acquire loops from Cc when writing on a NFS share.
CORE-8204
CORE-11327
svn path=/trunk/; revision=75441
- Move debug heap functionality to a separate file
- Clean includes
- Remove msvcrt dependency
- Clean up string usage
- Remove some higher level functions in favor of their ntdll counterparts (wip).
svn path=/trunk/; revision=75432
Import commits by Kaho Ng <ngkaho1234@gmail.com> from upstream:
- b7657e5 Ext3Fsd: Introduce VCB_RO_COMPAT_READ_ONLY flag for struct VCB
- e7c1142 Ext3Fsd: EXT4_FEATURE_INCOMPAT_64BIT is not supported
- 785943f Ext3Fsd: fix issue #6
Refuse mounting filesystems with incompatible flags. This avoids corrupting 64bits filesystems.
Patch by Lubomir Rintel
CORE-13589
svn path=/trunk/; revision=75422
- Misc fixes with DPRINTS
[RXCE]
- In RxFinalizeSrvOpen, always dereference the FCB, it's always referenced on SRV_OPEN creation
- Misc fixes with DPRINTS
With that revision and r75419, I'm now able to mount a NFS share, browse it, read a file from it, and unmount it.
We're OK regarding references counting!
CORE-8204
CORE-11327
CORE-13581
svn path=/trunk/; revision=75420
Revert r75348.
Because of r75349, this revision was made useless, and even worse, it was leaking a handle to the directory where the FSD doesn't support notifications.
Also made some debug traces more useful
svn path=/trunk/; revision=75419
Huge "hack" for ReactOS.
In case we're asked to unmount a NFS share, and there are still active FCBs, browse the prefix table for active NET_ROOT, and then, dump their associated FCBs (prefix + refcount).
It seems we only leak the root FCB.
CORE-8204
CORE-11327
CORE-13581
svn path=/trunk/; revision=75415
- Implement RxFastIoWrite()
- Finish implementation of RxFastIoCheckIfPossible()
[COPYSUP]
- Implement FsRtlCopyWrite2()
This brings (in link with r75398 fast IO writes to RDBSS, and thus NFS!
CORE-8204
CORE-11327
svn path=/trunk/; revision=75409
- Broadcast the appropriate messages to notify a change in display parameters and color. This should fix rollback issues from setting display modes. See CORE-12571 and CORE-13212.
svn path=/trunk/; revision=75407
[BOOTMGR]
Disabled x86-specific code when building ARM.
[LIBSUPP]
Use a hack to replace inline asm which is not supported by MSVC ARM.
[DBGHELP]
Fix ARM register access from context struct.
[MSVCRT]
Fix typo in spec file.
[NTOSKRNL]
[WIN32SS]
Add asm dependency to *sys modules.
[CPPRT]
Add one of the missing constructor aliases. There's more, but my brain is fried at this point.
[BTRFS]
Define-away an include for x86-specific intrinsics.
This is the first batch of fixes for building reactos using the MSVC ARM toolchain. A lot more work is needed to get a full build including rostests and rosapps.
svn path=/trunk/; revision=75403
Fix pointer math ('unsigned long' will truncate the pointer).
[MKISOFS/SCHILY TOOLS]
Fix the invalid assumption that a 'long' variable can hold pointers. Will be sent upstream.
With this the whole of reactos and rostests builds on x64. Rosapps still has issues.
svn path=/trunk/; revision=75399
- Implement __RxWriteReleaseResources(), RxCommonWrite(), RxCompleteMdl(), RxGetTopIrpIfRdbssIrp(), RxLowIoWriteShell(), RxLowIoWriteShellCompletion()
- Finish implementation of RxCommonCleanup() so that it handles setting EOF on a file
- Finish implementation of RxCommonCreate() so that it handles sharing violations and attempts to scavenge open files
[RXCE]
- Implement RxpScavengeFobxs(), RxpTrackDereference(), RxpTrackReference(), RxPurgeFobx(), RxPurgeRelatedFobxs(), RxReinitializeContext(), RxSetFileSizeWithLock(), RxScavengeFobxsForNetRoot()
- Fix a bug in RxPrefixTableLookupName() where it was badly handling nodes in scavenger
This commits brings several improvments to the NFS driver.
First of all, now, the driver handles creating, extending and writing to files!
It also handles purging dormant opened files when a file opening fails because of a sharing violation
Finally, it also brings something to look at our references issues in RDBSS to help finding out why our FCB are never (or nearly) dereferenced
CORE-8204
CORE-11327
CORE-13581
svn path=/trunk/; revision=75398
MSVCRT_CRT_APITEST: Remove getmainargs tests from X64 build.
DELAYIMP: Fix callback prototype.
CComHeapPtr: Fix implementation of IMallocSpy to match the actual interface.
[WINETESTS]
ntdll: Disable 'generated' tests when not i386 platform, since they were generated for x86 and not x64 or ARM.
Fixes x64 compilation for tests.
svn path=/trunk/; revision=75397
Stub out some arch-specific functions (fixes x64 build).
[USBPORT]
Actually fix x64 build. The old code was not working at all, but the bootlib errors cancelled the build earlier than I thought.
The X64 compilation now succeeds, but cabman crashes trying to generate the bootcd.
svn path=/trunk/; revision=75396
Correct callback return type (Fixes X64 build).
[USETUP]
Correct definition of the struct (fixes X64 build).
[USBPORT]
Improve struct size checks so they are X64-compatible (fixes X64 build).
The build as a whole still fails due to bootlib, but implementing those is beyond my expertise.
svn path=/trunk/; revision=75392
-CBandSite: Remove CCS_NORESIZE style. This is a hack probably needed because our rebar control is buggy.
[EXPLORER]
-CTaskBand::GetBandInfo: Use the toolbar button size as the minimum and integral size for the band.
-CTaskSwitchWnd: Use the system small icon size for the size of the icon. Recreate the image list if this size changes. This together with the size of the font are the only factors for the size of the toolbar and consequently for the size of the band and if it is the only band, the size of the taskbar. Don't use TB_SETBUTTONSIZE. Now the size of the image list and the font dictate the size.
-CTrayWindow: In the classic theme make the start button have the same height with the tasks toolbar button height. Improve the calculation of the size of the taskbar in FitToRebar.
These changes should make the taskbar and the toolbar have a proper size. On top of that the taskbar is finally resizable (however our rebar is too buggy and still fills only the first line in the taskbar). While testing this I noticed that moving the taskbar in the sides of the screen is buggy now. I'm not sure if this was uncovered by these changes, if this was broken before or this was caused by these changes (looks unlikely to me) but will be fixed in subsequent commits).
svn path=/trunk/; revision=75385
Should fix returned codes by popen() and pclose(), which are functions that are called by windres, and this latter expects them to succeed. This was not the case before, in ROS, and therefore
trying to e.g. compile ROS within ROS failed from time to time with windres throwing the error that "preprocessing failed".
CORE-11568 #resolve
svn path=/trunk/; revision=75365
-CRegFolder: Implement CRegFolder::EnumObjects. Change its constructor to receive an extra parameter for the name of the key that should be enumerated.
-CEnumIDListBase: Add a new method called AppendItemsFromEnumerator to facilitate merging the contents from one IEnumIDList to another.
-Use the above in the enumerators of CControlPanelFolder, CDesktopFolder and CDrivesFolder to make them significantly simpler.
svn path=/trunk/; revision=75360
[BOOTDATA]
hivesys.inf: Put 'Mup' service back in 'File System' group. (Fix r72450)
Fixes installation of Vmware Tools which was always hanging.
CORE-12107 #resolve
svn path=/trunk/; revision=75355
Implement RxNotifyChangeDirectory(), RxLowIoNotifyChangeDirectoryCompletion(), RxCancelNotifyChangeDirectoryRequestsForVNetRoot()
This means the first parts of the directory watch are here. Though, NFS driver doesn't support these, but at least, it reduces the UNIMPLEMENTED spam!
CORE-11327
svn path=/trunk/; revision=75353
- CDesktopFolder: Create the enumerators of the internal fs folders and add their items in its own list instead of calling CreateFolderEnumList which enumerates ... files.
- Remove CEnumIDListBase::CreateFolderEnumList and move its code to CFileSysEnum::Initialize.
svn path=/trunk/; revision=75350
In case a FSD doesn't support directory changes notifications, don't try to requeue a notification each time it returns 0 data.
Just quit instead.
CORE-13549
svn path=/trunk/; revision=75349
- Compute once, when loading the list of topics with their associated commands, their special arguments or starting paths. The computed values can then be used each time a topic command is invoked.
- Distinguish between runnable commands (aka. external executables or files to be started), and internal actions like <msg> and <exit>.
- I have recently discovered that Windows' welcome.exe could also use a custom (OEM) "welcome.ini" file, much like what we already supported: see http://i.imgur.com/Se3IoQN.png .
To make ours backwards-compatible with Windows' one, rename the "Button" keyword into "MenuText", and introduce two new keywords "ConfigCommand" and "ConfigArgs" that specify respectively the command to be started
and its associated arguments. We continue to support our "Action" keyword for specifying internal actions.
- Improve the loading of the localized resources from the INI files.
- Correctly print the ReactOS version text, at a correct position depending on whether the checked box is display or not.
- Simplify some StringCchCopy + StringCchCat calls into StringCchPrintf.
- Simplify the code that creates the different fonts to be used within the program.
- Use more readable resource ID names.
svn path=/trunk/; revision=75322
- CTrayWindow: Implement the IContextMenu interface. This will be used by the CBandSite to query the context menu of its site (the CTrayWindow) and add it in its context menu.
- CTrayWindowCtxMenu: Use Shell_MergeMenus in QueryContextMenu and respect its parameters.
svn path=/trunk/; revision=75313
- Turn on GradientFill apply small hack fix to keep it out of a loop.
- Turning code off does not fix the code, 8 years later!
svn path=/trunk/; revision=75312
- Define RxShouldPostCompletion() and use it
- Define RxIsResourceOwnershipStateExclusive() and use it
- Define some magic values
[RDBSS]
- Implement CheckForLoudOperations(), RxAdjustFileTimesAndSize(), RxIsOkToPurgeFcb()
- Continue implementation of RxCommonCleanup()
- Fix bugs in the RxCommonCleanup() implementation and make it more explicit when in the delete on close path
- Stub RxCleanupPipeQueues(), RxLowIoLockControlShell()
- Silent a few DPRINTs
CORE-8204
CORE-11327
svn path=/trunk/; revision=75307
- Simplify SHELL32_CoCreateInitSF by letting the callers fill the PERSIST_FOLDER_TARGET_INFO. This lets us stop using _ILSimpleGetTextW in it which breaks the logic that pidls should be read only by their shell folder. Also add an overload for SHELL32_CoCreateInitSF that makes it simpler to create a shell folder with a csidl.
- Add a SHELL32_BindToSF helper to share some logic that was duplicated in several shell folders.
- Move SHELL32_GetCustomFolderAttributeFromPath, SHELL32_GetCLSIDForDirectory and SHELL32_GetFSItemAttributes, SHELL32_BindToFS to CFSFolder.cpp as these were fs specific.
- These changes give finer control to shell folders for how the bind will be done and shares more logic that can be shared.
svn path=/trunk/; revision=75301
- Sync/Port Wine Enhanced/Metafile code. This is a fix for CORE-12888.
- Wine made this difficult to port and keep the whole file unchanged for syncing.
svn path=/trunk/; revision=75292
Apply a consistent style to all similar functions:
- Spoolss functions don't necessarily set ERROR_SUCCESS. Check the boolean return value instead and only query the error code on failure.
- Use AlignRpcPtr and UndoAlignRpcPtr wherever feasible.
- Use one static function per level that can be called from both Get* and Enum* APIs.
- Use PackStrings in all functions that return structures with strings.
- Add TRACEs to all non-static functions in localspl.
- Pass a double pointer to all Marshalling functions and advance to the next structure there.
- Perform sanity checks and return the right error codes in a Windows-compatible way.
- Return TRUE when an Enum* API has no elements to enumerate.
Also fixes CORE-12793
svn path=/trunk/; revision=75287
- Implement RxFinalizeConnection(), RxOrphanSrvOpens()
- Stub RxOrphanSrvOpensForThisFcb()
[RDBSS]
- Fix a bug in RxCommonDevFCBClose() where prefix table wasn't acquire exclusively; this was problematic due to potential prefix table removal on dereference
- Stub RxCancelNotifyChangeDirectoryRequestsForVNetRoot()
This commit basically allows you to delete a NFS share you would have made use of in ReactOS.
Like net use z: \\share\path can be deleted through net use /delete z:
Note that if you access the share using cmd tools (dir, copy, more, and so on), dismount will work.
If you attempt to access with Explorer, then, handles will be kept open and dismount will fail.
CORE-8204
CORE-11327
svn path=/trunk/; revision=75286
- Allow only one running instance of the Welcome application at a time.
- Implement translating \xhhhh hexadecimal character specifications in topic text descriptions.
- Allow using the keyboard for navigating amongst the topics, and ENTER key presses to run the selected topic command.
<rant> *OF COURSE*, because we are ReactOS *SO* we are *buggy* (well, user32/win32k), keyboard navigation via arrow keys *DOES NOT WORK*!! (only navigation via TAB key do work) 8^(((( </rant>
This however works OK on Windows.
- Improve topic buttons activation when mouse hovers around above the window, as well as when window activation is lost or regained.
- Change the default text font to Tahoma.
- Don't hardcode white brush, but instead use stock object WHITE_BRUSH. Similarly, don't hardcode text black colour, but instead use the ambient text colour of the system.
- Add keyboard shortcuts to the default topic items.
- Shift the window ID of both the checkbox and the Exit buttons to be below a fixed topic-button base ID.
- In GetLocaleName(), use more explicit returned-variable names (cchRet, because it's a returned string length in character numbers).
svn path=/trunk/; revision=75282
Assorted fixes:
- Avoid list corruption
- Avoid stack corruption
- Avoid ASSERT on FCB reuse for same file type
CORE-11327
svn path=/trunk/; revision=75269
- Implement RxCloseAssociatedSrvOpen(), RxFastIoRead(), RxPurgeNetFcb(), RxRemoveShareAccess(), RxRemoveShareAccessPerSrvOpens()
- Continue implementation of RxCommonCleanup() to handle allocated SRV_OPEN
- Halfplement RxFastIoCheckIfPossible() so that it handles read operations
- Stub RxCancelNotifyChangeDirectoryRequestsForFobx()
[RXCE]
- Implement RxChangeBufferingState(), RxFinalizeSrvOpen(), RxFreeFcbObject(), RxGatherRequestsForSrvOpen(), RxGetDeviceObjectOfInstance(), RxInitializeRxTimer(), RxMarkFobxOnCleanup(), RxMarkFobxOnClose(), RxpDiscardChangeBufferingStateRequests(), RxpDispatchChangeBufferingStateRequests(), RxpLookupSrvOpenForRequestLite(), RxpMarkInstanceForScavengedFinalization(), RxPostOneShotTimerRequest(), RxPrepareRequestForReuse(), RxProcessChangeBufferingStateRequestsForSrvOpen(), RxpUndoScavengerFinalizationMarking(), RxPurgeChangeBufferingStateRequestsForSrvOpen(), RxPurgeFobxFromCache(), RxRemoveNameNetFcb(), RxScavengerTimerRoutine(), RxTimerDispatch()
- Finish implementation of RxDereference() to handle scavenger
- Finish implementation of RxLowIoCompletionTail() to handle blocked operations resume
- Fix a bug in RxFinalizeNetFcb() where it was dereferencing its NET_ROOT instead of its V_NET_ROOT
- Fix bugs in __RxAcquireFcb() where it improperly handled the lack of RX_CONTEXT
- Halfplement RxResumeBlockedOperations_ALL() to extract blocked operations from RX_CONTEXT (and drop them...)
- Stub RxDispatchChangeBufferingStateRequests(), RxScavengerFinalizeEntries()
[COPYSUP]
- Implement FsRtlCopyRead2()
This library is basically what you can find in FsRtl with an extended support of Top Level IRP. It is used by RDBSS for FastIO. Next to come in it will be FsRtlCopyWrite2().
This commit brings several improvements to current work on RBDSS/RXCE. First of all, both libraries will leak less (again!).
It also brings the scavenger infrastructure (not fully fonctionnal though). Our NFS driver doesn't make use of it though.
Finally, this brings support of FastIO (for read operations ;-)) to our NFS driver!
Regarding CORE-13484, with copy + FastIO I could copy a file without troubles. But that seems to be still problematic with xcopy without FastIO...
CORE-13484
CORE-11327
svn path=/trunk/; revision=75265
- Add DsEnumerateDomainTrustsA, DsEnumerateDomainTrustsW, DsRoleFreeMemory, DsGetDcNameA, DsGetDcNameW, DsGetSiteNameA and DsGetSiteNameW stubs to netlogon.c.
- Remove the now obsolete file ds.c.
- Implement DsGetSiteNameW and NetEnumerateTrustedDomains. These functions call their counterpart in the netlogon service.
svn path=/trunk/; revision=75261
With this, the basics of the app compat engine are implemented and should be functional.
Currently it is disable with a policy, to be enabled soon.
CORE-13284
CORE-11300
svn path=/trunk/; revision=75258
Patch by Vadim Galyant:
- Add USB port status change constants and structures
- Add USB hub descriptor type constants and missing device class constants
svn path=/trunk/; revision=75254
Patch by Vadim Galyant:
- Add USBPORT_HUB_CHARACTERISTICS structure
- Indicate the USB3 hub descriptor type when the miniport is an XHCI controller
svn path=/trunk/; revision=75253
- Add a test for SetFileAttributes/GetFileAttributes
- Add KmtSendUlongToDriver helper and fix some doc comments
CORE-13495
svn path=/trunk/; revision=75236
- Rename FindFile_drv to kernel32_drv (and perform some other appropriate renames), since it can be used for multiple tests, not just FindFile
- Change license to LGPL (this is okay since nobody but me has touched these files)
CORE-13495
svn path=/trunk/; revision=75235
Also, fix the default LastKnownGood value to the 'Current'/'Default' one. These values should also not be touched across upgrades (well, they can be touched manually by the (u)setup program, but they must not when updating the registry in bulk).
svn path=/trunk/; revision=75225
For that aim I also introduce a CmpCopyValue() helper that allows copying the value data of a given registry value, taking into account whether the value is "small", normal or "big" (we don't support "big values" yet). This function allocates and copies the necessary hive cells corresponding to the given value. Only then, we add a new entry into the registry key value list that is grown dynamically.
Cleanup is performed in case of failure.
Now we can export registry sub-trees as registry hives, and successfully re-mount them in the registry.
CORE-13476 CORE-8259 CORE-10793
svn path=/trunk/; revision=75222
- Add netlogon RPC binding code.
- Implement NetGetAnyDCName. This function calls its counterpart in the netlogon service.
svn path=/trunk/; revision=75212
- Stop passing DO, directly pass VCB
- Try to compute some unique value as internal ID for objects. As MS, return the LBO
CORE-13489
svn path=/trunk/; revision=75210
Add a simple API Test for netapi32.dll, only covering DsRoleGetPrimaryDomainInformation so far.
It succeeds in ReactOS, but outputs a heap error in the debug log. In real world applications, this later leads to a heap assertion failure.
svn path=/trunk/; revision=75208
- Create the actual generic handle in _LocalOpenPrinterHandle.
- Fix _RpcClosePrinter call.
- Enable many more tests in winspool_apitest, GetPrinterData.
- Bail out with ERROR_INVALID_PARAMETER for empty strings in _MakePrinterSubKey as well.
- Add the Name registry value for "Dummy Printer on LPT1" to make a test succeed.
This fixes many basic things.. which only got unnoticed, because Printing is only used in the form of API Tests so far.
CORE-13458
CORE-13459
svn path=/trunk/; revision=75207
Implement I_BrowserrDebugTrace and I_BrowserServerEnum. This functions calls their counterpart in the computer browser service.
svn path=/trunk/; revision=75196
- Implemented RxCompleteSrvOpenKeyAssociation(), RxInitiateSrvOpenKeyAssociation(), RxProcessChangeBufferingStateRequests()
- Implemented RxFinalizeFcbTable(), RxFinalizeNetFobx(), RxFinalizeNetRoot(), RxFinalizeSrvCall(), RxFinalizeVNetRoot(), RxFreeObject(), RxpDestroySrvCall(), RxRemovePrefixTableEntry(), RxRemoveVirtualNetRootFromNetRoot(), RxScavengeRelatedFobxs(), RxTearDownBufferingManager(), RxUndoScavengerFinalizationMarking()
- Implemented RxPostToWorkerThread()
- Implemented RxFlushFcbInSystemCache(), RxPurgeFcb(), RxPurgeFcbInSystemCache()
- Stubbed RxOrphanSrvOpens(), RxpDiscardChangeBufferingStateRequests(), RxpDispatchChangeBufferingStateRequests(), RxpProcessChangeBufferingStateRequests()
- Continued implementation of RxDereference() so that it supports more objects than just SRV_CALL
- Reworked RxInsertWorkQueueItem() implementation so that it accepts any work item, and not just dispatch work items
- Finished implementation of RxTableLookupName() so that it properly returns a V_NET_ROOT on NET_ROOT match
Notable effects of this commit are:
- RXCE/RDBSS leak less memory; now objects without references are properly deleted from the system
- This means that stale objects are also deleted; this fixes CORE-13483 were same stale SRV_CALL was used again and again
- Because in prefix table NET_ROOT are correctly handled, it's now possible to mount several path from the same prefix; this fixes CORE-13482
CORE-8204
CORE-11327
CORE-13482
CORE-13483
svn path=/trunk/; revision=75195
Move the functions NetGetDCName, NetGetAnyDCName and NetEnumerateTrustedDomains into a separate file for the Netlogon service interface code.
svn path=/trunk/; revision=75186
Implement I_BrowserQueryOtherDomains, I_BrowserQueryStatistics and I_BrowserResetNetlogonState. This functions calls their counterpart in the computer browser service.
svn path=/trunk/; revision=75184
Make nt object symlinks work more like shortcuts. Fixes the addressbar not quite knowing what to show when you click on a symlink.
svn path=/trunk/; revision=75177
* Added a common superclass for the ntobj and registry folders.
* Refactored the ntobj and registry folders to make use of this superclass.
* Removed the concept of a "pidl helper", since it works best to just have the methods be part of the folders.
* Cleaned up the ItemID comparison logic.
svn path=/trunk/; revision=75175
Import Wine commit:
- 8d461c1f42b0b667b2aa6a235d007eea1dd6f561, Don't stop enumeration on the first failing network provider.
This fixes 'net use' stoping connections enumeration when a network returns an error or no connection.
CORE-13475
svn path=/trunk/; revision=75173
Import Wine commit:
- 51b4a42969366cc409808aded23d3602a34206e2, Properly handle the count set to -1 when enumerating connections.
This fixes 'net use' not being able to enumerate multiple connections served by multiple network providers.
CORE-13475
svn path=/trunk/; revision=75172
- Normally getting the SrcNode and DestNode must succeed (checked with assert);
- Set the DestNode Flags member, in particular when this is the new root node of the saved registry hive;
- Copy the key class cell (OK), and the key security cell (currently done in a hackish way; proper way: call the CmpAssignSecurity* function);
- Add more clean-up on failure;
- Warn in code about the fact that CmpDeepCopyKeyInternal is recursive, and will easily exhaust kernel stack. This function will need to be reworked later...
CORE-10793 CORE-10796
svn path=/trunk/; revision=75171
Fixed registry value display for values that are too long to fit inside the shitemid.
Set the maximum for shitemid embedding back to a smaller number.
svn path=/trunk/; revision=75166
* Fixed NT object symbolic link target retrieval.
* Fixed NT path parsing (didn't consider paths sub sub-folders in them).
* Fixed BindToObject to properly resolve the target path for symlinks.
* Made the maximum embedded content length for registry keys a bit bigger.
svn path=/trunk/; revision=75160
Improve the GetDisplayNameOf logic from "badly broken" to "seems to work". I'm not convinced it's perfect, but it's better than before.
svn path=/trunk/; revision=75157
- Correctly use the page heap's lock in RtlLockHeap/RtlUnlockHeap when appropriate. Fixes assertion failure when Global/Local memory allocations are performed concurrently with DPH enabled.
svn path=/trunk/; revision=75152
- In MiDeletePte, check the ReferenceCount of transition PTEs, not the ShareCount (which is actually u2.Blink, since the page is in a modified/standby list). Also don't reset the PageLocation, since MiDecrementReferenceCount expects it to be anything but ActiveAndValid.
Fixes physical page leaks when using DPH, or other code that sets PAGE_NOACCESS.
CORE-13311 #resolve
svn path=/trunk/; revision=75150
- Fix a bug in CmpInitHiveFromFile(): correctly set the MaximumLength value of NewHive->FileFullPath;
- Code simplification: no need to use temporary ANSI string operations followed by UNICODE conversion, when one can do the same thing directly in UNICODE.
- Use NULL for NULL handles.
svn path=/trunk/; revision=75142
-Add a new template called CComQIIDPtr and its partner I_ID macro. Its purpose is to be a gcc compatible version of CComQIPtr.
-CComQIIDPtr<I_ID(Itype)> is the gcc compatible version of CComQIPtr<Itype>
- WARNING: this is not tested yet.
svn path=/trunk/; revision=75129
- Use NULL instead of 'zero' for setting a handle / pointer to NULL;
- Don't hardcode an array size; fix a comment;
- Use ExFreePoolWithTag();
- Whitespace fix.
svn path=/trunk/; revision=75128
-Rename constructors from Class_Creator to Class_CreateInstance. Prepend the ones that are exported from rshell with RSHELL_. The reasoning is that rshell will always use our code but whether or not internal classes will be used in shellmenu lib will be controlled by preprocessor definitions in shellmenu.h
[BROWSEUI]
-Rename more constructors to use the _CreateInstance suffix.
[RSHELL]
- The functions that let rshell export some objects have the RSHELL_ postfix but they are not exported as such.
[EXPLORER]
- Rename _CStartMenu_Constructor to _CStartMenu_CreateInstance.
svn path=/trunk/; revision=75127
- Implement GetPrinterDataA, GetPrinterDataExA, GetPrinterDataExW, GetPrinterDataW, SetPrinterDataA, SetPrinterDataExA, SetPrinterDataExW, SetPrinterDataW.
They support all features for Print Server and Printer Handles (minus security checks!)
I've also added tests for them.
- Store Printer data in SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers instead of SYSTEM\CurrentControlSet\Control\Print\Printers and create a registry symlink from the former path to the new one just like Windows does.
According to https://social.technet.microsoft.com/Forums/windowsserver/en-US/a683ab54-c43c-4ebe-af8f-1f7a65af2a51, this is needed when having >900 printers to work around a size limit of the SYSTEM registry hive. And if Windows has both locations, we need both for compatibility anyway.
- Add several settings which are queried by the new Printer Data APIs when working with Print Server Handles.
- Store the job directory in the Windows-compatible "DefaultSpoolDirectory" setting and make use of it.
- Revert the ASSERTs in LocalEnumPrinters again to let us verify the NULL pointer exceptions in localspl_apitest (thanks Serge! CORE-13433)
- Translate ERROR_INVALID_NAME to ERROR_INVALID_PRINTER_NAME in all cases in OpenPrinterW (thanks Victor! CORE-13412)
- Make EnumMonitorsW and EnumPortsW in spoolss more robust against failing Print Monitors.
- Remove the wrong !phPrinter check in OpenPrinterW to make Print Server Handles work for real.
- Fix error handling when memory allocation fails: HeapAlloc doesn't set last error, so it's just wrong to query or return it.
One more item done from https://reactos.org/wiki/Printing !
This is all still a big Work-in-Progress, with many subtle bugs deep down in ReactOS, for which I need to open additional tickets. But I didn't want to make this commit even bigger..
svn path=/trunk/; revision=75125
Implement I_BrowserQueryEmulatedDomains, I_BrowserResetStatistics and I_BrowserSetNetlogonState. This functions calls their counterpart in the computer browser service.
svn path=/trunk/; revision=75124
Replace the lmbrowsr.h form wine by a more complete psdk version.
Lmbrowsr.h was a part of Visual Studio 6 but Microsoft removed it from the PSDK later.
svn path=/trunk/; revision=75123
Add the missing pieces for the NFS filesystem: registry information.
Register the pnfs service (nfsd) as manual, so that it only gets started when user wants/needs it.
Same goes to the nfs41_driver service (driver). nfsd as a code modification specific to ReactOS so that it loads the driver
as soon as it gets started.
That means, in order to use NFS in ReactOS, you need to start the nfsd service: net start nfsd
Then, you can mount your remote share: net use * \\IP\path (you can replace * by a letter, e.g. z:)
There's no GUI stuff implemented yet for this in MPR.
If you want to access the share without mounting it in ReactOS (like, in Explorer), you've to be aware of a small detail:
after you start pnfs service, in explorer bar, type \\IP\nfs4\path. This is required so that NFS driver can claim the path
without troubles.
Something else you've to know: so far, tests where conducted with a remote share being 777, read-only and anonymously mounted.
Other scenarii are likely to fail (auth, rw, server?!, etc.).
Also note that if you attempt to mount a share on which you don't have traverse right, mounting will succeed but any later
operation will fail, refused by the remote NFS server. This is a bit different than the behavior on Linux where mount is denied
if traverse is not granted.
Final thing: this is highly experimental and not fully implemented yet: expect not working stuff, broken asserts, deadlocks, etc.
CORE-8204
svn path=/trunk/; revision=75120
Import the NFS file system mini-redirector and the associated network provider.
Not all the pieces are in place to make it working.
CORE-8204
svn path=/trunk/; revision=75105
- If PFN tracing is enabled, create a device object that allows the user to trigger a PFN dump (e.g. via "type \\.\Global\GLOBALROOT\Device\PfnDump")
svn path=/trunk/; revision=75103
I've noticed that in cmapi.c / ntapi.c we do not correctly check the validity of some OBJECT_ATTRIBUTES variables and user-mode vs. kernel-mode registry handles.
svn path=/trunk/; revision=75083
- Add a message box to ask the user to confirm the screen resolution change.
- The resolution change will be reverted if the user clicks 'No'.
A separate dialog box with a timer will be added next.
svn path=/trunk/; revision=75082
Add a quick'n'dirty implementation of gflags utility.
It only covers some page heap usage (enough to enable/disable DPH :-)).
It's syntax compatible with MS one, and with what's written down in ROS wiki.
See: https://www.reactos.org/wiki/Debugging#Debug_Page_Heap_.28DPH.29
svn path=/trunk/; revision=75073
- CShellBrowser: Propagate WM_WININICHANGE to all immediate children.
- CInternetToolbar: Forward WM_WININICHANGE to the menu band to make aware that the flat menus option changed.
svn path=/trunk/; revision=75071
- When a hive is unloaded, we *must* set the HIVE_IS_UNLOADING flag before doing anything else (as other code in Cm depends on this);
- If we don't force a hive unload, we *must* check whether there are other opened handles to keys inside this hive, and if so, we must fail.
If this is a force-unload however, we *must* invalidate/close all the opened handles to keys inside this hive, BUT this is left UNIMPLEMENTED at the moment (and therefore expect the already existing problems linked to this to still happen).
- Move the HvFree(Hive); call at the very end, just before deleting the Cm hive, and as is done in CmpDestroyHive().
svn path=/trunk/; revision=75066
- Remove few unneeded PCMHIVE "backwards"-casts, and in particular the 1st parameter of CmpUnlinkHiveFromMaster().
- Improve the dprints in CmCountOpenSubKeys().
svn path=/trunk/; revision=75064
- In the MmMapLockedPagesSpecifyCache test, try to allocate & free memory or unmap a section view in the mapped buffer space
CORE-13444
svn path=/trunk/; revision=75057
- Pass the class key handle as a parameter to IopAttachFilterDrivers, since we already opened it in PipCallDriverAddDevice.
CORE-13336 #resolve
svn path=/trunk/; revision=75051
- Pass Enum subkey handle to IopAttachFilterDrivers, since we've already opened it in PipCallDriverAddDevice.
CORE-13336
svn path=/trunk/; revision=75046
- Add I_BrowserQueryEmulatedDomains and I_BrowserSetNetlogonState to the new computer browser inferface file.
- Get rid of the now obsolete browsr.c file.
svn path=/trunk/; revision=75039
- Add the computer browser service client interface.
- Add binding code for the computer browser service client interface.
svn path=/trunk/; revision=75038
Implement NetAddAlternateComputerName, NetJoinDomain, NetRemoveAlternateComputerName, NetRenameMachineInDomain, NetSetPrimaryComputerName and NetUnjoinDomain. These functions call their counterparts in the workstation service.
svn path=/trunk/; revision=75032
- Properly stub SetupDiRemoveDeviceInterface. From Wine commit cdb72f39 by Hans Leidekker. Fixes crash when running setupapi_winetest:devinst.
CORE-13362
svn path=/trunk/; revision=75031
- Fix return value check for IEnumMoniker_Next. Fixes crash when running the test without renderers installed (as is the case on ROS).
CORE-13421 #resolve
svn path=/trunk/; revision=75030
NtAccessCheck: Call SePrivilegePolicyCheck to get the list of required privileges and return it to the caller.
This fixes the ERROR_INSUFFICIENT_BUFFER failures in the advapi32 security winetest.
svn path=/trunk/; revision=75028
- Avoid crash on invalid format in UserEnumClipboardFormats. This is covered by user32_winetest but we currently fail that call before it can crash. The next commit will change that.
CORE-13414
svn path=/trunk/; revision=75020
- Add support for CURRENT_USER trustee in AccpGetTrusteeSid. Fixes crash in advapi32_winetest:security
CORE-13420 #resolve
svn path=/trunk/; revision=75019
- Initialize the correct variable in HDA_FDOQueryBusRelations. Should fix random crashes due to uninitialized value use.
CORE-12707 #resolve
svn path=/trunk/; revision=75015
- Add a hack to avoid doubly freeing a DCE in IntDestroyClass. Since we don't implement W32PF_OWNDCCLEANUP and always free DCEs unconditionally in DceFreeDCE, it is not safe to access the class DCE here (and probably other places) since it could have been deleted by a dying thread.
CORE-13415 #resolve
svn path=/trunk/; revision=75014
- Rename the resource identifiers for column names to make sense. Get rid of one called File. This was renamed to Name but was the same in other languages, now it is replaced by Name for good. We also had two strings for a column called Comments and I think that in some languages one was singular and the other was plural. We only need the plural one.
Note to translators: Please make sure that everything I changed makes sense. I had to edit all language files and there can be mistakes and typos.
svn path=/trunk/; revision=75011
Implement SystemExtendedHandleInformation based on SystemHandleInformation.
To be improved...
Passes ntdll_winetest:info.
CORE-13368
svn path=/trunk/; revision=75006
- Return STATUS_SUCCESS from the SystemExtendedHandleInformation stub to make Process Explorer happy. Fixes infinite loop on AHK bot.
svn path=/trunk/; revision=75000
Fix pool use after free during user32📋
- Rename IntIsFormatAvailable to IntGetFormatElement to better reflect what it does
- Introduce a new IntIsFormatAvailable that actually returns BOOL as implied by the name
- In IntAddSynthesizedFormats, call IntGetFormatElement right before its data is actually used, since IntAddFormatedData will invalidate the element pointer.
Thanks to Kamil for the initial investigation on this.
CORE-13408 #resolve
svn path=/trunk/; revision=74993
- Initialize BITMAPINFOHEADER::biSize before calling GreGetDIBitsInternal in IntSynthesizeDib. Fixes use of uninitialized memory and subsequent stack buffer overflow.
CORE-13408
svn path=/trunk/; revision=74991
- Include the CLIPBOARDDATA structure itself when calculating the size passed to UserCreateObject in IntSynthesizeDib. Fixes user heap corruption when running user32_winetest:clipboard.
CORE-13408
svn path=/trunk/; revision=74990
Add a loop at the end of SchedServiceMain that will run until a stop event is signaled. This loop will be used to run the schduled jobs.
svn path=/trunk/; revision=74981
Fix UDFS volume size computation.
Note that side effect of this is that free space computation is broken;
due to larger bitmap walk. To be fixed...
CORE-4375
CORE-13366
svn path=/trunk/; revision=74979
- Fix fmt range check in NtUserGetClipboardFormatName (see Wine commit 4bdcf512). Fixes new test failures (and resulting debug spam) in user32_winetest:clipboard
CORE-13402 #resolve
svn path=/trunk/; revision=74977
When testing noncached mapping, use MmAllocateNonCachedMemory() as suggested by Thomas to avoid later potential failures
svn path=/trunk/; revision=74967
Implement NetServerTransportAdd, NetServerTransportAddEx, NetServerTransportDel and NetServertransportEnum. These functions call their counterparts in the server service.
svn path=/trunk/; revision=74949
- Implement NetServerDiskEnum, NetServerGetInfo and NetServerSetInfo. These functions call their counterparts in the server service.
- The new NetServerGetInfo function is disabled because its server side (NetrServerGetInfo) must be implemented before we can replace the Wine implemenation without loss of functionality.
svn path=/trunk/; revision=74948
- Add SEH in DbgkpPostFakeModuleMessages. Fixes crash in ntdll_winetest:info when trying to debug another process that was started suspended.
CORE-13369 #resolve
svn path=/trunk/; revision=74946
Set the volume label with the logical volume ident contained in the file set descriptor.
Microsoft appears to do so, so mimic this behavior to have consistent volumes labels with Windows.
CORE-4375
svn path=/trunk/; revision=74945
Avoid JOBs overrunning in LoadJobs().
- Define JOB_NAME_LENGTH and use it instead of hardcoded values.
Based on a patch by Victor Martinez Calvo.
CORE-13389
svn path=/trunk/; revision=74944
- Fix a potential overflow and uninitialized variable in InitNegNumFmtCB().
- Get rid of the now useless string buffer szNewSample.
Based on a patch by Victor Martinez Calvo.
CORE-13384
svn path=/trunk/; revision=74942
Complete the implementation of UDFGetNetworkInformation() so that it sets all the fields.
This fixes displaying file size in explorer.
CORE-4375
CORE-13366
svn path=/trunk/; revision=74919
[SETUPAPI_APITEST]: When selecting another test_class_guid and test_class_name couple via SetupDiClassNameFromGuidA(), check whether this function actually succeeds. Also, improve some error output.
svn path=/trunk/; revision=74916
Fix broken implementation of UDFGetFullNameInformation().
Always return full name length so that caller can allocate a big-enough buffer for later call.
CORE-4375
svn path=/trunk/; revision=74914
- Implement NetFileClose, NetFileEnum and NetFileGetInfo. These functions call their counterparts in the server service.
- Get rid of share.c as it is no longer needed.
svn path=/trunk/; revision=74913
- Implement NetSessionDel, NetSessionEnum and NetSessionGetInfo. These functions call their counterparts in the server service.
svn path=/trunk/; revision=74910
6b53b79 rpcrt4: Use HEAP_ZERO_MEMORY to alloc RpcServerProtseq objects.
28f865b rpcrt4: Add close_read implementation for TCP connections.
29f0b28 rpcrt4: Add close_read implementation for named pipe connections.
42ba4d7 rpcrt4: Introduce op for closing connection read end and use it when shutting down server.
ef267f1 rpcrt4: Store all active connections in RpcServerProtseq.
dae3065 rpcrt4: Remove connection from list in RPCRT4_ReleaseConnection.
812897c rpcrt4: Use HEAP_ZERO_MEMORY to alloc RpcConnection objects.
13d529a rpcrt4: Renamed connections list to listeners.
c953763 rpcrt4: Remove no longer needed helpers.
b548338 rpcrt4: Implement cancel_call for named pipes.
372c9e0 rpcrt4: Cache event handle in RpcConnection_np object.
6e7a297 rpcrt4: Use non-blocking listening on named pipes.
4f4ac8c rpcrt4: Use named pipe in overlapped mode.
bd6f807 rpcrt4: Simplify rpcrt4_conn_np_read implementation.
f62b9d6 rpcrt4: Simplify rpcrt4_conn_np_write implementation.
2035294 rpcrt4: Use standard Wine list to store connections in RpcServerProtseq.
e621593 rpcrt4: Always use winsock for networking.
d0ed6d1 rpcrt4: Get rid of manual_listen_count and use binary state instead.
svn path=/trunk/; revision=74904
9abd3d1 comctl32: fix buttons becoming unthemed when pressed/released
8967e87 comctl32/taskdialog: Display content text label.
65d64e1 comctl32/listview: Simplify a couple of conditions that are using LVFI_PARTIAL.
407a3c0 comctl32/listview: Search through all items in LVFI_NEARESTXY mode.
5fe4493 comctl32/listview: When adding a scrollbar, update the other one.
8ef79b0 comctl32/listview: Convert item text once when looking for insertion point.
791924a comctl32/listview: Remove internal autoarrange flag, it breaks positioning.
b1d46e0 comctl32/taskdialog: Remove superfluous title pointer check (Coverity).
48c4edd comctl32/pager: Prevent excessive PGN_CALCSIZE notifications during PGM_SETCHILD.
d6a6055 comctl32: Improve right-click handling in treeview controls.
6926564 comctl32: Don't touch the new child twice in PGM_SETCHILD.
995b690 comctl32/taskdialog: Initial implementation of a minimal task dialog.
e2245bc comctl32/taskdialog: Move TaskDialogIndirect and its tests into own source files.
429705e comctl32/propsheet: Implement PSPCB_ADDREF/PSPCB_RELEASE notifications.
a3aa217 comctl32/propsheet: Enforce minimal PROPSHEETPAGE structure size when creating a page.
b7cc440 comctl32: Update the tooltip rectangle when a tool button is hidden.
690022c comctl32: Return TRUE from LVM_REDRAWITEMS with bad indices.
svn path=/trunk/; revision=74902
Enable the UDFS driver on ReactOS. It will be started "on demand" by the FS_REC driver when an UDF
formatted volume is inserted.
It's not bug free (yet? ;-)). It seems to show issues when trying to start an executable, it locks
and never release DVD (ie, you've to force ejection) and you might face deadlocks.
But, for the basics, you can open an UDF volume, browse it, and display files.
CORE-4375
svn path=/trunk/; revision=74901
lolfix some deadlocks in UDFS:
- deadlock when enumerating files
- deadlock on shutdown after volume change
I could track it to the fact that for whatever reason, GCC wrongly optimize the
BOOLEAN used to store whether the VCB resource was acquired. The optimization being
to assume it's always FALSE. Thus, the resource is never released and the driver
ends in a deadlock.
To avoid this: marked the BOOLEAN variables as volatile.
I guess there are same kind deadlocks I couldn't see in my limited tests...
CORE-4375
svn path=/trunk/; revision=74897
5a06b6b widl: Add missing width and alignment for VARIANT.
028b2bd widl: Initialize decoded_size.
2ff2792 widl: Accept known type as library name.
svn path=/trunk/; revision=74892
6d3243c comdlg32: Postpone setting ofn->lpstrFileTitle to work around an application bug.
3c33ebd comdlg32: Use existing symbol for Help button id.
5d9ab56 comdlg32: Select the correct font before querying the extents.
e77771c comdlg32: Set the radiobuttons' font if they're part of a visual group.
0099452 comdlg32: Use pixel sizes throughout.
6df0198 comdlg32: Scale the control size limits with dpi.
6891b5a comdlg32: Don't ask for icon information since it's unused.
a44a608 comdlg32: Take nMaxFile into account when converting A->W.
b47de18 comdlg32: Use GetPropW() to get to file dialog data.
c23a91c comdlg32: Consolidate file dialog initialization to avoid duplication.
aef8433 comdlg32: Expand initial directory path for file open dialog.
svn path=/trunk/; revision=74891
707ab55 xmllite/writer: Fix IID argument handling in CreateXmlWriter().
d1e1457 xmllite/reader: Fix IID argument handling in CreateXmlReader().
a68e51c xmllite/writer: Preserve original encoding name spelling in writer output.
ef023c3 xmllite: Recognize us-ascii encoding.
9506e7d xmllite: Return local name stored in namespace for prefixed namespace attribute values.
1b9b791 xmllite: Allocate value in reader_add_attr.
daf0504 xmllite: Allow reading from allocated strings in ReadValueChunk.
f862222 xmllite: Store allocated copy of local name in attribute struct and use that instead of StringValue_LocalName.
004d615 xmllite: Don't use StringValue_LocalName for element nodes.
6917e2a xmllite: Clear all parser values in SetInput.
291ffdd xmllite: Don't fail in readerinput_detectencoding if input buffer has 3 bytes.
536ed3f xmllite: Return empty value for end element and none nodes.
48fff1b xmllite: Replace crln in input buffer with nl.
2b5203b xmllite: Fixed ReadValueChunk implementation.
a3d7806 xmllite: Fixed buffer handling in reader_parse_reference.
68aeee4 xmllite: Return WC_E_SYNTAX if there is unexpected data in the end of the stream.
253f233 xmllite/reader: Return same string for local and qualified names for attributes when appropriate.
d7057a3 xmllite/reader: For elements without a prefix return same string for both local and qualified names.
1e015f1 xmllite/reader: Always return local name from element structure.
876de4a xmllite/reader: Reset reader nesting depth on error.
ec9e05c xmllite/reader: Enter error state on parsing error.
b115e96 xmllite/reader: Improve returned position for whitespace text nodes.
9685fec xmllite/reader: Improve line number updating when switching to the next line.
79a6567 xmllite/reader: Fix position methods return values in closed reader state.
62a41d0 xmllite/reader: Return correct error for multiple colons in qualified name.
3b83a44 xmllite/reader: Explicitly return empty string as qualified name for some node types.
52f9193 xmllite/reader: Explicitly return empty static string as local name for nodes without names.
1ccc1f2 xmllite/reader: Return static empty string as xml declaration node value.
65e62c3 xmllite/reader: Fix reader position returned for xml declaration node.
6cf9524 xmllite/reader: Improve returned reader position for elements and attributes.
e1c31e1 xmllite/reader: Remove redundant parameter.
d3319f6 xmllite/reader: Return prefixes from namespace stack.
b57589a xmllite/reader: Return qualified element names from the stack, instead of input buffer.
3ae1043 xmllite/reader: Return local element names from the stack, instead of input buffer.
3697bd9 xmllite/reader: Return empty string for namespace uri for some nodes.
63c489f xmllite/reader: Fix GetValue() for comments.
71a0733 xmllite/reader: Enforce maximum element depth limit.
ce84b20 xmllite/reader: Return qualified names for attributes.
3fe5f25 xmllite/reader: Fix prefix returned after moving back to element.
70028b7 xmllite/reader: Return empty value for elements.
7c44c65 xmllite/reader: Return proper name for xml declaration PI.
8f0c235 xmllite/reader: Improve the way nesting level returned by GetDepth() is updated.
073c43a xmllite/reader: Implement IsEOF().
b188079 xmllite/reader: Reset node type to XmlNodeType_None on EOF.
0cbd938 xmllite/reader: Always return node type from Read().
80cf883 xmllite/reader: Improve input stream encoding detection.
5b78cc9 xmllite/writer: Fix Release() trace.
9c988e7 xmllite/writer: Implement WriteString().
107615d xmllite/reader: Fix writing back resolved character reference value.
05956e6 xmllite: Fix CreateXmlReaderInputWithEncodingName spec file entry.
d369857c xmllite: Add __WINE_ALLOC_SIZE attributes to heap_xxx() functions.
svn path=/trunk/; revision=74872
05c23c9 wininet: Use isspaceW() instead of isspace() for WCHARs.
f9d1b16 wininet: Return failure when handling http redirect without hostname.
4ca5f42 wininet: Allow to set INTERNET_OPTION_HTTP_DECODING on sessions and connections.
7d8cf31 wininet: Don't use returned read size if read failed in gzip_read.
2952c63 wininet: Get rid of no longer needed get_avail_data from data stream implementations.
295291b wininet: Always use non-blocking reads in HTTP_ReceiveRequestData.
fd0ac40 wininet: Get rid of no longer needed blocking_mode_t.
18f9d03 wininet: Get rid of no longer needed BLOCKING_WAITALL.
7eaadab wininet: Merge InternetReadFile and InternetReadFileEx implementations.
a546e8a wininet: Reimplemented InternetQueryDataAvailable on top of async_read.
0880874 wininet: Rewrite InternetReadFileEx for http protocol to make use of non-blocking reads.
98bcd00 wininet: Rewrite asynchronous read to try to fill whole buffer and not buffer additional data unless requested.
c140a70 wininet: Propagate WSAEWOULDBLOCK from read_http_stream.
f42a2cc wininet: Pass blocking mode to HTTPREQ_Read.
67b5677 wininet: Propagate WSAEWOULDBLOCK result from content decoding reads.
36f6387 wininet: Forward InternetGetConnectedState to Ex function.
7b42dc4 wininet: Improved netconn_drain_content.
6caecb6 wininet: Handle query parameters for HTTPS urls in InternetOpenUrlW.
e9be490 wininet: Fix some more spec file entries.
svn path=/trunk/; revision=74866
[WINDOWSCODECS] Sync with Wine Staging 2.9. CORE-13362
00d3b89 windowscodecs: Simplify a bit comparison of two PROPVARIANTs.
5ea8f41 windowscodecs: Implement IWICMetadataQueryReader::GetContainerFormat.
8890f2e windowscodecs: Implement WICMapSchemaToName.
dd7fa09 windowscodecs: Implement WICMapShortNameToGuid.
4cf250c windowscodecs: Implement WICMapGuidToShortName.
bb57e0c windowscodecs: Fix 32bppRGB to 32bppRGBA conversion.
b1037a9 windowscodecs: Add support for 32bppRGB, 32bppRGBA and 32bppPRGBA to format converter.
4e2cdd5 windowscodecs: Tolerate partial reads in the IFD metadata loader.
213b395 windowscodecs: Add support for 16bpp RGBA format to TIFF decoder.
2133dd1 windowscodecs: Add support for 4bpp RGBA format to TIFF decoder.
41827e1 windowscodecs: Add support for 32bppCMYK and 64bppCMYK formats to TIFF decoder.
306b4d3 windowscodecs: Add support for 128bppRGBAFloat format to TIFF decoder.
74f105d windowscodecs: Add support for 12bpp RGB format to TIFF decoder.
76bbf38 windowscodecs: Add support for 3bps RGB format to TIFF decoder.
2103e19 windowscodecs: Add support for 16bppGray and 32bppGrayFloat formats to TIFF decoder.
150fc32 windowscodecs: Avoid redundant checks when reading a TIFF tile.
266e4ec windowscodecs: Fail earlier in TIFF decoder's Initialize method for unsupported pixel formats.
b7306a4 windowscodecs: Fix the SupportsTransparency flag value for various pixel formats.
35483da include: Fix typos in WICPersistOptions enumeration names.
2d5c861 windowscodecs: Fixed loading png from streams.
fdccccb windowscodecs: Fix IWICImagingFactory_CreateDecoderFromFileHandle_Proxy spec file entry.
376b075 windowscodecs: Remove dead assignment (clang).
b0d04e6 wincodecs: Simplify property name allocation.
5107ef7 wincodecs: Implement FilterOption property for PNG encoder.
6283014 wincodecs: Trigger conversion to target format in WriteSource().
svn path=/trunk/; revision=74862
3ca407e wbemprox: Add Vendor field in Win32_ComputerSystemProduct.
b3f98ab wbemprox: Add DriverDate for Win32_VideoController.
65473a8 wbemprox: Add InstalledDisplayDrivers for Win32_VideoController.
b062c6c wbemprox: Add Status for Win32_VideoController.
32707e5 wbemprox: Add ConfigManagerErrorCode for Win32_VideoController.
9f81263 wbemprox: Provide DeviceID, Location and PortName for printers.
66e3c97 wbemprox: Also free data for tables that don't have a fill function (Valgrind).
34f77a6 wbemprox: Simplify and standardize the heap_xxx() declarations.
svn path=/trunk/; revision=74859
a392e14 wbemdisp: Implement ISWbemProperty::get_Value.
6721725 wbemdisp: Implement ISWbemPropertySet::Item.
cb2660b wbemdisp: Implement ISWbemObject::get_Properties_.
a11aed3 wbemdisp: Invoke the generic methods and properties as well as the dynamic ones.
66edb81 wbemdisp: Search for the generic methods and properties as well as the dynamic ones.
c1242a2 wbemdisp: Add missing methods to the ISWbemObjectVtbl.
64be3a2 wbemdisp: Simplify and standardize the heap_xxx() declarations.
svn path=/trunk/; revision=74857
4ecc00f vbscript: Allow colons at the end of first line of loops.
8ab8a92 vbscript: Add __WINE_ALLOC_SIZE attributes to heap_xxx() functions.
svn path=/trunk/; revision=74853
30e8768 usp10: Validate substition record sequence indices in GSUB_apply_ContextSubst().
ebe75cb usp10: Simplify the "sr_2" assignments in GSUB_apply_ContextSubst().
6c13170 usp10: Range check glyph counts in GSUB_apply_ContextSubst().
c5619be usp10: Validate positioning record sequence indices in GPOS_apply_ContextPos().
82d36ba usp10: Simplify the "pr_2" assignment in GPOS_apply_ContextPos().
1b02c1a usp10: Range check glyph counts in GPOS_apply_ContextPos().
d1ca880 usp10: Validate substition record sequence indices in GSUB_apply_ChainContextSubst().
34a9400 usp10: Validate positioning record sequence indices in GPOS_apply_ChainContextPos().
9694aeb usp10: Avoid special handling if the substitution count is 0 in GSUB_apply_ChainContextSubst().
f7b943e usp10: Range check glyph counts in GSUB_apply_ChainContextSubst().
24943fe usp10: Simplify the chaining context table assignments in GSUB_apply_ChainContextSubst().
02316e6 usp10: Rename the chaining context tables in GSUB_apply_ChainContextSubst() to something more descriptive.
0389768 usp10: Return early if the number of positioning operations is 0 in GPOS_apply_ChainContextPos().
7dfe9b9 usp10: Range check glyph counts in GPOS_apply_ChainContextPos().
f6c0146 usp10: Simplify the chaining context table assignments in GPOS_apply_ChainContextPos().
fb3ea0a usp10: Rename the chaining context tables in GPOS_apply_ChainContextPos() to something more descriptive.
04e5466 usp10: Handle invalid arguments in ScriptIsComplex().
4553871 usp10: Check if corresponding headers are present before accessing their feature lists in _initialize_feature_cache.
63bcfa3 usp10: Get rid of the code duplication between GSUB_initialize_feature_cache() and GPOS_expand_feature_cache().
9b0f3f1 usp10: Get rid of some code duplication in GPOS_expand_feature_cache().
0ffd5b4 usp10: Double the languages array size when growing it in GPOS_expand_language_cache().
218be44 usp10: Double the scripts array size when growing it in GPOS_expand_script_cache().
9a15753 usp10: Introduce a helper function to lookup a language in a LoadedScript structure.
2a0ffc9 usp10: Introduce a helper function to lookup a script in the script cache.
213d358 usp10: Avoid LPVOID.
1403087 usp10: Avoid LPCVOID.
a204e58 usp10: Avoid LPWSTR.
cdd47c3 usp10: Avoid LPCWSTR.
af617aa usp10: Avoid LPBYTE.
34c2f74 usp10: Avoid LPWORD.
ab8ec60 usp10: Avoid LPPOINT.
ba66b62 usp10: Avoid LPOUTLINETEXTMETRICW.
df21247 usp10: Make the script cache parameter to get_opentype_script() const.
c8f87ad usp10: Make the script cache parameter to GPOS_apply_MarkToBase() const.
cd9db34 usp10: Pass const metrics to GPOS_convert_design_units_to_device().
c3dc9ed usp10: Use heap_free() instead of HeapFree().
6a0e5bb usp10: Use heap_alloc() instead of HeapAlloc().
77e5a2f usp10: Use heap_alloc_zero() instead of HeapAlloc() with HEAP_ZERO_MEMORY.
3c704c2 usp10: Use bsearch() to lookup the script range in get_char_script().
a523b46 usp10: Introduce an enumeration for script types.
502d239 usp10: Do not fall back to presentation form B if the contextual feature exists in ContextualShape_Arabic().
f13dea5 usp10: Properly determine the glyph run direction when shaping Script_Arabic.
c94a5fd usp10: Take the script direction into account when applying OpenType features.
1727dd4 usp10: Use USP10_FindGlyphInLogClust() in UpdateClusters().
bab506e usp10: Use memmove() in GSUB_apply_LigatureSubst().
66df220 usp10: Make feature tables const.
b32fb23 usp10: Fix ScriptGetProperties spec file entry.
1a42ee3 usp10: Add __WINE_ALLOC_SIZE attributes to heap_xxx() functions.
892393b usp10: Filter out DeltaFormat == 0 too, valid range is [1, 3].
66dce1e usp10: Introduce an enumeration for GSUB lookup types.
fefd151 usp10: Ignore device tables with invalid delta format.
b6d541c usp10: Iterate in visual order in GPOS_apply_feature().
6fec9b1 usp10: Return the logical offset in GPOS_apply_lookup().
8d15667 usp10: Return the logical offset in GPOS_apply_ChainContextPos().
2210196 usp10: Return the logical offset in GPOS_apply_ContextPos().
6e84358 usp10: Return the logical offset in GPOS_apply_PairAdjustment().
61e8a38 usp10: Introduce an enumeration for GPOS lookup types.
4b22953 usp10: Properly get glyph widths for OpenType fonts in ScriptPlaceOpenType().
svn path=/trunk/; revision=74851
98d0fa9 shlwapi: Use isalnumW() instead of isalnum() for WCHARs.
dfb846c shlwapi: Fixed error handling in StrRetToBufW.
svn path=/trunk/; revision=74847
d4b1938 riched20: Only write out non-default pattern colours.
5f3772a riched20: Don't compare the colours if the old and new states are both auto.
6bcf4d6 riched20: Add linefeeds after the colortbl and generator groups.
8b79854 riched20: Remove a hack that should be longer be needed.
3d291dd riched20: Write the char format for the end-of-paragraph marker.
svn path=/trunk/; revision=74841
090b4f2 propsys: Add support for VT_LPSTR and VT_LPWSTR to PropVariantCompareEx. (v2)
99758d9 propsys: Add support for VT_LPSTR to PropVariantChangeType. (v2)
43fa646 propsys: Make VT_FILETIME handling by PropVariantChangeType more implicit.
55b3752 propsys: Add support for VT_BSTR to PropVariantChangeType.
fc00aec propsys: Add support for VT_LPWSTR and VT_BSTR to PropVariantToStringAlloc.
aa841b3 propsys: Add support for VT_I1 and VT_UI1 to PropVariantChangeType.
8e273c8 propsys: Fix PSGetPropertyDescriptionListFromString spec file entry.
6df21d4 propsys: Use snprintf in PROPVAR_ConvertFILETIME.
svn path=/trunk/; revision=74836
6e7179e oleaut32: Make OleLoadPicture load DIBs using WIC decoder.
1762f89 oleaut32: Use VariantChangeTypeEx to convert to VT_BOOL.
c260de0 oleaut32: Remove dead code.
efc86ec oleaut32: Fix parse error when converting non-ascii string to VT_DATE.
f506ffc oleaut32: Use VariantInit() rather than open coding it.
c082edb oleaut32: Remove redundant call to VariantClear().
7fb4809 oleaut32: Implement GetAltMonthNames().
d90fcb4 oleaut32: Fix OleLoadPictureEx spec file entry.
svn path=/trunk/; revision=74831
9cc976a ole32: Fix compilation with recent versions of gcc.
2e36326 ole32: Synthesize dibs or bitmaps as appropriate.
e27708f ole32: Create CF_DIB and CF_BITMAP entries when either is cached.
20a8f1a ole32: Implement IOleCache_EnumCache().
f9b0f60 ole32: Check the cache entry's stgmedium for the unloaded state.
8fc1a4c ole32: OleUninitialize() does not release the reference to the clipboard's source dataobject.
1d2860e ole32: Fix up the dib's resolution on loading.
e7bb4ba ole32: Don't cache the BITMAPFILEHEADER.
fc49d98 ole32: Set the advise flags in CreateEntry().
77d1eba ole32: Use the helper function to copy the clipboard's FORMATETC.
9ee30d7 ole32: Use the helper function to copy the datacache's FORMATETC.
11db491 ole32: Add a helper to copy FORMATETC structures.
b399baf ole32: Add CoRegisterSurrogate/Ex stubs.
87dba2b ole32: Zero STGMEDIUM before calling IDataObject::GetData.
c7e6fe6 ole32: Added GlobalOptions object stub implementation.
fd09c37 ole32: Use generic class factory for StdComponentCategoriesMgr object.
076c782 ole32: Use generic class factory for pointer moniker.
961c3dc ole32: Use generic class factory for class moniker.
947c9ba ole32: Use generic class factory for composite moniker.
b05fd46 ole32: Use generic class factory for anti moniker.
dee6463 ole32: Use generic class factory for item moniker.
cf7883f ole32: Added generic class factory implementation and use it for file moniker.
svn path=/trunk/; revision=74829
59c39fa jscript: Added new debug channel printing details and backtrace of unwinded exceptions.
60232cc jscript: Always jump to finally block from OP_pop_exept when available.
685cd43 jscript: Pass finally offset instead of catch ident to OP_push_except.
8bd99c3 jscript: Ensure that OP_pop_except is called with proper stack depth.
622eb72 jscript: Added new opcode to enter catch block and use it to setup the scope.
b7bb166 jscript: Simplify pop_to_stat implementation.
1731629 jscript: Add __WINE_ALLOC_SIZE attributes to heap_xxx() functions.
svn path=/trunk/; revision=74811
Revert r74780: it indeed works here, but when the problem happens in other places (it does!)
where it cannot be solved that way, we're doomed. It will be required to find an appropriate solution...
CORE-4375
svn path=/trunk/; revision=74805
- ntdll.dll: RtlConvertUiListToApiList(), which is a helper used by netapi32.dll;
- user32.dll: GetWinStationInfo() (that just calls into win32k), which is called by e.g. winmm.dll .
svn path=/trunk/; revision=74803
Make the driver really less verbose by introducing two macros UDFPrint and UDFPrintErr
So far, because of sed -i, almost all KdPrint became UDFPrint. It would be interesting
to promote some to UDFPrintErr (if someone motivated ;-))
CORE-4375
svn path=/trunk/; revision=74802
11fc5c0 gdiplus: Prefer using pre-multiplied ARGB data in the scaler.
17162a9 gdiplus: Remove ceilf/floorf calls from bilinear scaler. (v2)
6bade0c gdiplus: Change multiplications by additions in the x/y scaler loops.
db49130 gdiplus: Change the order of x/y loops in the scaler.
9247b54 gdiplus: Set correct color space flags for grayscale images.
81ccd6b gdiplus: Force conversion of 8 bpp grayscale PNG images to 32 bpp BGRA.
4fe61f3 gdiplus: Ignore an externally set DC clipping region.
a188922 gdiplus: Ignore an externally set DC origin.
b8a8e1b gdiplus: Check SHADEBLENDCAPS only for printer devices.
c2a4f19 gdiplus: Fix compilation on systems that don't support nameless unions.
29a55bc gdiplus: Use software mode to draw semi-transparent lines when necessary.
c89de1d gdiplus: Use better naming for line alignment format field.
69b41e7 gdiplus: Fix generic string formats behavior.
a3f0a59 gdiplus: Avoid infinite recursion in flatten_bezier().
36c9ac3 gdiplus: Check for null in GdipGetFontHeight.
7f25431 gdiplus: Fix GdipCreateStreamOnFile spec file entry.
43e36d6 gdiplus: Simplify and standardize the heap_xxx() declarations.
svn path=/trunk/; revision=74795
d47c07d dbghelp: Avoid using isdigit() for WCHARs.
8d6cf80 dbghelp: Add support for char32_t type.
b316ac1 dbghelp: Add support for char16_t type.
74f05b8 dbghelp: Use the main module load address from the PEB.
329b176 dbghelp: Use debugstr_a() to trace a string that can be NULL.
4bbb252 dbghelp: Removed no longer needed psapi import.
svn path=/trunk/; revision=74794
31943c4 crypt32: Add MS root CA 2010/2011.
148ece3 crypt32: Sort specfile.
71e6152 crypt32: Use isspaceW() instead of isspace() for WCHARs.
svn path=/trunk/; revision=74789
Our current storage stack iteration considers that any CDROM is read-only and forces it.
Reflect that fact in UDFS; we cannot assume that our device won't be readonly.
CORE-4375
svn path=/trunk/; revision=74781
HIde a bug in UDFQueueDelayedClose() by removing the boolean storing the fact
that VCB resource was (or not) acquired.
If you debug it, you see that in finally block, value is set to false on exit
without any reason: it is always acquired!
Given it's always acquired, just drop the boolean, but this doesn't explain the
root cause of this bug....
Here it helps avoiding deadlocks on directory listing on a DVD formatted with UDF
CORE-4375
svn path=/trunk/; revision=74780
40a4a5c dmusic: Fail in CreatePort() if SetDirectSound() wasn't called.
62bf207 dmusic: Remove the port from the ports list on the port destruction.
3b4909f dmusic: Set the dsound pointer to NULL on an error path.
829ef41 dmusic: Fix compilation on systems that don't support nameless structs or unions.
43b3f84 dmusic: Add dsound handling to the synth port Activate() method.
f968edb dmusic: Partially implement the synth IDirectMusicPort::SetDirectSound().
e8873b7 dmusic: Pass only the needed stuff to the DMPort create functions.
36a88d2 dmusic: Implement IDirectMusic8::SetDirectSound().
b75e8bc dmusic: Use more sensible and consistent field names for IDirectMusic8Impl.
950b8a9 dmusic: Avoid an intermediate copy in PackStructured().
7cd7f14 dmusic: Implement IDirectMusicBuffer::PackUnstructured().
4fbae8e dmusic: Use DMUS_EVENT_SIZE() to calculate the size of the message.
svn path=/trunk/; revision=74777
e87ccb8 dinput: Assume a 1-to-1 axes map when no axes match.
41b126b dinput: Handle username in EnumDevicesBySemantics.
967399e dinput: Keep username same between device objects.
svn path=/trunk/; revision=74776
Test various sizes with MmMapLockedPagesSpecifyCache() to show that behavior is strictly identical.
This was designed/tested under W2K3.
CORE-8204
svn path=/trunk/; revision=74759
- Implement NetShareEnum, NetShareEnumSticky, NetShareGetInfo and NetShareSetInfo. These functions call their counterparts in the server service.
- NetShareAdd: Fix the level check.
svn path=/trunk/; revision=74754
- Implement NetShareAdd, NetShareCheck, NetShareDel and NetShareDelSticky. These functions call their counterparts in the server service.
- Add stubs for NetShareEnum, NetShareEnumSticky, NetShareGetInfo and NetShareSetInfo.
- Get rid of the NetShare wine stubs.
svn path=/trunk/; revision=74752
Add tests for MmMapLockedPagesSpecifyCache() functions, and more specifically for usermode mapping.
This was designed/tested under W2K3.
CORE-8204
svn path=/trunk/; revision=74751
Update the PCI hardware IDs database. Extracted from the pci.ids database from http://pci-ids.ucw.cz/ from 2017-05-25 03:15:02
Maintained by Albert Pool, Martin Mares, and other volunteers from the PCI ID Project.
svn path=/trunk/; revision=74732
- Correctly specify the buffer size for RtlInitEmptyUnicodeString calls;
- Prefer using RtlAppendUnicodeStringToString instead of RtlAppendStringToString: both actually do the very same job on counted strings, but the former doesn't need the explicit PSTRING casts, and NULL-terminate the string buffer if possible (aka. if the available remaining length permits it, otherwise it doesn't add any NULL terminator, falling back to the default behaviour of RtlAppendStringToString).
- Remove a deprecated commented-out variable.
svn path=/trunk/; revision=74708
Add Kernel32 implementation for SRW locks and condition variables.
This is based on Wine implementation.
CORE-7546
CORE-8204
svn path=/trunk/; revision=74705
Create a new NTDLL library that exports some of the NTDLL Vista+ functions.
This new NTDLL includes at the time of commit:
- SRW locks implementation that was originally built in RTL but never used ;
- Condition variables implementation which is a new code in ReactOS trunk.
Condition variables is an implementation of Stephan Röger, with minor formatting
changes by Timo Kreuzer and various changes by myself.
CORE-7546
CORE-8204
svn path=/trunk/; revision=74703
- Fix key handle leak in PipCallDriverAddDevice
- Avoid double-close in failure case of IopAttachFilterDrivers
- Simplify closing handles, and use sensible variables names in IopAttachFilterDrivers
CORE-13336
svn path=/trunk/; revision=74700
- Remove some dead code in acpi_system_add. CID 502179
- Define deviceName only in debug builds in Bus_AddDevice. CID 502180
svn path=/trunk/; revision=74696
- When setting a file as tiled wallpaper, it will now indeed show up tiled instead of centered.
- All three options (tiled, centered, stretched) are working. (non-bitmaps only in Vista and above)
CORE-12164 #resolve
svn path=/trunk/; revision=74690
Only warn for unimplemented in ExAllocatePoolWithTagPriority() when memory allocation fails. For the rest, the caller has the memory it asked for.
Side note: we could also warn when caller wants to use special pool.
CORE-13334
CORE-11327
svn path=/trunk/; revision=74688
[RXCE]
Try to make use of wrapper more 'properly'. Now, we use wrappers for ASSERT and memory management.
This allows us to allocate memory with low priority (which isn't supported by ReactOS yet :-().
Note that we go a bit farther than MS: we also define RxFreePoolWithTag() and make use of it.
This should make Thomas happy :-)
CORE-11327
svn path=/trunk/; revision=74683
- Make RxpUndoScavengerFinalizationMarking() more smart: only warn about unimplemented if there's scavenger mark
- Implement FCB operations (release/acquire) tracker
CORE-11327
svn path=/trunk/; revision=74678
[RXCE]
[DDK]
Add an initial implementation of the RXCE and RDBSS libraries that are used to implement mini-redirectors
The associated headers are also added to DDK
The implementation is partial (really!) and is only working for read-only operations.
It leaks memory as hell (no refcounting implemented) and thus, objects freeing is not implemented.
It was tested with NFS41 driver. With such RDBSS, it's possible for the driver to mount a remote share, to list
files, to query their properties, to query volume properties, and finally to read files (with some corruption under
specific conditions).
Please refrain from committing in this (especially for modifying whitespaces or fixing comments...), this is still WIP
and under development, it would mess with my local changes!
In itself, it doesn't bring anything to ReactOS yet, as no mini redirector is available in ReactOS source tree.
This may come later on with NFS41.
More to follow...
CORE-11327
svn path=/trunk/; revision=74674
Import Wine commit (by Vincent Povirk):
- b8a8e1bde9382897927945ec0b58b8a2fcfcfe59, Check SHADEBLENDCAPS only for printer devices.
In short, this avoids black boxes in GOG setup. This may help other software having rendering issues due to alpha layer.
svn path=/trunk/; revision=74665
- Fix our broken support for the Windows-GCC configuration (again) by providing proper implementations of ACPI_DIV_64_BY_32 and ACPI_SHIFT_RIGHT_64.
CORE-13316 #resolve
svn path=/trunk/; revision=74656
- Sort keyboard layouts and make them translatable.
- Remove quotation marks from service display names and descriptions and fix a typo.
CORE-11885
svn path=/trunk/; revision=74654
[NDK]: Make a #define value look less "magical".
[ARC]: Write "BaseDllName" using the regular case used in other parts of ReactOS' code.
svn path=/trunk/; revision=74644
- Stub and export VfatxChkdsk();
- Sync and fix the file code headers;
- In the libs, use NTAPI instead of WINAPI;
- Use 4-space indentation (instead of tabs).
svn path=/trunk/; revision=74643
- Remove Czech koruna from currency conversions... their exchange rate is not a constant
- While here, add new Euro currencies, and improve the accuracy of some conversion rates
svn path=/trunk/; revision=74625
- Correctly prepare the I/O port map for V86 mode by making HalpSavedIoMap actually point to it instead of to the parent structure. Fixes boot with video BIOS code that relies on I/O ports FF00 through FFFF.
CORE-13306 #resolve
svn path=/trunk/; revision=74623
- Fix logic error in LdrpInit that caused us to busy-wait instead of sleep. This makes LibreOffice start up in a few seconds instead of sitting around at 100% CPU for a minute or two.
CORE-13268 #resolve
svn path=/trunk/; revision=74600
- Do not change RTL_HANDLE_TABLE::CommittedHandles when committing a new page of handle entries. This value must always point to the beginning of the allocation, to correctly track the entire committed range. Fixes LibreOffice Writer (and ntdll_apitest) crash.
CORE-13271 #resolve
svn path=/trunk/; revision=74599
- In SpiScanAdapter(), after an SCSI INQUIRY command has succeeded and we are setting up a LUN extension structure,
cache in its InquiryData member the inquiry data retrieved from the INQUIRY command (alternatively we might just cache
a pointer to a valid "LunInfo" since the latter are also cached elsewhere).
- This allows SpiBuildDeviceMap(), which is called just after SpiScanAdapter(), to correctly report in the registry SCSI tree
the correct Identifier and DeviceType values for the enumerated logical units.
- Use ExFreePoolWithTag in SpiScanAdapter().
svn path=/trunk/; revision=74597
- In SpiSendInquiry():
* use ExFreePoolWithTag;
* if IoBuildDeviceIoControlRequest() fails, exit correctly the loop so that the allocated buffers are cleaned up;
- In SpiBuildDeviceMap():
* support new peripheral type names, as documented in the links in the comments;
* fix the "CommunicationsPeripheral" name (communication'S') as documented, and as done in windows' scsiport driver.
svn path=/trunk/; revision=74595
- Implement OTD_NONCLIENT for OpenThemeDataEx and OpenThemeDataFromFile.
- Open the WINDOW or the SCROLLBAR theme classes only when needed. Use OpenThemeDataEx instead of the internal MSSTYLES_OpenThemeClass. Cache the open theme in the WND_DATA for later use.
svn path=/trunk/; revision=74592
- Add a rather messy header that I've been slowly building as I'm starting to understand the internals.
- Mostly taken from the MS PDBs and info gained from OSR and Alex Carp's blog. (https://fsfilters.blogspot.co.uk)
svn path=/trunk/; revision=74590
- Implement FltCreateCommunicationPort, FltCloseCommunicationPort, FltCloseClientPort, and stub FltSendMessage
- Add two new object types for the server port and client ports
- Implement object type callbacks for closing and deleting these new ports
- Create the comms object and create the symbolic link (FltMgrMsg) to allow usermode to open a handle to the comms layer (aka FilterConnectCommunicationPort)
- Although untested, the comms layer objects should be mostly setup, and we should be able to open a connection from usermode.
svn path=/trunk/; revision=74589
- Add custom draw function for the codepages listview.
- User gray text color for codepages that cannot be uninstalled.
CORE-13242
svn path=/trunk/; revision=74582
Advanced page: Show code pages again.
- Use SetupFindFirstLine and SetupFindNextLine to enumerate all code pages.
- Use heap memory functions instead of global memory functions.
- Get rid of TCHAR.
- Rename LPCPAGE to PCPAGE.
- Hack: Do not fail if EnumSystemCodePages returns FALSE.
svn path=/trunk/; revision=74555
[BOOTLIB]: Add support for protocol open/close/lookup while paging and protected mode is enabled.
[BOOTLIB]: Implement support for dozens of UEFI functions while under protected mode.
[BOOTLIB]: Fix bugs in existing UEFI functions which were switching to _protected_ mode instead of _real mode_ before making the UEFI call.
[BOOTLIB]: Free dynamic descriptor in MmMdFreeDescriptor.
[BOOTLIB]: Implement BlHtDelete.
[BOOTLIB]: Implement re-initialize-all path in DsppInitialize.
[BOOTLIB]: Fix small bug in BlDisplayInvalidateOemBitmap
[BOOTLIB]: Fix bigger bug in BlDisplayGetOemBitmap :)
svn path=/trunk/; revision=74546
[BOOTLIB]: Fix dumb bug in BlMmIsTranslationEnabled which would always return FALSE.
[BOOTLIB]: Fix dumber bug in MmDefInitializeTranslation which was freeing the page directories and self-map pages even in the success path. Causing us to zero out paging structures...
[BOOTLIB]: Cleanup and extend MmMdDbgDumpList for internal use, and add MmMdListPointerToName as another debug function.
[BOOTLIB]: Add a few more checkpoints in unimplemented paths.
svn path=/trunk/; revision=74545
[BOOTLIB]: Implement MmPaTruncateMemory and call it during paging initialization to remove > 4GB memory.c
[BOOTLIB]: Implement BlpMmInitializeConstraints if those BCD options are used.
svn path=/trunk/; revision=74542
- Only call mkhive once, as it always generates all 6 binary hives (and if you don't give it all inf files, some of the hives will end up empty).
- Remove no longer needed dependency of efisys on bcd_hive
CORE-13241
svn path=/trunk/; revision=74537
[BOOTLIB]: Fix a critical bug in BlpArchSwitchContext which was not switching to Firmware mode once paging was enabled.
[BOOTLIB]: Fix a critical bug in OslMain which was incorrectly setting BL_LIBRARY_INITIALIZATION_COMPLETED instead of BL_LIBRARY_FLAG_REINITIALIZE_ALL and causing all sorts of failure paths.
[BOOTLIB]: MmDefInitializeTranslation now turns on paging.
[BOOTLIB]: Implement TrpGenerateMappingTracker and BlpArchEnableTranslation
[BOOTLIB]: BlMmMapPhysicalAddressEx now works with paging enabled, and correctly finds mapped memory to use from the virtual MDLs.
[BOOTLIB]: MmPapAllocateRegionFromMdl now handles virtual allocations from MmMdlMappedUnallocated.
[BOOTLIB]: MmPapAllocatePagesInRange now handles BlMemoryKernelRange (KSEG0) allocations.
[BOOTLIB]: MmMdFindSatisfyingRegion now handles virtual descriptors as well, and handles alignment better.
svn path=/trunk/; revision=74519
SetDefaultPrinterW needs to fail with ERROR_INVALID_PRINTER_NAME if the input parameter is invalid. Also add a test for that.
svn path=/trunk/; revision=74518
Otherwise with the old (broken) checks, we allowed creating more than 4 partitions, and then we overflowed over memory and corrupted the partition list structures.
svn path=/trunk/; revision=74516
This fixes the list of disks enumerated in HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter\0\DiskController\0\DiskPeripheral\
and we now behave in this regards similarly to Windows 2003 & co.
I thank Lesan Ilie for reporting & testing, and Serge Gautherie and Peter Hater for reviewing.
This fixes a bug introduced in commit r59079.
CORE-13131
svn path=/trunk/; revision=74515
- Implement GetDefaultPrinterA/W and SetDefaultPrinterA/W in winspool.drv. Also add tests for these functions.
- Set our "Dummy Printer on LPT1" as the default printer in the user registry.
- Return meaningful values for DeviceNotSelectedTimeout and TransmissionRetryTimeout in PRINTER_INFO_5 in localspl.
The Print dialog now preselects "Dummy Printer on LPT1" in all applications.
One more task done from the list at https://reactos.org/wiki/Printing :)
svn path=/trunk/; revision=74513
- Check for the first 3 bytes (and not 4) of the bootsector to not be zero (that's our criterium for a "valid instruction"). Therefore, a bootsector starting with "00 00 00 xx" (with xx the first byte of a volume identifier) is detected as invalid (because the BIOS won't be able to run it anyways) and therefore, needs to be overwritten.
- Check that its last 2 bytes are the valid 0xAA55 signature.
These improvements were suggested by Serge Gautherie and Peter Hater.
CORE-4870 CORE-12672 CORE-13188
- Move a DPRINT1 around.
svn path=/trunk/; revision=74512
- Check for malformed disk identifier, which must be at least 9 WCHARs long (as done by disk_new);
- Prevent possible memory leaks (missing ExFreePool's) + closing registry key.
Investigated by Lesan Ilie during tests; as part of CORE-13131.
- Make one of our hacks more readable (by me).
(We also note that this driver uses the ExAllocate/FreePool functions in the old-school way).
svn path=/trunk/; revision=74509
- turn it into a custom control;
- supports dynamic preview area depending on the actual current monitor screen resolution;
(note that on ReactOS, the WM_DISPLAYCHANGE is not correctly sent, see CORE-13212, therefore this functionality won't show up yet)
- supports correct rescaling of the console preview drawn in the preview area;
- supports dependence of the console preview with respect to the chosen font character dimensions.
The code is there, it may be a little bit improved in the future.
CORE-13196 #resolve
Other additions:
- Add a few space between the console preview text window border and the text sample;
- PaintText and PaintStaticControls do not need to return anything.
svn path=/trunk/; revision=74504
- Use "hDlg" (as done in the rest of the code) instead of "hwndDlg";
- Refresh the console window preview whenever a dimension or a position was changed.
svn path=/trunk/; revision=74503
- Load and save "Lock Taskbar", "Hide inactive icons", and "Group similar taskbar buttons". Verified on Win2k3 via "Nirsoft RegFromApp".
- use a loader function for registry values.
- save the "show seconds" setting together with the other explorer settings instead of a ROS specific key.
- Add some documentation comments.
svn path=/trunk/; revision=74500
- Free the FullServiceName buffer if PnpRootCreateDevice failed (erroneously committed in r74494, see pnpmgr.c line 1080);
- No need to close InstanceHandle if the IopCreateDeviceKeyPath call failed, since in this case the registry handle wasn't opened. CORE-13207
- Don't assert on Buffer allocation but return a proper failure code in case of failure. CORE-13208
These are suggestions from Serge Gautherie + Lesan Ilie.
- Add a forgotten ZwClose call in the success code path of IopCreateDeviceKeyPath in IopQueryDeviceCapabilities (by me).
svn path=/trunk/; revision=74495
Also use 'L' prefix for wide characters and UNICODE_NULL for string terminator.
Patch by Lesan Ilie.
CORE-13208 #resolve
svn path=/trunk/; revision=74493
- If one of the ZwSetValueKey function fails, 'Node->ServiceName.Buffer' is leaked.
- Also use 'L' prefix for wide characters.
Patch by Lesan Ilie, thanks!
- Use "P(C)WSTR" instead of win32 "LP(C)WSTR" string pointer types (by me).
CORE-13207 #resolve
svn path=/trunk/; revision=74491
- Implement user-mode version of RtlWalkFrameChain (mostly as a copy of the kernel version). Now RtlCaptureStackBackTrace actually, you know, captures stack back-traces.
svn path=/trunk/; revision=74490
- Get rid of the individual getter funtions. Use GetSelectedComboBoxIndex for all CBS_DROPDOWNLIST comboboxes and GetSelectedComboBoxText for all CBS_DROPDOWN comboboxes.
- Check the relevant settings only!
- Rename SetXxxSettings to GetXxxSettings because it is a getter function.
- Handle the bogus WM_COMMAND/EN_CHANGE message that is sent when the IDC_SECONDYEAR_EDIT edit control is initialized. Controls should NEVER send notifications when they are modified programmatically! :-/
svn path=/trunk/; revision=74488
Changed locale options doesn't reload correctly before next reboot.
- Added SetNumberSetting, SetCurrencySetting, SetDateSetting and SetTimeSetting functions to get and check values.
- Don't directly change pGlobalData.
- Post WM_WININICHANGE after all changes have been applied.
Based on a patch by Katayama Hirofumi MZ.
CORE-10170
svn path=/trunk/; revision=74487
- Pass byte counts to RegQueryValueEx instead of character counts. Based on a patch by Katayama Hirofumi MZ.
CORE-12903
svn path=/trunk/; revision=74483
- Fix a broken test name. APITests can not have names already used by Wine tests! ... they should be named after APIs, anyway...
svn path=/trunk/; revision=74478
This in particular fixes compilation under x64 due to the fact that, in x64, one of these API is declared (force)inline and the compiler complained that this function already had a body.
svn path=/trunk/; revision=74477
- The three C-decorated exports _USBD_CreateConfigurationRequestEx@8, _USBD_ParseConfigurationDescriptorEx@28 and _USBD_ParseDescriptors@16 are only exported in the i386 version of the driver (not present in x64, checked on WinXP x64).
This fixes warnings in ReactOS x64 compilation.
- Add (commented out) the remaining exports (without their parameters) that need to be implemented and exported.
svn path=/trunk/; revision=74476
Passes on Win2k3 (either are skipped because either Russian or Japanese locales or codepages are absent, or are passed OK), but not on ReactOS yet. They are committed as reference for future work.
CORE-12451
svn path=/trunk/; revision=74475
- Remove the font helper functions that were already moved into concfg/font.c in r74462, and use the latter instead.
- Use a double list for listing the available font sizes for a given face:
* a ListBox for raster fonts;
* a ComboBox for TrueType fonts, allowing the user to specify a custom size.
The raster ListBox is wrapped using the LIST_CTL structure so that we can use
the bisection functions on it.
- Allow the user to specify TrueType font size either in pixels or in points. Raster font sizes however are always in pixels.
- Try to remember the nearest font size across different selected face changes.
- Try to support custom-sized TrueType fonts (using the ComboBox's edit field). May need more improvements!
- Retrieve the correct character cell height & width size in pixels when selecting a font (especially when it's a TrueType one).
- We now support bold console fonts too, see CORE-13122 (thanks Katayama!).
- Remove the commented-out "temporary code for future reference".
- Use a global cached font "hCurrentFont" that gets initialized when the console properties applet is created,
so that we now can have a correct font in the screen samples when one directly views e.g. the "Color" tab,
without going first in the "Font" tab. This current font is of course updated whenever one changes the font settings.
Tested with success on Windows 2003, Windows 7 and on ReactOS.
CORE-13122 CORE-13182 #resolve
svn path=/trunk/; revision=74469
- Use 'hDlg' for the dialog window handle variable (instead of hwndDlg), as already done in other parts of the code;
- Use our regular formatting for function prototypes;
- Use explicit unicode functions;
In addition:
- Correctly check for the dialog controls notifications (within WM_COMMAND message);
- Update the current code page when the code page combobox selection changes, but only notify the property sheet of the change when the combobox contents is validated (either the user pressed ENTER in some way, or the combobox lost its focus).
svn path=/trunk/; revision=74468
- Move the bisection functions into their own source file, and make them a bit more general so that they can be used on other types of list structures than win32 combo-boxes.
- Adjust the code in options.c to reflect those changes.
svn path=/trunk/; revision=74466
- Use the font functions from the concfg library (see r74462) to create a new console font & retrieve its metrics, inspired by the suggestions from Katayama Hirofumi MZ in CORE-12451 and CORE-13122;
- Use string-safe functions to copy the font names into the fixed-size buffers;
- Use explicit UNICODE calls to GetObject and CreateFontIndirect.
Related to CORE-13182.
svn path=/trunk/; revision=74464
- Use string-safe functions to copy the font names into the fixed-size buffers;
- Modify some default settings;
- Add a set of console font manipulation functions, to be used later by both the console applet console.cpl and by CONSRV.
Some of these functions come from r74365 with minor improvements (see CORE-12451 too), others are based from a patch
by Katayama Hirofumi MZ from CORE-13122, and the rest are needed for an upcoming commit for console.cpl.
- Add PCH support in concfg.
- Minor code formatting: Use our regular formatting for function prototypes.
svn path=/trunk/; revision=74462
Patch all our ISOs (bootcd, bootcdregtest, livecd, hybridcd) with isohybrid in order to make them bootable from HDDs or any kind of USB drives.
The added MBR at the beginning of each ISO doesn't cause any harm for normal CD booting anymore after my patch in r74460.
There is also no need for the dedicated isohybrid targets anymore.
Our ISOMBR master boot record now successfully loads our ISOBOOT boot sector. ISOBOOT loads FreeLdr and indicates that we're booting from HDD, so that FreeLdr can successfully load the kernel.
We then bugcheck in the kernel with either 0x0000007B (INACCESSIBLE_BOOT_DEVICE) using bootcd or 0x0000006B (PROCESS1_INITIALIZATION_FAILED) using livecd.
Testcase is:
qemu-system-i386 -m 512 -hda bootcd_or_livecd.iso
Needs more investigation, but these are separate bugs and I consider CORE-12648 fixed.
svn path=/trunk/; revision=74461
Set BootPartition (DH) to 0xFF in isoboot.S when booting from CD.
Then check for that 0xFF value in FreeLdr to unambiguously detect CD booting instead of using BIOS functions (which don't work reliably on broken BIOSes) or checking for an MBR (which doesn't work on hybrid ISOs).
CORE-12692
svn path=/trunk/; revision=74460
- When mapping a view of the physical memory section, don't check for BaseAddress/SectionOffset alignment. Instead, prevent user mode mappings of views beyond the highest physical page. Fixes flakiness in kmtest:MmSection
CORE-13113 #resolve
svn path=/trunk/; revision=74447
Add some more tests for physical memory sections:
- Show that any alignment for SectionOffset/ViewSize is allowed. It will get automatically fixed up to page alignment
- Show that kernel mode can map views beyond the highest physical page, but user mode cannot
CORE-13113
svn path=/trunk/; revision=74446
Fix and simplify implementation of "IF EXIST":
- Don't make any difference between wildcard search and normal search
- This fixes handling DOS devices search (ie, IF EXIST C:\ReactOS\NUL now works)
- This fixes handling pagefile.sys without requiring specifing rights
- Also fix handling directory search, terminated with a \
CORE-11784
svn path=/trunk/; revision=74444
- Check for null members when cleaning up DCs and brushes. Fixes crashes in some failure cases when running out of GDI handles.
CORE-13155
svn path=/trunk/; revision=74435
- Get rid of alloca, malloc and free.
- Always check the return values of HeapAlloc.
- Rename fUserLocaleChanged to bUserLocaleChanged and fGeoIdChanged to bGeoIdChanged.
- Use WCHAR instead of TCHAR.
- Fix indentation and coding style.
- Remove setupreg.c because it is an unused copy of misc.c.
svn path=/trunk/; revision=74434
- Refactor the code returning PRINTER_INFO_* yet another time to support both EnumPrinters and GetPrinter calls.
- Implement support for PRINTER_INFO_1 through PRINTER_INFO_9 as well as the mostly unknown PRINTER_INFO_STRESS (level 0) structure and return as much information as we can.
- Implement GetPrinterW / LocalGetPrinter.
The Printers Shell folder in Explorer now shows our "Dummy Printer on LPT1" and we pass all 291 winspool:EnumPrinters API tests :)
svn path=/trunk/; revision=74433
- Refactor a bit tests, to split more logically tests
- Fix a bug in tests
- Add new tests for MountMgr showing our storage stack doesn't behave as expected
svn path=/trunk/; revision=74432
- Fix last error value returned from GdiSelectPen for invalid DCs. Fixes the last test failure in gdi32:gdiobj. Patch by Katayama Hirofumi MZ.
CORE-13132 #resolve
svn path=/trunk/; revision=74419
- Avoid two cases of uninitialized variable use in GetEventUserName. Based on a patch by Víctor Martínez Calvo. CID 1401250
CORE-12798 #resolve
svn path=/trunk/; revision=74418
- Display the informative CP-change message on stdout, using the *output* code page (and not the input CP);
- Correctly update the local codepage cache;
- Display the informative CP-change message when the CP change succeeded;
- Add source comments + informative TODO for what remains to be done.
svn path=/trunk/; revision=74416
- Slightly update the description of CP 28599;
- Add descriptions for CPs 28600, 28603, 28604 and 28606;
- Add CP 856 "OEM - Hebrew PC" (which differs from OEM Hebrew CP 862).
Note that while we also have codepages 424, 878 and 1006, I don't add their description because:
- CP 424 is actually CP 20424 "IBM EBCDIC - Hebrew" on Windows (documented in the resource files);
- CP 878 is actually CP 20866 "Russian - KOI8" on Windows (documented in the resource files);
- CP 1006 seems to be "IBM Arabic" according to Wine, but I don't know its corresponding number on Windows.
svn path=/trunk/; revision=74414
- Rework GetLocalisedText helper such that it looks more like LoadStringW. Also, if the string is not found (either because there is no associated string table, or because its resource length is zero), then return zero.
Otherwise we return the correct number of characters copied into the user buffer, not counting the NULL terminator.
This fixes the blank strings showing in the list of codepage user-friendly names in the console properties dialog.
- Simplify the code of NLS_GetGeoFriendlyName: we can directly use the user-provided buffer to retrieve the string.
Addendum to r65157.
CORE-13130 #resolve
svn path=/trunk/; revision=74413
- Touch the virtual address of DMA buffers before calling MmGetPhysicalAddress on them. This ensures page directories are correctly set up for the current process context, and fixes random DMA operation failures ("MM:MmGetPhysicalAddressFailed"). This is not a hack -- using MmGetPhysicalAddress for DMA in the first place is.
CORE-9224 #resolve
svn path=/trunk/; revision=74408
- Button, Trakbar: Send WM_CTLCOLORBTN or WM_CTLCOLORSTATIC and use their return value to paint the control despite the fact that DrawThemeParentBackground was called as well.
Part of the fix for CORE-12978
svn path=/trunk/; revision=74406
- Use a helper function "AddFontToList" to add font names into the font list;
- Use string-safe functions where needed.
svn path=/trunk/; revision=74405
- In PDEVOBJ_vRefreshModeList, restore the current mode pointer, ppdev->pdmwDev, to a valid value.
CORE-13097 #resolve
svn path=/trunk/; revision=74404
Fix heap corruption in EnumDisplaySettingsExA/W:
- Do not overwrite the user-provided buffer size in dmDriverExtra
- Fix broken pointer arithmetic
CORE-13097
svn path=/trunk/; revision=74403
Display a list of available code pages, as done on Windows (NT/2k/2k3/Vista/7/8, when a CJK language is selected, and as always done on Windows 10 for all languages).
But contrary to Windows, do not limit this list to only CJK + CP-437 codepages, but list *all* the available CPs, retrieved from the registry. These CPs are also those available when using the "chcp" or "mode con cp" commands.
And contrary to Windows (where this is done only for the general console properties), always allow the user to view or change the code page even from the console properties dialog.
[CONSRV]: Support changing the current code page from the console properties dialog.
CORE-12451
svn path=/trunk/; revision=74397
- Make a copy of the service list where service and display name strings are separately allocated. We need this to update the service names rather than reload the list when the display name is changed.
- Write the display name, description or binary path to the registry when the user changed them.
- Disable the Edit button after it has been clicked.
- Do not add the service name to the argument vector in the call to StartServiceW. Services.exe already add the service name to the vector.
CORE-12743
svn path=/trunk/; revision=74394
Implement all corner cases of handling the Name parameter in EnumPrinters. This can be done in a common way for all levels.
Fixes more tests.
svn path=/trunk/; revision=74393
- In NtMapViewOfSection, check for address alignment after validating the handles. This fixes the tests from the previous commit, but is also necessary because information about the section object is necessary to avoid the alignment checks for physical memory sections.
CORE-13113
svn path=/trunk/; revision=74391
- Show that NtMapViewOfSection validates section and process handles before checking base address alignment
CORE-13113
svn path=/trunk/; revision=74390
- Check for ROS section object before accessing the AllocationAttributes member in NtMapViewOfSection, since ARM3 sections use a different structure.
CORE-13113
svn path=/trunk/; revision=74389
- Enable MEM_RESERVED test in SimpleErrorChecks() since it no longer asserts. Patch by Serge Gautherie.
ROSTESTS-109 #resolve
svn path=/trunk/; revision=74386
- Remove an unneeded header inclusion;
- Fix a sizeof invocation;
- RegEnumKeyExW and RegEnumValueW take their fourth parameter (size of key / value name, resp.) as a size in number of *characters* (and not in number of bytes);
- Add a missing RegCloseKey call in LocaleList_Create.
svn path=/trunk/; revision=74385
- Never use special pool for prototype PTEs. Avoids "(PointerPte >= (PMMPTE)MmPagedPoolStart) && (PointerPte <= (PMMPTE)MmPagedPoolEnd)" assertion failure in MiDecrementShareCount.
CORE-11474
svn path=/trunk/; revision=74378
- After ObCreateObject+ObInsertObject a handle close is enough to destroy the object, so do not dereference it in addition. Fixes use after free.
CORE-11474
svn path=/trunk/; revision=74375
- Remove tests that cause pool buffer overflows. NtQueryVolumeInformationFile does not validate buffer length for kernel mode callers, so passing an invalid length is not a good test.
CORE-11474
svn path=/trunk/; revision=74374
- Use the number of WCHARs, not the number of ANSI chars in GetCharABCWidthsA. Fixes stack corruption when running gdi32_winetest:font
CORE-11474
svn path=/trunk/; revision=74372
- In RealSystemParametersInfoA/SPI_GETDESKWALLPAPER, write the ansi wallpaper path directly into the user's buffer instead of using an allocation (and overrunning it). Fixes crash when running user32_winetest:sysparams with DPH.
Tangential to CORE-13097
svn path=/trunk/; revision=74370
This e.g. fixes display for the backslash symbol in CJK languages (that should appear as the Chinese "yuan" / Japanese "yen" currency symbol ¥, or the Korean "won" currency symbol ₩).
CORE-12451
svn path=/trunk/; revision=74366
When the driver installation fails, set the CONFIGFLAG_FAILEDINSTALL flag only if the user checked the 'Do not show this dialog anymore' checkbox.
CORE-13095
svn path=/trunk/; revision=74363
Load, display and store the computer description.
Patch by Grzegorz Araminowicz.
- Moved most of the code into separate functions and got rid of its deeply nested structure.
- Added some notification code, so that the Apply button gets enabled when the user changes the description.
CORE-12337
svn path=/trunk/; revision=74362
Fix automatic resolution change when resizing the VirtualBox window. Based on a patch by Ismael Ferreras Morezuelas.
- Provide a function, PDEVOBJ_vRefreshModeList, to reload the list of display modes
- Call PDEVOBJ_vRefreshModeList from UserEnumDisplaySettings to get an updated list of modes each time
CORE-6742 #resolve
svn path=/trunk/; revision=74360
- Split populating the display mode list out from EngpRegisterGraphicsDevice, into its own function, EngpPopulateDeviceModeList. Based on a patch by Ismael Ferreras Morezuelas.
CORE-6742
svn path=/trunk/; revision=74359
- Respect the TruncateSize parameter in CcUninitializeCacheMap. Avoids "freeing dirty VACB" messages for cache views beyond the end of the file.
CORE-12893 #resolve
svn path=/trunk/; revision=74358
Don't include inttypes.h, which isn't available on MSVC < 2013. Add the 4 needed typedefs to reactos_support_code.h instead.
Fixes CORE-13031
svn path=/trunk/; revision=74351
[NEWDEV]
Set the CONFIGFLAG_FAILEDINSTALL flag in the new hardware wizards welcome page and remove it only when the driver was successfully installed.
[UMPNPMGR]
Do not invoke the device installer if the devices CONFIGFLAG_FAILEDINSTALL flag is set.
svn path=/trunk/; revision=74348
- Refactor LocalEnumPrinters to make it ready for supporting additional levels.
- Correctly handle all passed flags for Level 1 queries to the Local Print Provider.
- Introduce strsafe functions to LocalEnumPrinters in a way that actually makes the code smaller. To be done in other parts too.
- Use PackStrings in LocalEnumPrinters to simplify the code.
- Return the correct 3 strings in the Description field of Level 1 queries. That also introduces the "Location" field.
- Remove debug spam in _OpenEnvironment.
[SPOOLSV]
- Make use of the newly implemented AlignRpcPtr/UndoAlignRpcPtr. Fixes a test.
[WINSPOOL]
- Dismiss invalid levels already in EnumPrintersW and zero the input buffer here (but not in localspl). Verified by a test.
EnumPrintersW for Level 1 should be fully supported now.
svn path=/trunk/; revision=74324
Add ASSERTs, improve documentation and the variety of tests for AlignRpcPtr/UndoAlignRpcPtr.
Based on comments by Serge Gautherie.
svn path=/trunk/; revision=74323
- Update to version 0.46e3 (and fix up the version numbers)
- Un-"fix" insignificant typo corrections that only serve to make syncing harder
CORE-13032 #resolve
CORE-11894 CORE-11277 CORE-12909
svn path=/trunk/; revision=74319
- In Wait_thread_proc, prioritize the cancel event over the wait object. This avoids executing the callback again after RtlDeregisterWait has been called.
Fixes ThemeStartCallback being called twice, causing a double free.
CORE-13074 #resolve
svn path=/trunk/; revision=74318
Insert a job into the start list when it is loaded or added. Remove it from the start list when it gets deleted. The start list is sorted by start time.
svn path=/trunk/; revision=74317
Calculate the next start time of a job and store it in the job object. DaysOfMonth and DaysOfWeek are not taken into account yet.
svn path=/trunk/; revision=74315
- Remove the ShellObjectCreator templates that allowed the caller to pass an arbitrary interface pointer. Leaving only the templates that take an void ** ppv parameter means that the callers are forced to use IID_PPV_ARG. This makes it less likely to have a pointer to an wrong interface.
- Fix the callers to always use IID_PPV_ARG.
- Rewrite the ShellObjectCreator templates to create the objects using the ATL CreateInstance thus allowing internal ATL methods to be called.
[BROWSEUI]
-Let CBandSite_CreateInstance take an additional parameter for the outer object since CBandSite is aggregatable. Create the object using the ATL creator class.
svn path=/trunk/; revision=74314
- Rename the settings structure to something more meaningful for using it for all taskbar related settings
- define some default settings
- check checkboxes with settings values in the properties window
- move saving the settings to an own function which will be implemented later
svn path=/trunk/; revision=74307
- Gracefully handle page faults during V86 code execution. This is a bit of a hack because with our limited use of V86 code it is unclear how a page fault can even occur.
CORE-12993 #resolve
svn path=/trunk/; revision=74305
- Make decoding of the error code more obvious in KiTrap0EHandler
- Avoid or make explicit some signed/unsigned conversions
svn path=/trunk/; revision=74304
Patch by Lesan Ilie:
- Avoid over-allocating the DEVICE_RELATIONS structure in HidClassPDO_CreatePDO
- Allocate device relations from paged pool
CORE-13052 #resolve
svn path=/trunk/; revision=74302
- Fix leaks in ExtractFile and avoid double frees from failure cases of AddFile. Patch by Serge Gautherie.
CORE-7307 #resolve
svn path=/trunk/; revision=74301
- Ensure null termination of the method name passed to AcpiEvaluateObject in Bus_PDO_EvalMethod. Spotted by ReactCoder.
CORE-13068 #resolve
svn path=/trunk/; revision=74300
Implement the undocumented AlignRpcPtr and UndoAlignRpcPtr functions used by many Rpc* functions in spoolsv according to traced callchains.
I could reverse engineer them entirely using rohitab.com's API Monitor and black-box testing.
I also add documented tests covering all cases I found out. We now pass 17/17 tests on Windows Server 2003 and ReactOS.
Also const-ify a parameter in PackStrings.
svn path=/trunk/; revision=74297
- Move device map code into a separate file.
- Create and inherit device maps instead of using a single global device map.
svn path=/trunk/; revision=74296
[SHELLMENU] -Remove second copy of CBandSite. It was originally added here to be tested in windows but now it is hosted in a proper static link.
svn path=/trunk/; revision=74293
- This will be linked to rshell in order to implement support for additional toolbars in the taskbar as well as floating toolbars.
- In the future more classes will be added in this static lib including: CISFBand (which implements a dockable toolbar that shows the contents of a shell folder), CQuickLinks (a special CISFBand), CDeskBarApp (a special CBaseBar that implements the floating host for toolbars) and perhaps more.
svn path=/trunk/; revision=74292
Addendum to r74263:
- Really only warn once in MmLockPageableDataSection/MmUnlockPageableImageSection, not on every 256th call
svn path=/trunk/; revision=74291
- This is based on the prototype I found in a sample app on codeproject. I don't really know what the unknown parameters are for but I haven't found anything yet passing different values. Almost all of the code is from the drawing code from uxtheme with the only difference that in uxtheme UXTHEME_DrawImageBackground reads several values from the theme but his takes them as parameters. I don't see any reason to spend time understanding what these are for. I found what the draw flags are for by passing different values in the test application and trying to replicate the parameters that UXTHEME_DrawImageBackground need. I decided to keep the naming like that since it is almost verbatim wine code. At some point it should be moved to win32k however.
CORE-4420
svn path=/trunk/; revision=74280
Replaced the mockup image with a more up-to-date version, and added the "source" .PSD file it was created from. Someday I'll get around to to turning this into the actual theme. Someday.
svn path=/trunk/; revision=74264
[UXTHEME] -Pass the correct parameter to PaintMenuBar. Draw the edge of WS_EX_CLIENTEDGE even if the window has a themed frame.
svn path=/trunk/; revision=74260
- Addendum to r73892: Don't free the output buffer on success in USBSTOR_SendIrp. Spotted (again) by curiousone
CORE-12970 #resolve
svn path=/trunk/; revision=74245
- Make sure to disable interrupts each iteration of the idle loop, since IdleFunction can leave them enabled.
CORE-12985 #resolve
svn path=/trunk/; revision=74235
Fixes all but 2 tests in setupapi_winetest:parser.
e8aa851 setupapi: Fix parsing of inf files containing garbage at the beginning of the file.
svn path=/trunk/; revision=74233
- CTaskSwitchWnd: Use the height of the start button as minimum height in horizontal mode.
- CTrayClockWnd: Actually process WM_THEMECHANGED message.
- CTaskSwitchWnd: Use SM_CYSIZE as the height of the buttons of the toolbar.
- CStartButton: Simplify calculating the minimum size of the button.
- CTrayWindow: Don't use IsThemeActive. Checking if OpenThemeData returned non null is enough.
svn path=/trunk/; revision=74231
Implement code to show and hide the power and volume icons in the notification area aka systray.
Control panel applications send WM_USR+220 messages to the systray window in order to show or hide an icon in the systray. The wParam parameter identifies the icon: 1=power, 4=volume. The lParam parameter indicates the new icon status: 0:show, 1:hide.
Control panel applications also send WM_USER+221 messages to the systray window in order to retrieve the current status of a systray icon. The wParam parameter identifies the icon, just like in the WM_SUER+220 messages. The lParam parameter is ignored. The return value indicates the status of the icon: 1:visible, 0:hidden.
svn path=/trunk/; revision=74225
- CTrayBandSite: Rename its constructor to CTrayBandSite_CreateInstance. Let the CTrayWindow create the CTasksBand and pass it to the constructor. Use a standard com interface to see if the tasks band was added while loading and don't use an explorer specific interface for it. Make CTrayBandSite::_Init a bit clearer.
- CTrayWindow: Implement the IOleWindow interface and create the CTaskBand before creating the CTrayBandSite. Then use standard com interfaces to get their respective HRND.
- CTaskBand: Rename its constructor to CTaskBand_CreateInstance. Remove a hack that was using its IOleWindow to act like the IOleWindow of the CTrayWindow during the creation of the CTrayBandSite. This is possible since the IOleWindow of the CTrayWindow is passed to the SetDeskBarSite method of CTrayBandSite.
svn path=/trunk/; revision=74224
- Simplify the mess with the font handling in explorer. Make it respond to changes in the system metrics and use the correct fonts.
- Make CheckTrayWndPosition resize the taskbar based on the optimal size that the rebar returns.
- Without losing my sanity (yet), I managed to make it have exactly the same size as windows explorer when I run it in windows with the classic theme.
- Themes still aren't sized perfectly. Running on ros shows lots of bugs in our common controls.
svn path=/trunk/; revision=74221
- Move Mesa 3D to "Libraries"
- Clarify what this library is for and how to use it.
- Add Czech translation.
[OPENGLCFG]
- Add Czech translation.
svn path=/trunk/; revision=74211
- Add a custom build of the Mesa 3D Graphics Library. This build contains mesa, gallium and llvmpipe. It provides an enormous performance boost over the software implementation present in opengl32.
- This is meant for platforms with missing, outdated or broken HW OpenGl acceleration.
- Thanks Daniel for helping with the Rapps stuff!
svn path=/trunk/; revision=74209
- Add a simple applet to set a custom OGL ICD or force the use of the built in software implementation.
- It can be used to set the DEBUGCHANNEL to +opengl,+wgl to make obtaining debug info more user friendly.
svn path=/trunk/; revision=74208
Disclaimer: This code is ReactOS specific and is the complete opposite of what Windows does (tm):
- Add the option to override the default OpenGL driver by a custom driver or to force the use of the built-in software implementation.
- This will allow some more flexibility when running games / apps that depend on OGL.
- This code needs a special entry in the registry so opengl32 behaves as usual by default.
svn path=/trunk/; revision=74207
- Replace ARRAYSIZE() by _countof().
- Implement parsing of days per month schedule information for the /every and /next options.
- Print days per month schedule information.
svn path=/trunk/; revision=74202
6053db9 winhttp: Fix handling of Accept headers.
c43dd19 winhttp: Add __WINE_ALLOC_SIZE attributes to heap_xxx() functions.
5b9beca winhttp: Fix some spec file entries.
542998e winhttp: Accept NULL buffer for size queries in WinHttpCreateUrl.
ec35394 winhttp: Handle EINTR from connect and poll.
613e239 winhttp: Use return value of sprintf() instead of calling strlen() and simplify code.
svn path=/trunk/; revision=74197
Implement the AT command:
- The /every and /next options are not supported yet.
- The 12 hour time format cannot be parsed yet.
svn path=/trunk/; revision=74190
- Avoid an uninitialized variable in BlpDisplayReinitialize. Patch by Victor Martinez Calvo. CID 1363648.
CORE-11692 #resolve
svn path=/trunk/; revision=74184
Implement fontview /p parameter support.
Patch by amber. Patch was slightly modified by me in order to open the print dialog automatically.
CORE-12944 #resolve #comment Thanks a lot!
svn path=/trunk/; revision=74183
- Clean up the DriverContext that was dirtied by the CSQ
The do while(0) thing feels a bit weird. I can only assume it was done so a 'break' will unlock before returning.
svn path=/trunk/; revision=74176
Indeed the RTL/NDK/whatever always explicitely uses ANSI and/or UNICODE string types where needed (and do not depend on tchar.h stuff).
It is up to the given application to explicitely specify (in its CMakeLists.txt or elsewhere) whether it wants to define UNICODE or not.
--> Fix the problem of having the UNICODE define magically being defined after including some NDK header.
[DNSAPI][USER32_APITEST]: Explicitely use UNICODE functions where needed (and as was already done in other parts of the code).
svn path=/trunk/; revision=74172
IopGetDeviceRelations:
- Use captured parameters to probe for write.
- Do not check IopInitiatePnpIrp for STATUS_PENDING.
svn path=/trunk/; revision=74167
- Allocate all of the kernel objects security descriptor and the dos devices security descriptor from the paged pool, instead of just the ACLs.
- Replace special security descriptor free routines by calls to ExFreePoolWithTag.
- Replace the TAG_OB_DIR_SD by TAG_SD.
svn path=/trunk/; revision=74157
- Draw static text elements with a transparent background, so that they acquire the correct background color of the wizard window.
- Modify the check for the header bitmap, as the header's hbmHeader is initialized also if the flag PSH_HEADER but not PSH_USEHBMHEADER is set (see function PROPSHEET_LoadWizardBitmaps).
- Add a check for header's hbmWatermark so that the watermark is drawn only when a valid bitmap handle is present.
- Fix a copy-pasta error when drawing the header's subtitle.
CORE-12912 #comment Patch for the wizard visual problem sent upstream.
CORE-12823
svn path=/trunk/; revision=74136
This should remove the unwanted 1st-chance exceptions caught when debugging Office 2010 installation, that calls from time to time lstrlen with NULL pointers.
svn path=/trunk/; revision=74119
We detect that the NULL pointer is handled separately because no exception is generated, contrary to when the function is called with truly invalid pointers.
I thank Mark for having mentioned the vectored exception handling to me, needed to catch first-chance exceptions.
svn path=/trunk/; revision=74118
Update mkisofs to schily-2017-02-16, which comes with the following fixes:
- Fix null termination in libschily's Win32 implementation of opendir (submitted upstream by me).
The bug was triggered when building an ISO from a directory instead of a graft-points (.lst) file.
- Prevent -duplicates-once from being used together with -cache-inodes. These options exclude each other.
svn path=/trunk/; revision=74112
440b921 riched20: Return proper interface pointers.
e63cea5 riched20: A spelling fix in a comment.
9f37f6a riched20: Check for NULL in fnTextSrv_TxSetText and add test.
svn path=/trunk/; revision=74108
51e1a08 inetcomm: Return S_FALSE if no data is returned in IInternetProtocol::Read.
0672bfa inetcomm: Added support for decoding quoted-printable data.
07af9d0 inetcomm: Added mhtml binding tests.
cf8e259 inetcomm: Added support for binding mhtml protocol handler.
3f644cb inetcomm: Added IInternetProtocolInfo::CombineUrl implementation.
37792a2 inetcomm: Added MimeOleObjectFromMoniker semi-stub implementation.
242cbb1 inetcomm: Added tests reading MHTML page as MIME message.
eb0bd22 inetcomm: Removed unneeded type check in init_content_type.
56dc246 inetcomm: Read content encoding from MIME header.
dec243f inetcomm: Don't include headers in data stream in create_sub_body.
3ccba10 inetcomm: Properly handle boundary in the beginning of body stream in create_body_offset_list.
9c01a94 inetcomm: Use relative seek in copy_headers_to_buf.
915acd6 inetcomm: Added support for decoding base64 in IMimeBody::GetData.
0b80666 inetcomm: Return a new instance of stream in IMimeBody::GetData.
393512d inetcomm: Don't restore base stream position in sub stream Read.
bb5056e inetcomm: Moved sub_stream_t implementation before MimeBody implementation.
a1d0c6d inetcomm: Added COM aggregation support to MimeHtmlProtocol object.
fe3e5b9 inetcomm: Added IInternetProtocolInfo stub implementation.
6832273 inetcomm: Added MimeHtmlProtocol stub implementation.
d5d9aa3 inetcomm: Register mhtml protocol handler.
svn path=/trunk/; revision=74105
- Define and use a pool tag for directory security descriptors.
- Use a custom security descriptor to create the KernelObjects directory.
svn path=/trunk/; revision=74103
818b141 gdiplus: Add support for more image color formats.
f8f0a35 gdiplus: Implement GdipInitializePalette. (v2)
973bba9 gdiplus: Ignore an externally set DC clipping region.
650b8d0 gdiplus: Ignore an externally set DC origin.
e100661 gdiplus: Add GdipCreateHBITMAPFromBitmap tests when bitmap bits are locked.
b58276a gdiplus: Reimplement GdipCreateHBITMAPFromBitmap so it can work on locked bitmaps.
5673d82 gdiplus: GpBitmap can be only locked once, get rid of numlocks field.
0eaaa15 gdiplus: Make GpBitmap->bitmapbits access thread safe.
4e685eb gdiplus: Added GdipGetCustomLineCapType().
36bb9d9 gdiplus: Fix some spec file entries.
f870708 gdiplus: Make some GdipDraw*Path() functions static.
046fc19 gdiplus: Fix memory leak in format_string_callback error path.
5018594 gdiplus: Create the FontFamily before checking for duplicates.
0d6a4b0 gdiplus: Don't include rotated fonts in the installed font collection.
svn path=/trunk/; revision=74098
23607d0 ole32: Implement returning a name in IEnumSTATPROPSTG.
5cf1db5 ole32: Support reading VT_BOOL, VT_R8 and VT_I8 into propery storage.
591c9c8 ole32: Correctly parse unicode property storage dictionaries.
93a8ede ole32: Add a __WINE_ALLOC_SIZE attribute to heap_alloc().
182fad8 ole32: Call GetClipboardFormatName with the correct parameters.
e31dd0f ole32: Use a HWND_MESSAGE window for the clipboard.
c85eaae ole32: Only trace a clipboard format name if it has one.
77e566a ole32: Don't set zero-size clipboard data, this no longer works.
svn path=/trunk/; revision=74094
e07d20f comdlg32: Don't crash if an IShellFolder could not be created.
bd1b3c1 comdlg32: Use localized "Path does not exist" string.
1707df3 comdlg32: Delay OleInitialize() until after file dialog window is created.
6c4aaf7 comdlg32: Always use original Open File dialog template.
eff2ecc comdlg32: Avoid some superfluous pointer casts.
svn path=/trunk/; revision=74092
cc055c4 comctl32: Add support for PSPCB_ADDREF/PSPCB_RELEASE callback notifications. (v2)
83cde06 comctl32/propsheet: Implement PSM_SETHEADERSUBTITLE.
ce9c06b comctl32/propsheet: Implement PSM_SETHEADERTITLE.
1a750f7 comctl32/propsheet: Add helpers to do string duplication.
14a6c98 comctl32/pager: Don't block window size changes.
a6661ba comctl32/propsheet: Added PSM_INSERTPAGE implementation.
34dd326 comctl32/propsheet: Only use header bitmap when asked for it.
6eafebe comctl32/propsheet: Force wizard header if any of pages has title/subtitle.
70c9a96 comctl32: Fix some more spec file entries.
2dd0fb8 comctl32: Correctly set the colour table for ILC_COLOR4 and ILC_COLOR8 imagelists.
a0e73a1 comctl32/syslink: Don't use exported StrCmpNIW().
970029b comctl32/toolbar: Fix TB_SETDRAWTEXTFLAGS handler.
99913e8 comctl32: Fix some spec file entries.
9d404dd comctl32/propsheet: Double size of a template buffer passed to PSCB_PRECREATE.
bb1d68e comctl32/trackbar: Fix TBM_SETRANGEMAX handling when new limit is less than current min boundary.
26067cc comctl32/toolbar: Protect from NULL pointer access in TB_GETBUTTONINFOW handler.
a6aabe0 comctl32/trackbar: Update thumb unconditionally on TBM_SETTICFREQ.
c7c8994 comctl32: Recompute the text width if necessary.
3ed6ba5 comctl32: Set the text and bkgnd colours to the default before the item pre-paint notification.
8915404 comctl32: Use wine_dbgstr_point in TRACES.
svn path=/trunk/; revision=74090
fe50dbf msi: Do not sign extend after multiplying.
c659222 msi: Fix some spec file entries.
167de42 msi: Make reg_get_{multi}sz() static.
f5e4dad msi: Fix handling of NULL buffer in MsiGetProductPropertyW() (Coverity).
3b5b3ef msi: Fix MSIREG_OpenUserComponentsKey and MSIREG_DeleteUpgradeCodesKey for Wow64.
5ac0242 msi: Correctly size packagecode as it's an unsquashed guid.
svn path=/trunk/; revision=74087
b85c2f7 rpcrt4: Fix some spec file entries.
042b41d rpcrt4: Avoid potential overflow in rpcrt4_protseq_ncacn_np_open_endpoint.
c32cd11 rpcrt4: Acquire new credential handle for each connection.
da05dfd rpcrt4: Store security package name in rpc_server_registered_auth_info.
f8450fa rpcrt4: Handle NULL binding in RpcBindingInqAuthClient{,Ex}.
svn path=/trunk/; revision=74085
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.