- Initialize the paged pool guarded mutex.
- Add helper routines ExLock/UnlockPool to either acquire the NPP QSL or the PP GM depending on the pool descriptor, instead of hardcoding the NPP QSL.
- Implement InitializePool for the PagedPool case.
- Now call InitializePool for PagedPool as well.
svn path=/trunk/; revision=43482
- Add ARM3/mmsup.c for miscellaneous function helper functions.
- Implemented:
- Move MmIsRecursiveIoFault, MmIsThisanNtAsSystem and MmQuerySystemSize. These belong here.
- Unimplemented:
- Move MmSetBankedSection and fix the prototype. This should probably go somewhere else later.
- Move MmAdjustWorkingSetSize and fix the prototype. This should probably go in procsup.c later.
- Move MmMapUserAddressesToPage. This should also probably go in procsup.c later.
- Move MmSetAddressrangeModified and MmIsNonPagedsystemAddressValid. These should probably go somewhere else later.
svn path=/trunk/; revision=43481
- MiDoMappedcopy: The MDL should have 16 pages total, so MI_MAPPED_COPY_PAGES should be 14, not 16, to account for the MDL page itself, and the extra add-on page.
- MiDoMappedCopy: Check for working set quota exception.
- NtRead/WriteVirtualMemory: Do not attempt to do any work if the size is 0.
- NtRead/WriteVirtualMemory: Do not return SEH status if we fail to write the number of bytes read/written -- return the function status.
- NtProtectVirtualMemory: Protect the memory while attached to the target process.
- NtProtectVirtualMemory: Do not return SEH status if we fail to write the number of bytes protected -- return the function status.
- NtLock/UnlockVirtualMemory: Fix incorrect function definition. The last parameter is a bitfield. The middle two parameters are pointers, not values.
- VirtualLock/Unlock: Fix calling NtLock/UnlockVirtualMemory with new correct function definitions. Call with MAP_PROCESS.
- NtLock/UnlockVirtualMemory: Apply SEH. Validate flags. Validate parameters.
- NtLock/UnlockVirtualMemory: Attach to the process while doing the operation. Reference the process.
- NtLock/UnlockVirtualMemory: Check for SE_LOCK_MEMORY_PRIVILEGE if MAP_SYSTEM is specified.
- Move MAP_SYSTEM and MAP_PROCESS from ntifs.h to mmtypes.h in NDK.
- NtLock/UnlockVirtualMemory: Return success and semi-legitimate return values saying nothing was actually done.
- NtFlushVirtualMemory: Apply SEH. Validate flags. Validate parameters. Call MmFlushVirtualMemory.
- NtFlushVirtualMemory: Reference the process.
- NtFlushVirtualMemory: Return success and semi-legitimate return values indicating nothing was flushed.
- NtGetWriteWatch: Fix function prototype.
- NtGet/ResetWriteWatch: Apply SEH instead of hacked parameter checks. Validate parameters.
- NtGet/ResetWriteWatch: Reference the process.
- NtGet/ResetWriteWatch: Return semi-legitimate return values indicating nothing was written to.
- These APIs are now owned by ARM3.
svn path=/trunk/; revision=43480
- Add a helper function for reading (mapping) volume's stream file object.
- Read a boot sector during volume mounting, unpack it and store values in Vcb->Bpb for later usage. In particular, a volume's serial number being empty problem is fixed now. Volume label is still empty.
- Silence more non-important debug prints.
svn path=/trunk/; revision=43477
- Set up PEB and TEB under SEH to handle possible paging errors (which are legitimate).
- Also touch the image under SEH to handle image paging errors (also legitimate).
- Should avoid kernel panics in cases where the executable is damaged, invalid, or impossible to page in.
- Initialize more PEB fields.
- Add new INITIAL_PEB structure to support fork() in the future. Also fixes the fact we don't create a PEB for the system process anymore.
- Create PEB while attached to the process.
- Handle UP-only images, and set correct affinity mask in the PEB.
- Set session ID instead of session structure (currently zero).
- Set correct TIB version in the TEB. Due to a historical oddity, the NT TIB identifies itself as '0x1e00', which is 30 shifted 8 bits. 30 is the version identifier of OS/2 3.0, the original 32-bit target of the Windows NT effort.
- Handle initial TEB correctly for fork().
- Move AWE APIs to procsup.c instea of section.c since they are unrelated.
- Move the rewritten PEB/TEB functions to ARM3's procsup.c.
svn path=/trunk/; revision=43476
- Implement shared VCB locking.
- Implement QueryVolumeInfo common handler, and a handler of QueryFsVolumeInfo class. Doesn't currently work due to missing VPB.
svn path=/trunk/; revision=43453
- Check for completed stack after dealing cards by installing one function to do this in call three cases, bug #4886
- Fix and simplify drop rules (only by number) and validation rules (by number and type) for two and four color games
- Fix typo in Polish Translation
svn path=/trunk/; revision=43441
- Add KdpCopyMemoryChunks and use it to handle virtual memory read/write (physical memory support still stubbed). The actual copy is still a hack and its only safeguard against invalid memory is still a simple check for NULL.
- Properly implement KdpReadVirtualMemory, KdpWriteVirtualMemory, KdpReadPhysicalmemory and KdpWritePhysicalmemory using KdpCopyMemoryChunks.
- Merge Timo's ReportFlags fix from the AMD64 branch.
- Implement KdpSysWriteMsr and KdpSysReadMsr for x86. SEH is commented as our GPF handler seems to swallow exceptions caused by accessing invalid MSRs.
- Change DataValue parameter of KdpSysReadIoSpace and KdpSysWriteIoSpace to PVOID to better match how it is used.
svn path=/trunk/; revision=43440
- Add macros which are not present in the WDK
- Check return type of synchronized interrupt routine
- Use PcHandlePropertyWithTable IPortPinWavePci
- Remove IServiceSink implementation from IPortWaveRt as it is a hack
- Add a small hack to IResource list implementation as prefast doesnt find decl of NumberOfEntries
- Fix build
svn path=/trunk/; revision=43437
- Add the sum / mixer node to the destination pin
- Only create MIXERVOLUME_DATA when there is an actual range
- Use unsigned members to calculate the range
svn path=/trunk/; revision=43424