| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[NTOS:KE] Implement support for CycleTime accounting | 1 个月前 | |
[NTOS:KE] Implement shared CPU vendor identification for x86/x64 | 2 个月前 | |
[NTOSKRNL] Remove remnant internal/arm/asmmacro.S (#6052) Addendum to 6212c82 (r67715). | 2 年前 | |
[NTOS:KE] Implement support for CycleTime accounting | 1 个月前 | |
[NTOS:KE] Implement shared CPU signature identification for x86/x64 | 1 个月前 | |
[NTOS:CC] Fix a race condition for dirty VACBs - CcRosUnmarkDirtyVacb: return BOOLEAN, guard against double-unmark - CcRosMarkDirtyVacb: guard against double-insertion - CcRosFlushVacb: only re-mark dirty on failure if we were the one who unmarked - Add comments to lockless Dirty reads in CcFlushCache and CcRosReleaseVacb Signed-off-by: Timo Kreuzer <timo.kreuzer@reactos.org> | 2 个月前 | |
[NTOS:CONFIG] Fix CmpRemoveFromHiveFileList() management (#9564) Supplement to commit f09f448d95 (r57263), CORE-6491 ## Problem description: The support for unloading registry hives using the `NtUnloadKey2()` and `CmUnloadKey()` functions has been introduced in commit 3507ef2ac6 (r68295), CORE-3094. It also brought the first usage of the `CmpRemoveFromHiveFileList()` routine, previously implemented in commit f09f448d95 (r57263), in order to remove the registry value associated to a registry hive, listed under the registry key `HKLM\SYSTEM\CurrentControlSet\Control\hivelist`, added by a previous `CmpAddToHiveFileList()` invocation when the hive was initially mounted. The problem was that in `CmUnloadKey()`, the `CmpRemoveFromHiveFileList()` routine was invoked *AFTER* a successful call to `CmpUnlinkFromMasterHive()`. Because of this, the routine was looking at an alread invalidated `LinkData` hive node. In doing so, the `LinkName` it deduced, and the hive path it constructed to lookup into the `hivelist` registry key, could become invalid: either from the name data being read, or, because the `KeyNode.Flags` value became invalid, invalidating the `KEY_COMP_NAME` flag for example, thus affecting the readability of the key name. In ReactOS, the problem almost never showed up, except during its 1st-stage installation, where the target `SOFTWARE` hive, mounted as: `\Registry\Machine\USetup_Software`, remained listed in the `hivelist` registry key, while the hive itself was already perfectly unloaded. As it turned out, the `SOFTWARE` mount link key was already invalidated, and the `USetup_Software` name was read incorrectly, and the code was generating an invalid hive path string to be looked up. Note that invoking `CmpRemoveFromHiveFileList()` *AFTER* a successful `CmpUnlinkFromMasterHive()`, is an action similar to what is done in Windows 2003 SP1 and later; however, this would have required reconstructing the hive's path just before unlinking it. (On Windows 2003 RTM and before, `CmpRemoveFromHiveFileList()` is invoked *BEFORE* `CmpUnlinkFromMasterHive()` in symmetry to what is done in the hive linking process. This has been changed on SP1+ so as to keep the hive linking information in the registry up until the hive unlinking has been successfully done.) ## Problem resolution: To resolve this issue, instead of reconstructing the hive path just before unlinking the hive, as done in Windows 2003 SP1 and SP2 (and removing it from the hive list later), we adopt an approach _similar_ to that of Vista+, by caching the hive path string initially constructed by `CmpAddToHiveFileList()` in the `CMHIVE` structure into a new `HiveRootPath` member. The `CMHIVE::HiveRootPath` member is absent in Windows 2003, https://www.vergiliusproject.com/kernels/x86/server-2003/sp2/_CMHIVE and is introduced with Windows Vista RTM, https://www.vergiliusproject.com/kernels/x86/windows-vista/rtm/_CMHIVE | 20 天前 | |
[NTOS:CM] Add debug code for analyzing lock issues | 2 年前 | |
[NTOS:CM] Adapt cmboot.c for usage in NT/ReactOS bootloader. - Add a new cmboot.h header to isolate the boot-support definitions shared with the NT/ReactOS bootloader. - Move CmpFreeDriverList() to cmboot.c so that we can use it for cleanup paths in the NT/ReactOS bootloader. - CmpFindControlSet(): Directly build the control set name in UNICODE, instead of doing an ANSI->UNICODE conversion. - Directly assign the CurrentControlSet\Services constant string, instead of going the route of init-empty-string + append-string. This is possible since that string is not modified later. - Remove ASSERT(FALSE), replacing them with correct failure handling. - Add cleanup paths in CmpAddDriverToList(). - Simplify and fix CmpFreeDriverList(): it's the full DriverNode that needs to be freed; not the LIST_ENTRY pointer. - Add other validity checks: * Registry value types and data sizes; * For multi-strings, verify that they are NULL-terminated. * For (multi-)strings, check whether they are NULL-terminated before optionally removing their trailing NULL character from the count. Check also whether they are of zero-length and take appropriate action where necessary. - Add CmpIsDriverInList() for future usage in CMBOOT compiled in bootloader mode. - Add SAL annotations and Doxygen documentation. - Add debug traces. - Formatting / code style fixes. ** TODO: Fix SafeBoot support ** | 4 年前 | |
[REACTOS] Addendum to 5c7ce4475e246560d1622b8cc60dc603e3955f66 - Fix MSVC 2015 build Put data into PAGEDATA or INITDATA sections Keep section declaration for prototypes CORE-17540 | 5 年前 | |
[NTOS:EX] Add prototypes for ExLockUserBuffer/ExUnlockUserBuffer | 1 年前 | |
[NTOS] Properly implement and use FsRtlAcquireFileForModWriteEx | 3 年前 | |
[NTOS:FSTUB] Make some macros more "conforming" i.e. parenthesized parameters; parenthesize compound macros, etc. | 5 个月前 | |
[FREELDR][NTOS:INBV] Simplify headless-support initialization code Also address few observations made by Serge Gautherie in PR #7885. | 6 个月前 | |
[NTOSKRNL] Force a probe against ReturnLength on query & Misc ICIF stuff NtQueryInformationToken is by far the only system call in NT where ReturnLength simply cannot be optional. On Windows this parameter is always probed and an argument to NULL directly leads to an access violation exception. This is due to the fact of how tokens work, as its information contents (token user, owner, primary group, et al) are dynamic and can vary throughout over time in memory. What happens on current ReactOS master however is that ReturnLength is only probed if the parameter is not NULL. On a NULL case scenario the probing checks succeed and NtQueryInformationToken fails later. For this, just get rid of CompleteProbing parameter and opt in for a bit mask flag based approach, with ICIF_FORCE_RETURN_LENGTH_PROBE being set on DefaultQueryInfoBufferCheck which NtQueryInformationToken calls it to do sanity checks. In addition to that... - Document the ICIF probe helpers - Annotate the ICIF prope helpers with SAL - With the riddance of CompleteProbing and adoption of flags based approach, add ICIF_PROBE_READ_WRITE and ICIF_PROBE_READ flags alongside with ICIF_FORCE_RETURN_LENGTH_PROBE | 4 年前 | |
[BOOTVID] Rename some function parameters Delta -> Stride TopDelta -> Height | 5 个月前 | |
[NTOS:IO] Implement Win7+ I/O System case (in)sensitivity support (#9475) This functionality is used to control the creation and opening of named device objects in a case-(in)sensitive way. It is controlled with a REG_DWORD value named `IoCaseInsensitive` inside the registry key `HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\I/O System` . When compiled for Win7+, case insensitivity is enabled, which is the expected default (like in the Object Manager). When compiled for Vista and below, case insensitivity is disabled by default. The registry setting allows changing this behaviour for backward/forward compatibility. See the comparison tables at: https://redplait.blogspot.com/2011/07/cmcontrolvector.html https://redplait.blogspot.com/2012/06/cmcontrolvector-for-w8.html https://redplait.blogspot.com/2016/03/cmcontrolvector-from-windows-10-build.html | 1 个月前 | |
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. | 8 年前 | |
[NTOS:IO] Use a guarded region in IopQueueIrpToThread. We're protecting against IopCompleteRequest, which is a special kernel APC. So this is a little bit faster than raising the IRQL. | 4 年前 | |
[NTOS:KD:KDBG] Integration into KD framework (Part 1/3) Split KdSendPacket and KdReceivePacket into those that manipulate the KDBG state proper (reside in kdbg/kdbg.c), and those that deal only with debug input/output that will reside in a KDTERM "KD Terminal Driver" DLL. Based on some previous preparatory work by Hervé Poussineau in PR #4600. (Equivalents of commits 5162bf106 and partly e9bcf7275.) | 3 年前 | |
[NTOS:KD64] Simplify some code in debugging helpers | 1 年前 | |
[NTOS:EX] Implement query of SystemProcessorIdleCycleTimeInformation | 1 个月前 | |
[NTOS:KE] Implement support for CycleTime accounting | 1 个月前 | |
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. | 8 年前 | |
[NDK] Fix definition of OB_CLOSE_METHOD | 2 个月前 | |
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. | 8 年前 | |
[NTOS:MM][KMTESTS] MmMapViewOfSection: Handle PAGE_NOCACHE and PAGE_WRITECOMBINE flags (#8502) - Remove the hack for PAGE_NOCACHE flag that was introduced in commits aa52dc7498dafc07c51919e5210fd0505b4c1930 (r68611) and 33d53d44da878f83cd117f58ab45c71614905295 (r68612) for CORE-9808. The test case for PAGE_NOCACHE, introduced in 7346aece52f17aa7988ce503d4cdd3592474da1f (r68351), did not expose any additional problems without it anymore. - Allow a PAGE_WRITECOMBINE flag. Fixes a regression introduced in 59ae6b3e15d78df2d86efa7c55fc88fa08c9636b (CORE-20298) that caused the OpenGL ICD in Nvidia 78.05 driver to not use GPU hardware to accelerate OpenGL anymore (reported and tested by winterhell on Discord). - Add a test case for MmMapViewOfSection with PAGE_WRITECOMBINE. The test passes on Windows 2003 SP2 and Vista RTM. - Fix ASSERTs in MI_MAKE_HARDWARE_PTE functions. | 9 个月前 | |
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. | 8 年前 | |
[NTOS] Include kdbg/kdb.h only in the files that really need it. | 3 年前 | |
[KERNEL32][MSAFD][NTOS:OB][CSRSRV][NDK] Rename OBJECT_HANDLE_ATTRIBUTE_INFORMATION to OBJECT_HANDLE_FLAG_INFORMATION (#9174) This is the correct name used in the Windows SDK/WDK headers (as already used in sdk/include/wine/winternl.h). The old name was a non-standard alias from the open-source w32api package. See also: https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/api/ntobapi/object_handle_flag_information.htm https://ntdoc.m417z.com/object_handle_flag_information Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> | 1 个月前 | |
[NTOS:OB] Clarify and fix the usage of the Obp*DirectoryLock*() and ObpReleaseLookupContextObject() functions. - Disentangle the usage of ObpAcquireDirectoryLockExclusive() when it's used only for accessing a directory structure, or as part of a lookup operation. The Obp*DirectoryLock*() -- both shared and exclusive -- functions are only for locking an OB directory, for reading or writing its structure members. When performing lookup operations (insertions/deletions of entries within a directory), use a ObpAcquireLookupContextLock() function that exclusively locks the directory and saves extra lock state, that can be used by ObpReleaseLookupContextObject() for cleanup. - Add documentation for these functions. | 4 年前 | |
[NTOS:PO] Give the power device type to PopAddRemoveSysCapsCallback function | 2 年前 | |
[NTDLL_APITEST] Minor formatting for probelib.c | 6 个月前 | |
[NTOSKRNL] Stub ObShutdownSystem and rename the Ps shutdown routine Rename PspShutdownProcessManager to PsShutdownSystem so that it's consistent with the other shutdown related kernel routines. This is gonna be used by the Power Manager as it shutdowns every Executive module of the kernel during a shutdown procedure of the system. CORE-18969 | 15 天前 | |
[NTOS:PS][NTDLL_APITESTS] Implement ThreadNameInformation for NtQuery/SetInformationThread() (#8484) The `ThreadNameInformation` (#38) class is the Windows 10.1607+ way of assigning a human-readable name (i.e. description) to a given thread object, that is visible to debuggers and diagnostic tools (e.g. WinDbg `!thread` command, Process Explorer ...), which is useful for debugging scenarios.[^1] Before this, the only way to assign a name to a thread for debugging purposes was to raise a specific exception, that had to be caught and interpreted by a supported debugger.[^2][^3] When the thread object is being deleted (`kill.c!PspDeleteThread()`), free the thread name if set (courtesy of Ahmed Arif, PR #8796). References: [^1]: https://learn.microsoft.com/en-us/visualstudio/debugger/tips-for-debugging-threads [^2]: https://learn.microsoft.com/en-us/archive/blogs/stevejs/naming-threads-in-win32-and-net [^3]: https://ofekshilon.com/2009/04/10/naming-threads/ | 6 个月前 | |
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. | 8 年前 | |
[NTOS:PS] On x64 don't fail in NtSetInformationProcess with ProcessUserModeIOPL information class, instead just don't do anything. For NT6+ appcompat setting return STATUS_NOT_IMPLEMENTED | 5 年前 | |
[NDK][NTOS] Change Object callback types to NT6 style This is required to support the NT6 access flags THREAD_QUERY_LIMITED_INFORMATION and THREAD_SET_LIMITED_INFORMATION. | 2 个月前 | |
[NTOS:KE] Test spinlock ownership on both UP & MP build There is no reason not to, and this avoids introducing bugs stupidly. | 5 年前 | |
[NTOS:SE] Notify every interested filesystem of an upcoming logon session termination ROS has SeRegisterLogonSessionTerminatedRoutine and SeMarkLogonSessionForTerminationNotification that filesystems can use to get notified of a logon session of interest that is about to be terminated as its last refcount is dereferenced. Though they're both useless because ROS lacks the necessary implementation for this kind of stuff, consequently whoever (and by that I mean FSDs) registered their callback to await for the logon session termination notification, they never get notified like at all. This patch implements the final bits of this mechanism. Also clarify some comments in the documentation. | 1 个月前 | |
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. | 8 年前 | |
[NTOSKRNL] Fix GCC 13 stringop-overflow warnings regarding KiNtVdmState GCC 13 thinks that a global 'const PULONG' that is initialized to a non-NULL value points to an object that is "likely at address zero". - Turn the macros that cause the issue into inline functions and wrap them with a GCC diagnostic pragma to silence the warning - Use KiNtVdmState in vdm/vdmexec.c - Remove the (duplicated) VdmState macro In function '_InterlockedAnd', inlined from 'KiVdmOpcodePOPF' at C:/ReactOS/reactos/ntoskrnl/ke/i386/v86vdm.c:164:5: C:/ReactOS/reactos/sdk/include/vcruntime/mingw32/intrin_x86.h:245:16: error: '__sync_fetch_and_and_4' writing 4 bytes into a region of size 0 overflows the destination [-Werror=stringop-overflow=] 245 | return __sync_fetch_and_and(value, mask); | ^~~~~~~~~~~~~~~~~~~~ In function 'KiVdmOpcodePOPF': cc1.exe: note: destination object is likely at address zero | 6 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 2 个月前 | ||
| 2 年前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 20 天前 | ||
| 2 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 5 个月前 | ||
| 6 个月前 | ||
| 4 年前 | ||
| 5 个月前 | ||
| 1 个月前 | ||
| 8 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 8 年前 | ||
| 2 个月前 | ||
| 8 年前 | ||
| 9 个月前 | ||
| 8 年前 | ||
| 3 年前 | ||
| 1 个月前 | ||
| 4 年前 | ||
| 2 年前 | ||
| 6 个月前 | ||
| 15 天前 | ||
| 6 个月前 | ||
| 8 年前 | ||
| 5 年前 | ||
| 2 个月前 | ||
| 5 年前 | ||
| 1 个月前 | ||
| 8 年前 | ||
| 6 个月前 |