assert_unhandled_case on ObReferenceObjectByHandle.
This commit is contained in:
parent
05f008d6ce
commit
c33613b2f8
|
@ -508,6 +508,7 @@ uint64_t ResolveFunctionAddress(void* raw_context, uint64_t target_address) {
|
|||
};
|
||||
#pragma pack(pop)
|
||||
static_assert_size(Asm, kICSlotSize);
|
||||
// TODO(benvanik): quick check table is full (so we don't have to enum slots)
|
||||
// The return address points to ReloadRCX work after the call.
|
||||
// To get the top of the table, look back a ways.
|
||||
uint64_t table_start = return_address - 12 - kICSlotSize * kICSlotCount;
|
||||
|
|
|
@ -35,13 +35,17 @@ SHIM_CALL ObReferenceObjectByHandle_shim(PPCContext* ppc_state,
|
|||
// TODO(benvanik): verify type with object_type_ptr
|
||||
|
||||
// TODO(benvanik): get native value, if supported.
|
||||
uint32_t native_ptr = 0xDEADF00D;
|
||||
uint32_t native_ptr;
|
||||
switch (object_type_ptr) {
|
||||
case 0xD01BBEEF: // ExThreadObjectType
|
||||
{
|
||||
XThread* thread = (XThread*)object;
|
||||
native_ptr = thread->thread_state();
|
||||
} break;
|
||||
default:
|
||||
assert_unhandled_case(object_type_ptr);
|
||||
native_ptr = 0xDEADF00D;
|
||||
break;
|
||||
}
|
||||
|
||||
if (out_object_ptr) {
|
||||
|
|
Loading…
Reference in New Issue