Commit graph

43754 commits

Author SHA1 Message Date
Johannes Anderwald cd63ffe6c2 [KS]
- Fix property set support handler for topology nodes
- Check if the driver supports a basic support handler. In that case return the basic support handler

svn path=/trunk/; revision=49237
2010-10-23 12:00:11 +00:00
James Tabor e7c4137319 [Win32k|User32]
- Rewrite the Event and Hook procedures. See bug 5670 for more details.

svn path=/trunk/; revision=49231
2010-10-23 05:36:12 +00:00
Aleksey Bragin 26164e7b2e [MSI]
- Fix freed memory access and fix freeing of invalid pointer. (from http://www.winehq.org/pipermail/wine-patches/2010-October/094849.html )
See issue #3755 for more details.

svn path=/trunk/; revision=49229
2010-10-22 16:22:21 +00:00
Aleksey Bragin 955c4d7d77 [MSI]
- Sync to Wine-1.3.5.

svn path=/trunk/; revision=49219
2010-10-22 13:18:11 +00:00
Aleksey Bragin 12cded29f1 [ADVAPI32]
- Roel Messiant: Fix short-circuit evaluation.
See issue #5677 for more details.

svn path=/trunk/; revision=49216
2010-10-21 20:30:37 +00:00
Eric Kohl 824ec6597d [SERVICES]
- Remove the reference counter from the common handle type as a handle is never shared or duplicated.
- Remove the access right from the service handle as it is not used.
- Dereference service manager handles and service handles in two separate functions that SEH-protect the initial access to the handle and signature check. This will protect SCM from bogus handles.

svn path=/trunk/; revision=49214
2010-10-20 17:28:10 +00:00
Pierre Schweitzer 538b9e4fbf [NTOSKRNL]
Implemented FstubAdjustPartitionCount(), FstubConvertExtendedToLayout(), FstubCopyEntryEFI(), FstubCreateDiskMBR(), FstubCreateDiskEFI(), FstubCreateDiskRaw(), FstubDbgPrintSetPartitionEx(), FstubReadHeaderEFI(), FstubReadPartitionTableEFI(), FstubSetPartitionInformationEFI(), FstubVerifyPartitionTableEFI(), FstubWriteBootSectorEFI(), FstubWriteEntryEFI(), FstubWriteHeaderEFI(), FstubWritePartitionTableEFI(), FstubWritePartitionTableMBR(), FstubWriteSector()

Implemented IoCreateDisk(), IoGetBootDiskInformation(), IoReadDiskSignature(), IoSetPartitionInformationEx(), IoVerifyPartitionTable(), IoWritePartitionTableEx()

To sum up, this commit finishes FSTUB API implementation in the ReactOS kernel. This means one important thing: now ReactOS kernel knows about a bit about EFI and about GPT. No need to say that it's the first step into EFI support. But a lot more work is needed. Especially since the kernel is the only real entity in ReactOS to handle GPT. All the rest of the OS doesn't know anything about GPT.

A small note about FstubVerifyPartitionTableEFI(). This function is supposed to check whether a disk formated with GPT is valid, and if it's not, to fix it. First step is implemented. Second step isn't yet supported.

A general note about all that stuff: on GPT, backup table isn't properly handled for the moment, as ReactOS is experiencing disk geometry issues. That means it's not having the proper disk sectors count and then, can't find the backup table (which is located on last disk sector).

References:
http://www.intel.com/technology/efi/
http://developer.apple.com/library/mac/#technotes/tn2006/tn2166.html
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.35.y.git;a=blob;f=fs/partitions/efi.h;hb=HEAD
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.35.y.git;a=blob;f=fs/partitions/efi.c;hb=HEAD

svn path=/trunk/; revision=49212
2010-10-19 20:34:48 +00:00
Sir Richard b238bc9126 [NTOS]: Go back to using RosMm for the NLS section since supposedly this causes issues on some systems. This is the only actual change in r206/208/209, so if Caemyr's data is correct, this fill fix it.
svn path=/trunk/; revision=49211
2010-10-19 20:23:37 +00:00
Pierre Schweitzer 60501a925e [DISK]
Hackplemented support for IOCTL_DISK_GET_PARTITION_INFO_EX. It will work fine for MBR partitions but will fake returns for GPT partitions.

svn path=/trunk/; revision=49210
2010-10-19 19:27:28 +00:00
Sir Richard 6f48b81057 [NTOS]: Fix multiple math/logic bugs in the PrototypePTE paths. Caught while trying to switch the Win32k GDI Handle Table to ARM3 sections.
svn path=/trunk/; revision=49209
2010-10-19 18:57:30 +00:00
Sir Richard ef6bc56d6f [NTOS]: C Pointer Math will bite even the most experienced programmer in the ass. Fix wrong calculation which led to ASSERTs and memory corruption (since the last revision).
svn path=/trunk/; revision=49208
2010-10-19 17:39:22 +00:00
Sir Richard 3e8034d4a5 [NTOS]: Add support for unmapping ARM3 sections, destroying segments and control areas, and clearing out subsection PTEs.
[NTOS]: Add support to MiDeletePte/MiDeleteVirtualAddresses to handle Section VADs.
[NTOS]: Add support to MiDeletePte to handle valid, prototype PTEs.
[NTOS]: Add MEM_TOP_DOWN support to ARM3 section code.
[NTOS]: Add support for unmapping currently mapped ARM3 section views at process termination.
[NTOS]: Use the new ARM3 section code for mapping the NLS section in the system (tests the system-view mapping code) and in each new process (tests the data-mapping code). Section is correctly unmapped at process termination time!

svn path=/trunk/; revision=49206
2010-10-19 17:07:11 +00:00
Sir Richard 20d602d71f [NTOS]: Use allocation attribute 0x1 instead of 0xC0000000 to let RosMm know this is an ARM3 section. 0xC0000000 is actually a valid combination of SEC_ flags, 0x1 is illegal and thus recognized.
svn path=/trunk/; revision=49205
2010-10-19 17:01:28 +00:00
Sir Richard 785baaf68e [NTOS]: Implement the MAREA<->VAD hack for section VADs as well.
svn path=/trunk/; revision=49204
2010-10-19 17:00:12 +00:00
Sir Richard a0cd959fc1 [NTOS]: Get rid of MC_NPPOOL and MC_PPOOL memory consumers since those are not managed by RosMm anymore. Use MC_SYSTEM for the page table stuff that RosMm still handles, and keep MC_USER and MC_CACHE for the current Section/VirtualMemory/Cache RosMm code.
svn path=/trunk/; revision=49203
2010-10-19 16:58:27 +00:00
Sir Richard 24811e9233 [NDK]: Add MMVAD_SHORT.
svn path=/trunk/; revision=49202
2010-10-19 16:57:20 +00:00
Sir Richard 52d26f0643 [NTOS]: Implement MiDecrementReferenceCount and rewrite large parts of the ProbeAndLock/Unlock MDL API to fully use ARM3 APIs, dropping MmReference/DereferencePage behind.
[NTOS]: Fix many MDL API bugs: correctly check for I/O pages, use LIST_HEAD instead of -1, track system-wide locked pages, use the process working set lock instead of the address space lock, add check for cross-ring MDL mappings, and make some small optimizations.
[NTOS]: Make some more fixes in MmAllocatePagesForMdl, MmFreeMdlPages to make the PFN entries more "correct".
[NTOS]: Had a little breakthrough: instead of complicating our lives and hiding certain ReactOS-Mm fields inside legitimate ARM3/MMPFN fields, differentiate between "legacy" (RosMm) and ARM3 pages. The legacy allocator (MmAllocPage/MmRequestPageMemoryConsumer) will use the non-paged pool to allocate a MMROSPFN add-on (8 bytes), in which the RMAP list head and SWAPENTRY are stored. When a legacy "free" is done, this data is deleted. Additionally, we can now tell apart between ARM3 and RosMm pages, so appropriate ASSERTs have been added to make sure the two never cross paths (which should safely let us use all the PFN fields now and implement working sets, etc...). I don't know why I didn't think of this sooner.

svn path=/trunk/; revision=49201
2010-10-19 04:30:48 +00:00
Sir Richard 609dce9faf [NTOS]: Clean up Mm initialization, there is now no-more RosMM stuff done in Phase 0 of MmInit, only ARM3 runs. The kernel address space and memory areas are only initialized in Phase 1, because that's where sections are started up, and they're the only thing other than VM which still use memory-areas.
svn path=/trunk/; revision=49200
2010-10-18 23:07:09 +00:00
Johannes Anderwald 619ab27e1d [KS]
- Fix KSPROPERTY_PIN_CATEGORY handler when no category is provided
- Fix KSPROPERTY_PIN_NAME handler when there is no name provided. Use fallback pin category. If there is no category provided, fail with correct error code
- Fix KSPROPERTY_TOPOLOGY_NAME handler by checking if there is a node name provided. If not use node type as fallback.
- Return correct error code when property request id is out of bounds

svn path=/trunk/; revision=49199
2010-10-18 22:21:00 +00:00
Johannes Anderwald 54374ca72e [PORTCLS]
- Store Miniport object in the device descriptor
- Fixes assert in NVidia NForce Audio Driver

svn path=/trunk/; revision=49198
2010-10-18 18:59:17 +00:00
Sir Richard 32ccfc25bf [NTOS]: Remove the "35314 sginsberg /* REACTOS Mm Hack of Doom */". Apocalypse averted?
svn path=/trunk/; revision=49196
2010-10-18 14:34:35 +00:00
Sir Richard ba0bd37078 [NTOS]: Remove the Bavarian hack, I no longer think it is needed.
svn path=/trunk/; revision=49195
2010-10-18 14:29:05 +00:00
Sir Richard a81f92c1cb [NTOS]: Store the protection mask in the Fake VADs as well, we can read/convert this from the MAREA protection value.
[NTOS]: Reimplement NtQueryVirtualMemory to use VAD information instead. Even though Alloc/Free are still MAREA-based, the fake VADs we build ought to be enough to make the query API work for certain limited scenarios. Only some paths are implemented and it's lacking SEH, but it's good enough for the install/boot requirements. If there are any regressions, please file bugs.

svn path=/trunk/; revision=49194
2010-10-18 14:25:33 +00:00
Sir Richard 26c20f3857 [NTOS]: Complete the VAD-to-MAREA Synchronization hack by removing fake MAREAs that were added when inserting real VADs. To do this, we have to track the fake MAREA associated with a VAD, so we overload the FirstProtoTypePte field in the VAD, if this is NOT a section VAD (which we don't use yet). We'll figure something out for section VADs later.
[NTOS]: Now that VAD and MAREA views are synchronized, remove the VAD limit and let VADs be created at any address. Also do not create an arbitrary 16MB VAD memory area anymore. This basically now allows for as many PEB/TEBs as can fit in the address space, fixing the recent known regression that limited the number of threads a process could have.

svn path=/trunk/; revision=49193
2010-10-18 13:10:54 +00:00
Johannes Anderwald 7c151f3f05 [WDMAUD.DRV]
- Kernel streaming pins need to transit states from Run -> Pause -> Acquire -> Stop.
- Fixes SB Live playback hang on last tone when stopping playback

svn path=/trunk/; revision=49191
2010-10-17 22:38:34 +00:00
Johannes Anderwald 5542d91941 [MMIXER]
- Apply a hack to filter out pins, which are not part of filter node processing path
- The hack filters out all pins which have a physical connection. Ideally the code should check if the pin is part of a different rendering path and in that case remove the pin. 
- Revert 49167

svn path=/trunk/; revision=49189
2010-10-17 21:15:21 +00:00
Sir Richard 068812254c [NTOS]: Fix brainfart (an interesting bug we would've never hit, but a bug nevertheless).
svn path=/trunk/; revision=49188
2010-10-17 20:11:04 +00:00
Sir Richard 84328d78db [NTOS]: Use MI_SET_PFN_DELETED where we missed it.
[NTOS]: Implement support for deleting user-mode pageable VM addresses. Now when cleaning up the process address space, MiDeleteVirtualAddresses is called for the VADs, so this will now actually free the PEB/TEB pages that were previously getting leaked for each thread/process (a known regression I introduced when moving to VADs for PEB/TEB).

svn path=/trunk/; revision=49187
2010-10-17 20:02:17 +00:00
Sir Richard 3910f94f4a [NTOS]: Handle faults on non-demand-zero PTEs (and/or demand-zero PTEs that are not READWRITE (such as EXECUTE_READWRITE)).
svn path=/trunk/; revision=49186
2010-10-17 19:56:04 +00:00
Daniel Reimer ef0b6ce0bc Sync the out of sync winemine to Wine 1.3.5 and fork it, because of the modified look, improved resources and different code structure.
Additionally call it winmine, as it is in windows, too.

svn path=/trunk/; revision=49185
2010-10-17 17:04:39 +00:00
Eric Kohl b6bcbf0886 [ADVAPI32]
Move the Encrypted File System (EFS) functions into their own file.

svn path=/trunk/; revision=49184
2010-10-17 15:01:46 +00:00
Eric Kohl 3114284398 [PSDK]
Add DecryptFileA/W prototype.

svn path=/trunk/; revision=49183
2010-10-17 14:54:59 +00:00
Sylvain Petreolle 1e4af3fa18 [APITESTS]
Fix (R)TEST macros in gdi32_apitest,
ensures correct display and no crash report in testman.

svn path=/trunk/; revision=49182
2010-10-17 14:50:02 +00:00
Sylvain Petreolle 081e778c2d Katayama Hirofumi:
Add / update Japanese translations.
Fix typos in calc en-US resource.
Bug #5673,5674,5675,5676.

svn path=/trunk/; revision=49181
2010-10-17 12:47:02 +00:00
Sylvain Petreolle f33d927f43 Patch by Roel Messiant :
Initialise PPB to zero.

The change from NtAllocateVirtualMemory to RtlAllocateHeap causes the memory to
be not automatically initialised to zero anymore.
Not every field of the PPB (for which the memory is allocated) gets explicitly
initialised, meaning this results in them having bogus values.

One of the now uninitialised fields is DebugFlags, which results in
DbgBreakPoint being called in NtProcessStartup.  Simply ensuring the memory is
zeroed makes it all better again.

svn path=/trunk/; revision=49180
2010-10-17 11:12:54 +00:00
Daniel Reimer 49c30a8a6d Sync reg xcopy winhlp32 wordpad and msiexec with Wine 1.3.5
svn path=/trunk/; revision=49179
2010-10-17 00:26:32 +00:00
Sir Richard 82949cc7b2 [CSRSS]: Should use MEM_COMMIT | MEM_RESERVE, not just MEM_COMMIT when requesting a range of adress space that wasn't already reserved. This works in ReactOS because, well, no reason to explain why, but it wouldn't work on Windows or with a VAD-based kernel.
svn path=/trunk/; revision=49178
2010-10-16 21:04:50 +00:00
Sir Richard 55e59a3673 [NTOS]: Add MmProtectToValue array to convert MM/PTE protection values to Win32 protection flags.
svn path=/trunk/; revision=49177
2010-10-16 21:02:48 +00:00
Aleksey Bragin 8cf3c262f2 [PSDK]
- Add NOMIRRORBITMAP definition.

svn path=/trunk/; revision=49176
2010-10-16 19:46:03 +00:00
Aleksey Bragin f4be908fdd [PSDK]
- Add ICONINFOEX* definitions and GetIconInfoEx* declarations from Wine.

svn path=/trunk/; revision=49175
2010-10-16 17:23:40 +00:00
Eric Kohl eccf8af929 [ADVAPI32]
Implement LsaAddPrivilegesToAccount(), LsaCreateTrustedDomain(), LsaDeleteTrustedDomain() and LsaOpenTrustedDomainByName().

svn path=/trunk/; revision=49174
2010-10-16 16:26:52 +00:00
Sir Richard 36edd7ee75 !!! The previous commit message had a typo, these are the Windows XP DDK Samples, not the Server 2003 DDK samples !!!
[CLASSPNP/CDROM_NEW]: Remove useless files.

svn path=/trunk/; revision=49172
2010-10-16 15:48:42 +00:00
Sir Richard 73c1c7f232 [CLASSPNP]: Add Windows Server 2003 DDK ClassPNP sample, under the license and terms of the Windows Server 2003 DDK.
[CDROM]: Add Windows Server 2003 DDK Cdrom Sample, under the license and terms of the Windows Server 2003 DDK.
They both build and run fine, but PCIIDE(x) must be completed/enabled, and atapi must be rewritten to be WDM-compliant.

svn path=/trunk/; revision=49171
2010-10-16 15:24:08 +00:00
Cameron Gutman 8047296236 [SCSIPORT]
- Fix a couple of typos in the DMA code from my last commit

svn path=/trunk/; revision=49170
2010-10-16 15:15:51 +00:00
Sir Richard 68e8260b98 [RTL]: Fix a bug introduced Mon Dec 6 00:25:14 1999 UTC (10 years, 10 months ago) in revision 828. NtFreeVirtualMemory takes a pointer to the address to free, not the address instead. For the last 11 years, freeing the process parameter block resulted in freeing whatever the first value in the structure is, which is MaximumLength and initialized to 0x1000. ReactOS would then free whatever random address was in that area. In real Windows, it is illegal to free an allocation in the middle of the base address, and this call failed with the new VAD code. ReactOS either leaked the memory or freed random data, who knows.
[RTL]: Make the PPB live in the Heap instead of having its own virtual allocation, fixing the issue above. Stop rounding it to a PAGE_SIZE, and just use the space required.

svn path=/trunk/; revision=49169
2010-10-16 14:20:30 +00:00
Kamil Hornicek 3b63f433a0 [MMIXER]
Amendment to rev. 49167 requested by Caemyr.

svn path=/trunk/; revision=49168
2010-10-16 13:55:09 +00:00
Johannes Anderwald 53ddbca64c [MMIXER]
- Disable assert for now

svn path=/trunk/; revision=49167
2010-10-16 12:39:49 +00:00
Johannes Anderwald aa8c6826c3 [MMIXER]
- Add support for topologies where pins directly connect to other pins without nodes in between
- Check if the topology contains node. Fixes assert hit in VmWare Player(sound is not working)
- Thanks to Caemyr for testing

svn path=/trunk/; revision=49166
2010-10-16 12:36:21 +00:00
Eric Kohl ab14f413c9 [LSASRV]
- Change the calling convention of all LSA-RPC function to stdcall.
- Export some of the LSA-RPC functions.

svn path=/trunk/; revision=49165
2010-10-16 12:34:04 +00:00
Eric Kohl b560e7a480 [ADVAPI32]
Implement LsaCreateAccount(), LsaOpenAccount() and LsaSetInformationPolicy().

svn path=/trunk/; revision=49164
2010-10-16 09:41:47 +00:00