[x] In MiUncommitVad don't call MiQueryVirtualAddress. Call MiAvlGetNextNode instead.
[x] MmReleaseUntyped. Note we will need to recursively merge adjacent untyped caps.
[x] NtFreeVirtualMemory. This is done in 27f3d6d
[ ] Implement delete routines for object types. In particular, this is invoked when object creation fails. Delete routine must be able to clean up partially created objects.
[x] OBJECT_TYPE_DIRECTORY
[x] OBJECT_TYPE_THREAD
[ ] OBJECT_TYPE_PROCESS
[x] OBJECT_TYPE_SECTION
[x] OBJECT_TYPE_FILE
[x] OBJECT_TYPE_DEVICE
[ ] OBJECT_TYPE_DRIVER
[x] OBJECT_TYPE_TIMER
[ ] OBJECT_TYPE_KEY (deferred to v0.3)
[x] OBJECT_TYPE_EVENT
[ ] Implement the NT object semantics
[ ] OBJ_PERMANENT
[ ] OBJ_EXCLUSIVE
[x] OBJ_CASE_INSENSITIVE. So far English (ASCII) only. Server uses utf-8 so for Russian up-casing etc we need the toupper routine that works for all utf-8 code points.
[x] We need a way to filter the debug logs as it's getting excessive (just define NDEBUG to disable logging on a per-file basis. We don't have any userspace debugging infrastructure yet).
[x] Pass small data (< 1024 bytes) with IRPs rather than by memory mapping (the stub routine part of this is done. Only server side needed to be implemented. We will do it when we get to cache manager.)
[x] SEH (Structured Exception Handling). Both server-side and client-side have been implemented and debugged on both i386 and amd64 and are working, except the following:
[x] SEH for wdm.dll coroutines, especially x64 (this should be similar to ntoskrnl DPC stack)
[ ] Implement history table for x64. This is slated for a future release.
[ ] Exception-safe setjmp/longjmp for x64. This is slated for a future release.
[ ] Port acpi.sys. We will need to port the ACPI HAL from ReactOS. (This is slated for a future release. For now we hard-code the fdc parameters).
[ ] We need to move DPCs into their own thread. This is so that a low-level wait cannot block the DPC from running (otherwise we'd have a deadlock). Implement raising and lowering IRQL (use a mutex for each IRQL). Note that we need to fix all DPC routines in existing drivers so data accesses are synchronized (previously it is not necessary to synchronize access to data shared by DPC and dispatch routines because they run in the same "IRQL").
[x] Port the PNP floppy driver fdc.sys --- DONE!!
[x] Figure out file system, especially how cache manager works across process boundary.
I'm using this as a tracker for v0.2.
c20ef7a989
MiUncommitVad
don't callMiQueryVirtualAddress
. CallMiAvlGetNextNode
instead.27f3d6d
OBJECT_TYPE_KEY(deferred to v0.3)acpi.sys
. We will need to port the ACPI HAL from ReactOS. (This is slated for a future release. For now we hard-code the fdc parameters).fdc.sys
--- DONE!!fastfat.sys