- Removed initialization of caching in vfatAttacheFCBToFileObject.
The cache for files is initialized at the first read/write operation.
- Merged vfatExtendSpace and VfatSetAllocationSizeInformation in one function.
svn path=/trunk/; revision=3339
CcSetDirtyPinedData. There is no working shutdown function
for writing back each modified cache segment. A reboot or
crash can damage the disk.
- Added CcRosReferenceCache and CcRosDereferenceCache.
- Check at each call to CcRosInitializeFileCache if the cache was
initialized for the file stream by a previous call to this function.
- Check at each call to CcRosReleaseFileCache if this is possible
to delete the caching for the file stream.
svn path=/trunk/; revision=3338
operation for a section. This prevents the cache from uninitialization
for a mapped file (data or image) at the cleanup of a given file object
or force the uninitialization if the last section of a file is deleted.
svn path=/trunk/; revision=3337
* ntoskrnl/mm/rmap.c (MmWritePagePhysicalAddress): Ensure the
process isn't freed in the middle of our operations.
2002-08-17 David Welch <welch@computer2.darkstar.org>
* drivers/fs/vfat/finfo.c (VfatSetAllocationSizeInformation): Fixed.
svn path=/trunk/; revision=3336
* ntoskrnl/ps/create.c (PiDeleteThread): Don't dereference
the thread's process while holding the thread list lock.
2002-08-17 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/section.c (MmMapViewOfSection): Check there is
enough space for all parts of an image before mapping it; if
there isn't enough space free at the preferred base address
then try to choose a different one.
2002-08-17 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/mpw.c (MmInitMpwThread): Run the MPW thread at
idle priority.
2002-08-17 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/kmap.c (ExUnmapPage, ExAllocatePageWithPhysPage,
MiFreeNonPagedPoolRegion, MiAllocNonPagedPoolRegion): Maintain
a hint of the next free page; makes running with whole page
allocation more bearable.
2002-08-17 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/anonmem.c (MmPageOutVirtualMemory): Show an
out of swap space message if we are out of swap space.
* ntoskrnl/mm/section.c (MmPageOutSectionView): Show an
out of swap space message if we are out of swap space.
* ntoskrnl/mm/pagefile.c (MmAllocSwapPage): Don't automatically
show an out of swap space message on failure.
* ntoskrnl/mm/pagefile.c (MmShowOutOfSpaceMessagePagingFile): New
function to notify the user that the pagefile is full.
2002-08-17 David Welch <welch@computer2.darkstar.org>
* drivers/lib/zlib/Makefile: Create a dummy zlib.sym
svn path=/trunk/; revision=3335
* ntoskrnl/mm/npool.c (ExAllocateWholePageBlock): Converted
to use PHYSICAL_ADDRESS type for page address.
2002-08-16 David Welch <welch@computer2.darkstar.org>
* subsys/win32k/ntuser/class.c (W32kCreateClass): Corrected
typo when calculating the offset into the class object to
put the class name string.
2002-08-16 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/ps/thread.c (PsDispatchThreadNoLock): Don't call
the reaper function directly; set an event to wake up a seperate
reaper thread.
* ntoskrnl/ps/thread.c (PsReaperThreadMain): New function that
waits for a notification and then calls PsReapThreads.
* ntoskrnl/ps/thread.c (PsInitThreadManagement): Create the
reaper thread.
svn path=/trunk/; revision=3333
* subsys/smss/init.c (SmPagingFilesQueryRoutine): If possible
take the size of the paging file from the registry.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/section.c (MmCreateDataFileSection): Extend the
section if necessary.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/pagefile.c (NtCreatePagingFile): Set the file
size using the FileAllocationInformation class.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/anonmem.c (MmWritePageVirtualMemory): Implemented
function to write anonymous memory pages to the swap file.
* ntoskrnl/mm/anonmem.c (MmFreeVirtualMemoryPage): Free any
swap page associated with the page.
* ntoskrnl/mm/mpw.c (MmWriteDirtyPages): New function to find
pages to write to disk.
* ntoskrnl/mm/mpw.c (MmMpwThreadMain): Implemented MPW functionality.
* ntoskrnl/mm/rmap.c (MmWritePagePhysicalAddress): New function
to write a single page back to disk.
* ntoskrnl/mm/rmap.c (MmSetCleanAllRmaps, MmSetDirtyAllRmaps,
MmIsDirtyPageRmap): New rmap function to support the MPW thread.
* ntoskrnl/mm/section.c (MmWritePageSectionView): Implemented
function to write back section pages.
* ntoskrnl/mm/section.c (MmFreeSectionPage): Free any swap
entry associated with the page; mark pages shared with
the cache as dirty if necessary.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/ldr/loader.c (LdrPEProcessModule): Set name of
the module into the module text structure.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/io/rw.c (NtReadFile, NtWriteFile): Use the correct
test for whether to wait for the completion of i/o.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/cm/ntfunc.c (NtFlushKey): Request synchronous i/o
from NtOpenFile.
* ntoskrnl/cm/regfile (CmiInitPermanentRegistryHive): Request
synchronous i/o from NtCreateFile.
* ntoskrnl/dbg/kdb_stabs.c (LdrpLoadModuleSymbols): Request
synchronous i/o from NtOpenFile.
* ntoskrnl/ldr/sysdll.c (LdrpMapSystemDll): Request synchronous i/o
from NtOpenFile.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/cc/view.c (CcRosSuggestFreeCacheSegment): Maintain the
correct reference count.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/cc/view.c (CcRosFlushCacheSegment): New function to
write back a modified cache segment.
* ntoskrnl/cc/view.c (CcRosFlushDirtyPages): New function to
flush some dirty pages from the cache.
* ntoskrnl/cc/view.c (CcRosMarkDirtyCacheSegment): New function to
mark a cache segment modified while mapped into memory as dirty.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/cc/pin.c (CcMapData, CcUnpinData, CcSetDirtyPinnedData):
Store the dirty status in the BCB; don't write back dirty data
immediately.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* include/ntos/mm.h: Added SEC_XXXX defines from 'Windows NT/2000
Native API Reference'
2002-08-14 David Welch <welch@computer2.darkstar.org>
* drivers/fs/vfat/ea.c (VfatSetExtendedAttributes): Empty
placeholder for extended attribute functions.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* drivers/fs/vfat/finfo.c (VfatSetAllocationSizeInformation):
Added function to set allocation size.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* drivers/fs/vfat/fcb.c (vfatFCBInitializeCache): Renamed
to vfatFCBInitializeCacheFromVolume.
* drivers/fs/vfat/fcb.c (vfatMakeFCBFromDirEntry): Don't
initialise the cache with a file object representing the
volume unless the FCB is for a directory.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* drivers/fs/vfat/create.c (VfatPagingFileCreate): Added a
new function for handling paging file only code.
* drivers/fs/vfat/create.c (VfatSupersedeFile): Added a
new function for doing a file supersede.
* drivers/fs/vfat/create.c (VfatCreateFile): Reformatted and
adjusted control flow. Set allocation size and extended attributes
on create.
* drivers/fs/vfat/create.c (VfatCreate): Removed goto.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* drivers/fs/vfat/cleanup.c (VfatCleanupFile): Renamed
updEntry to VfatUpdateEntry.
* drivers/fs/vfat/close.c (VfatCloseFile): Renamed
updEntry to VfatUpdateEntry.
* drivers/fs/vfat/dirwr.c (updEntry): Renamed to
VfatUpdateEntry.
* drivers/fs/vfat/dirwr.c (addEntry): Renamed to
VfatAddEntry.
2002-08-14 David Welch <welch@computer2.darkstar.org>
* apps/tests/sectest/sectest.c (main): Fixed formatting.
svn path=/trunk/; revision=3331
* ntoskrnl/mm/i386/page.c (MmSetPageProtect): Fixed
behaviour when called on the system address space.
2002-08-10 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/virtual.c (MmQueryAnonMem, MmProtectAnonMem,
NtAllocateVirtualMemory, NtFreeVirtualMemory): Renamed
segments to regions; moved region code to seperate file.
Implemented NtQueryVirtualMemory and NtProtectVirtualMemory
for anonymous memory areas.
2002-08-10 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/anonmem.c: Moved functions relating to
areas created with NtAllocateVirtualMemory to a
seperate file.
2002-08-10 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/section.c (MmQuerySectionView): Implemented
NtQueryVirtualMemory for section views.
2002-08-10 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/section.c (MmAccessFaultSectionView,
MmNotPresentFaultSectionView, MmProtectSectionView,
MmMapViewOfSegment, MmAlterViewAttributes): Implemented
NtProtectVirtualMemory for section views.
2002-08-10 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/ke/main.c: Removed SEH test code.
2002-08-10 David Welch <welch@computer2.darkstar.org>
* lib/ntdll/ldr/utils.c (LdrFixupImports): Remove the readonly
protection from the IAT before writing to it.
2002-08-10 David Welch <welch@computer2.darkstar.org>
* lib/ntdll/ldr/utils.c (LdrAdjustDllName): Properly null terminate
the base name of the DLL.
2002-08-10 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/ldr/loader.c (LdrPEProcessModule): Set the text segment
of modules to readonly after loading.
svn path=/trunk/; revision=3327
* ntoskrnl/ps/create.c (NtCreateThread): Call PsSuspendThread
if NtCreateThread has CreateSuspended as TRUE.
* ntoskrnl/ps/suspend.c (PsSuspendThread, PsResumeThread,
PiSuspendThreadKernelRoutine): Fixed suspend functionality.
2002-08-09 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/ke/i386/usertrap.c (print_user_address): Copy
the LDR variable from the right address.
2002-08-09 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/ke/apc.c (KiDeliverNormalApc): Check for
kernel APCs pending on exit from the kernel.
* ntoskrnl/ke/apc.c (KiDeliverNormalApc, KiDeliverUserApc,
KiDeliverApc): Set the APC's inserted flag to FALSE after
removing it from the thread's queue.
2002-08-09 David Welch <welch@computer2.darkstar.org>
* lib/kernel32/thread/thread.c (ThreadStartup): Don't
call DLL entrypoints; this is done by LdrInitializeThunk.
* lib/ntdll/ldr/startup.c (LdrInitializeThunk): Call
DLLs in initialization order; take the loader lock before
calling.
2002-08-09 David Welch <welch@computer2.darkstar.org>
* apps/tests/thread/thread.c (main): Test suspend and
resume functionality.
svn path=/trunk/; revision=3324
* ntoskrnl/mm/section (NtQuerySection): Return the
right result length.
2002-08-08 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/ke/usertrap.c (print_user_address): Check for
a NULL LDR structure in the PEB; copy the LDR pointer in
safely.
2002-08-08 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/ke/apc.c (KiDeliverUserApc): Deliver all present
APCs; release the APC spinlock while acccessing user memory.
2002-08-08 David Welch <welch@computer2.darkstar.org>
* include/internal/ps.h: Adjusted offsets into the ETHREAD
structure.
* include/internal/ps.h: Removed redundant members from the
KTHREAD structure.
* ntoskrnl/ke/kthread.c (KeInitializeThread): Removed
redundant members from the KTHREAD structure.
2002-08-08 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/dbg/kdb.c (KdbEnterDebuggerException): New
function to enter the debugger on an exception.
* ntoskrnl/kd/kdebug.c (KdInitSystem): Initialize the
local kernel debugger if enabled.
* ntoskrnl/ke/catch.c (KiDispatchException): Enter the
local kernel debugger on an exception.
2002-08-08 David Welch <welch@computer2.darkstar.org>
* include/ntdll/ldr.h: Added definition for a DLL entrypoint.
* lib/kernel32/process/create.c (KlCreateFirstThread): Put
the argument to the NtProcessStartup function on the stack.
* lib/kernel32/process/create.c (KlInitPeb): Read the
base address of the new image from the PEB.
* lib/kernel32/process/create.c (CreateProcessW): Start the
first thread at the entrypoint of the new image.
* lib/ntdll/ldr/startup.c (LdrInitializeThunk): If the
function is called after the initial startup then just call the
entrypoints for the loaded DLLs with DLL_THREAD_ATTACH. Don't
call the entrypoint of the image.
* lib/ntdll/rtl/process.c (RtlpCreateFirstThread): Put the
argument to the NtProcessStartup function on the stack.
* lib/ntdll/rtl/process.c (KlInitPeb): Read the base address of
the new image from the PEB.
* lib/ntdll/rtl/process.c (RtlCreateUserProcess): Start the
first thread at the entrypoint of the new image.
* ntoskrnl/ke/i386/bthread.S (PsBeginThreadWithContextInternal):
Use the system call path to begin a usermode thread.
* ntoskrnl/ke/i386/thread.c (Ke386InitThreadWithContext): Convert
the supplied context into a trap frame.
* ntoskrnl/ldr/init.c (LdrLoadInitialProcess): Put the PEB argument
to the NtProcessStartup function on the new stack; start the
first thread at the entrypoint of the image.
* ntoskrnl/ps/create.c (NtCreateThread): Create an APC to call
LdrInitializeThunk in the context of a new thread before its
entrypoint.
2002-08-08 David Welch <welch@computer2.darkstar.org>
* drivers/fs/vfat/cleanup.c (VfatCleanupFile): Uninitialise
the cache on file cleanup.
* drivers/fs/vfat/fcb.c (vfatReleaseFcb): Don't uninitialise
the cache on file close.
* ntoskrnl/cc/copy.c: Renamed zero page global variable.
* ntoskrnl/cc/view.c: Added cache delete function.
svn path=/trunk/; revision=3323
* subsys/win32k/include/callback.h: Fixed callback argument
definitions.
* subsys/win32k/ntuser/winpos.c: Implemented some more of the windows
sizing/moving code.
* subsys/win32k/ntuser/painting.c: Implemented some more of the
window painting code.
* subsys/win32k/objects/coord.c: Implemented LPtoDP and DPtoLP.
* subsys/win32k/objects/region.c: Added stubs for some more
region functions.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/ps/process.c (NtCreateProcess): Duplicate the
process desktop handle as well.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/se/token.c: Don't call the ZwXXX variant of
system calls when in system context.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/Makefile: Added file with MDA output code.
* ntoskrnl/kd/kdebug.c: Recognize MDA as a destination for
debug output.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* lib/user32/windows/defwnd.c: Implemented some more of the
default window handler.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* lib/user32/misc/stubs.c: Removed some stubs to seperate files.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* lib/user32/user32.def: Export ScreenToClient otherwise we
get problems when code in user32 tries to call it.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* include/win32k/region.h: Added prototypes for some missing
region functions.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* include/win32k/ntuser.h: Added prototypes for some missing
NtUserXXX functions.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* include/user32/wininternal.h: Added some constants for
private GetDCEx styles that WINE needs.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* include/user32/callback.h: Fixed callbacks for messages with
parameters.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* include/napi/win32.h (W32THREAD): Added pointer to the
thread's desktop.
* include/napi/win32.h (W32PROCESS): Removed handle table,
added a pointer to the process's window station.
* subsys/win32k/ntuser/guicheck.c (W32kGuiCheck): Reference
a process's window station on the first win32k system call. Reference
a thread's desktop on the first win32k system call.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* include/messages.h: Added some missing WM_XXX constants.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* drivers/dd/ide/makefile: Compiling with debugging messages
needs libgcc to be linked in.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* iface/addsys/genw32k.c: Generate a variable with the
number of system calls.
* iface/native/genntdll.c: Generate a proper stack frame for
the user system call stubs.
* ntoskrnl/ke/i386/syscall.S: Generate a proper stack frame for
the handler for system calls.
2002-07-04 David Welch <welch@computer2.darkstar.org>
* Makefile: Build the GUI startup application.
* subsys/system/gstart/gstart.c: Application to start up
the GUI.
svn path=/trunk/; revision=3179
* tools/helper.mk: Make an import library a proper target
depending on the .def file.
2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* subsys/win32k/ntuser/window.c (NtUserGetWindowLong): Began
implementation.
2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* subsys/win32k/misc/object.c (ObmCreateHandle): Return the
correct handle value.
2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* subsys/win32k/makefile: Make win32k depend on the file containing
the service table.
2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* ntoskrnl/ke/i386/stkswitch.S (KeSwitchStackAndRet,
KePushAndStackSwitchAndSysRet): Push one value only.
* ntoskrnl/ps/w32call.c (NtCallbackReturn, NtW32Call): Moved
these functions to a new file. Restore the old trap frame after
returning from a callback.
2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* lib/user32/windows/message.c (CallWindowProcA, CallWindowProcW):
Convert message to Unicode or ASCII if necessary.
2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* include/user32/callback.h: Added WM_CREATE and WM_NCCALCSIZE
callbacks.
* lib/user32/windows/window.c (User32SendCREATEMessageForKernel,
User32SendNCCREATEMessageForKernel): Implemented.
* subsys/win32k/ntuser/callback.c (W32kSendCREATEMessage):
Implemented.
2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* include/structs.h: Added Unicode and ASCII versions of
CREATESTRUCT.
svn path=/trunk/; revision=3118
* Call SepCreateSystemProcessToken() when creating the
initial system process. Cleanup the token during
in PiDeleteProcess().
* Call SepInitializeNewProcess() during NtCreateProcess
to copy the parent processes token to the new process.
ntoskrnl/include/internal/se.h
ntoskrnl/se/token.c
* Change name of SepDuplicationToken() [which was unimplemented]
to SepDuplicateToken(). Implement it.
* Implement new functions (which are used by process.c)
SepInitializeNewProcess() and SepCreateSystemToken().
* Correctly (I think) set Token->ImpersonationLevel in
NtCreateToken().
apps/tests/tokentest/tokentest.c
* Dump the current processes token.
svn path=/trunk/; revision=3113
* Move SeInit2() to before we initialize process
management so we can create an initial system
token to go with the initial system process.
ntoskrnl/ps/process.c
* Implement NtOpenProcessToken() by calling
_NtOpenProcessToken() -- why do we have
both of these?
* Fix bug in _NtOpenProcessToken() that
caused us to crash creating the token
handle.
* Return STATUS_INVALID_INFO_CLASS from
NtQueryInformationProcess() and
NtSetInformationProcess() for information classes
documented as unqueryable or unsettable
by Gary Nebbet in his book "Native API Reference".
* Fix bug in NtSetInformationProcess() where it
assigns the primary token -- it derefeneced the
old token if SeExchangePrimaryToken() failed;
it should have derferenced it if it succeeded.
svn path=/trunk/; revision=3112
* tools/help.mk: Make the install target depend on all the
files to be installed.
2002-06-16 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* ntoskrnl/ps/thread.c (NtCallbackReturn): Set TSS.Esp0 to the
top of the old stack.
* ntoskrnl/ps/thread.c (NtW32Call): Set TSS.Esp0 to the top of
the new stack. Free the callback stack correctly. Don't copy
portion of the trap frame that doesn't exist in non-v86-mode
interrupts.
* ntoskrnl/ps/thread.c (PsFreeCallbackStack): New function to
free a stack allocated with PsAllocateCallbackStack.
2002-06-16 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* drivers/dd/null/makefile: Commented out local LDFLAGS as
these cause bad relocations in the stripped image.
2002-06-16 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* config: Corrected spelling error.
svn path=/trunk/; revision=3107
Fix check for NULL Buffer (it was checking for non-null Buffer).
Fix length field when printing unicode strings; it was printing twice as many characters as it should have.
(Patch by Joseph Galbraith)
svn path=/trunk/; revision=3091
initializing the DeviceNode->ServiceName, since IopFreeDeviceNode()
will use RtlFreeUnicodeString() on it.
* Call ObDereferenceObject() instead of ExFreePool() to release the
DeviceObject if DriverEntry fails.
Patch from Joseph Galbraith.
svn path=/trunk/; revision=3053
* subsys/system/winlogon/winlogon.c (WinMain): Check for
failure when creating a window system.
2002-06-11 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* ntoskrnl/ob/handle.c (ObDuplicateObject): Added this internal
function for duplicating objects.
* ntoskrnl/ps/process.c (NtCreateProcess): Duplicate the parent
process's window station to the child process.
* ntoskrnl/ps/process.c (PsInitProcessManagement): Initialize the
first process's window station.
2002-06-11 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* ntoskrnl/mm/marea.c (MmCreateMemoryArea): Initialise
page operation structure members.
* ntoskrnl/mm/pageop.c (MmReleasePageOp, MmGetPageOp): Increment
or decrement the page operation count in the memory area.
* ntoskrnl/mm/virtual.c (MmNotPresentFaultVirtualMemory,
MmPageOutVirtualMemory): Check for a deleted memory area before
handling the fault.
* ntoskrnl/mm/virtual.c (MmFreeVirtualMemory): Wait for all
page operations to finish before freeing the memory area.
2002-06-11 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* ntoskrnl/ke/i386/syscall.S (interrupt_handler2e): Corrected
test for previous mode, upper 16-bit of CS on the stack after an
interrupt are arbitary.
2002-06-11 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* lib/user32/misc/winsta.c: Cleaned up indentation.
2002-06-11 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* apps/tests/winhello/winhello.c (WinMain, MainWndProc):
Cleaned up formatting, some more error checks.
2002-06-04 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* ntoskrnl/mm/virtual.c (MmSecureVirtualMemory,
MmUnsecureVirtualMemory, NtQueryVirtualMemory): Corrected indentation.
svn path=/trunk/; revision=3050
Minimize access to the module object via the object manager.
Use module list for internal module management.
Protect module list with a spinlock.
svn path=/trunk/; revision=3031
- Implement RtlGetAce()
- Fix bug which cause RtlCreateAcl() to always fail.
- Cleanup parameter names and fix bug that caused a buffer overrun in RtlCopySidAndAttributesArray()
- When referencing the token object in NtQueryInformationToken() pass in either TOKEN_QUERY access or TOKEN_QUERY_SOURCE access. Passing in zero led to ObReferenceObjectByHandle() always failing with ACCESS_DENIED.
- Fixed NtQueryInformationToken() to check the buffer length and return STATUS_BUFFER_TO_SMALL and the required length.
- Ensure that the ReturnLength is set correctly when NtQueryInformationToken() succeeds. Previously, it was set to the number of bytes unused in the user buffer in some cases or not set at all.
- Handle case of NULL default dacl correctly in NtQueryInformationToken()
- Update main makefile to build apps\utils.
- Update makefiles in apps\utils to have the correct PATH_TO_TOP.
- Update main makefile to build apps\tests\tokentest
Written by Joseph Galbraith.
svn path=/trunk/; revision=3024
This fixes some crashs after changing to a nonexisting drive and
a message like 'Parent is a Directory which is not a device type'.
svn path=/trunk/; revision=3008
* ntoskrnl/ke/i386/exp.c (KiDoubleFaultHandler): Print CR3
correctly.
2002-06-04 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* ntoskrnl/include/internal/ps.h: Added KTHREAD_STACK_LIMIT definition.
* ntoskrnl/ke/i386/tskswitch.S (Ki386ContextSwitch): Force all the
pages of the kernel stack to be accessible from this process.
2002-06-04 David Welch <welch@cwcom.net>
* ntoskrnl/cc/view.c (ReadCacheSegmentChain): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/cc/copy.c (CcRosCreateCacheSegment): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/cc/copy.c (CcFreeCachePage): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/include/internal/mm.h: Changed prototypes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/include/internal/ps.h (KPROCESS): Changed type of
page directory base to PHYSICAL_ADDRESS.
* ntoskrnl/include/internal/i386/mm.h: Changed prototypes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/ke/kthread.c (KeFreeStackPage): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/ke/kthread.c (KeInitializeThread): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/ke/process.c (KeAttachProcess, KeDetachProcess): Changes
to use PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/ke/kernel.c (PcrPages, KeApplicationProcessorInit): Changes
to use PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/mm/balance.c (MM_ALLOCATION_REQUEST): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/mm/balance.c (MmReleasePageMemoryConsumer): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/mm/balance.c (MmRequestPageMemoryConsumer): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/mm/cont.c (MmFreeContinuousPage): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/mm/cont.c (MmAllocateContinuousAlignedMemory): Changes to
use PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/mm/freelist.c (MmTransferOwnershipPage,
MmGetLRUFirstUserPage, MmGetLRUNextUserPage, MmGetContinuousPages,
MmInitializePageList, MmSetFlagsPage, MmSetRmapListHeadPage,
MmGetRmapListHeadPage, MmMarkPageMapped, MmMarkPageUnmapped,
MmGetFlagsPage, MmSetSavedSwapEntryPage, MmGetSavedSwapEntryPage,
MmReferencePage, MmGetReferenceCountPage, MmIsUsablePage,
MmDereferencePage, MmGetLockCountPage, MmLockPage, MmUnlockPage,
MmAllocPage): Changes to use PHYSICAL_ADDRESS type for physical
addresses.
* ntoskrnl/mm/iospace.c (MmMapIoSpace): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/mm/kmap.c (ExAllocatePage, MiZeroPage, MiCopyFromUserPage,
ExAllocatePageWithPhysPage): Changes to use PHYSICAL_ADDRESS type for
physical addresses.
* ntoskrnl/mm/marea.c (MmFreeMemoryArea): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/mm/mdl.c (MmUnlockPages, MmMapLockedPages,
MmProbeAndLockPages): Changes to use PHYSICAL_ADDRESS type for
physical addresses.
* ntoskrnl/mm/mm.c (MmSharedDataPagePhysicalAddress,
MmCommitPagedPoolAddress, MmNotPresentFault): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/mm/mminit.c (MmInitVirtualMemory): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/mm/ncache.c (MmAllocateNonCachedMemory,
MmFreeNonCachedPage): Changes to use PHYSICAL_ADDRESS type for
physical addresses.
* ntoskrnl/mm/npool.c (grow_kernel_pool): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/mm/rmap.c (MmPageOutPhysicalAddress, MmInsertRmap,
MmDeleteAllRmaps, MmDeleteRmap): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/mm/section.c (MiReadPage, MmNotPresentFaultSectionView,
MmAccessFaultSectionView, MmPageOutDeleteMapping,
MmPageOutSectionView, MmFreeSectionPage): Changes to use
PHYSICAL_ADDRESS type for physical addresses.
* ntoskrnl/mm/slab.c (ExGrowSlabCache): Changes to use
PHYSICAL_ADDRESS type for physical address.
* ntoskrnl/mm/virtual.c (MmPageOutVirtualMemory,
MmNotPresentFaultVirtualMemory, MmFreeVirtualMemoryPage): Changes to
use PHYSICAL_ADDRESS type for physical address.
* ntoskrnl/mm/wset.c (MmTrimUserMemory): Changes to use
PHYSICAL_ADDRESS type for physical address.
* ntoskrnl/mm/page.c (Mmi386ReleaseMmInfo, MmCopyMmInfo,
MmGetPhysicalAddressForProcess, MmCreateVirtualMapping,
MmCreateVirtualMappingUnsafe, MmCreateVirtualMappingForProcess,
MmDeleteVirtualMapping): Changes to use PHYSICAL_ADDRESS type for
physical address.
* ntoskrnl/ps/process (PsInitProcessManagment): Changes to use
PHYSICAL_ADDRESS type for physical address.
* ntoskrnl/ps/thread.c (PsAllocateCallbackStack): Changes to use
PHYSICAL_ADDRESS type for physical address.
2002-06-04 David Welch <welch@cwcom.net>
* Lots of change since the ChangeLog was last updated.
svn path=/trunk/; revision=3000