diff --git a/src/CxbxKrnl/EmuKrnlNt.cpp b/src/CxbxKrnl/EmuKrnlNt.cpp index f0c2e47a7..205313275 100644 --- a/src/CxbxKrnl/EmuKrnlNt.cpp +++ b/src/CxbxKrnl/EmuKrnlNt.cpp @@ -324,6 +324,15 @@ XBSYSAPI EXPORTNUM(192) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateMutant NtObjAttr.RootDirectory = 0; + // TODO : Replace above with : + // + // // initialize object attributes + // NativeObjectAttributes nativeObjectAttributes; + // NTSTATUS ret = CxbxObjectAttributesToNT(ObjectAttributes, /*var*/nativeObjectAttributes); + + // if (ret == STATUS_SUCCESS) + // { + // TODO : Is this the correct ACCESS_MASK? : const ACCESS_MASK DesiredAccess = MUTANT_ALL_ACCESS; @@ -363,6 +372,8 @@ XBSYSAPI EXPORTNUM(193) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateSemaphore // TODO : Is this the correct ACCESS_MASK? : const ACCESS_MASK DesiredAccess = SEMAPHORE_ALL_ACCESS; + // TODO : Call CxbxObjectAttributesToNT on ObjectAttributes? + // redirect to Win2k/XP NTSTATUS ret = NtDll::NtCreateSemaphore( /*OUT*/SemaphoreHandle, @@ -398,6 +409,8 @@ XBSYSAPI EXPORTNUM(194) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateTimer // TODO : Is this the correct ACCESS_MASK? : const ACCESS_MASK DesiredAccess = TIMER_ALL_ACCESS; + // TODO : Call CxbxObjectAttributesToNT on ObjectAttributes? + // redirect to Windows NT // TODO : Untested NTSTATUS ret = NtDll::NtCreateTimer diff --git a/src/CxbxKrnl/EmuKrnlOb.cpp b/src/CxbxKrnl/EmuKrnlOb.cpp index 1fee68a91..2d5359e77 100644 --- a/src/CxbxKrnl/EmuKrnlOb.cpp +++ b/src/CxbxKrnl/EmuKrnlOb.cpp @@ -94,6 +94,8 @@ XBSYSAPI EXPORTNUM(243) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObOpenObjectByName NTSTATUS ret = STATUS_OBJECT_PATH_NOT_FOUND; + // TODO : Call CxbxObjectAttributesToNT on ObjectAttributes? + if (ObjectType == &xboxkrnl::ObSymbolicLinkObjectType) { EmuNtSymbolicLinkObject* symbolicLinkObject =