From: Joseph G. <gal...@va...> - 2002-06-17 22:50:08
|
ntoskrnl/ke/main.c * 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. * 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. - Joseph |