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)
|
#pragma pack(pop)
|
||||||
static_assert_size(Asm, kICSlotSize);
|
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.
|
// The return address points to ReloadRCX work after the call.
|
||||||
// To get the top of the table, look back a ways.
|
// To get the top of the table, look back a ways.
|
||||||
uint64_t table_start = return_address - 12 - kICSlotSize * kICSlotCount;
|
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): verify type with object_type_ptr
|
||||||
|
|
||||||
// TODO(benvanik): get native value, if supported.
|
// TODO(benvanik): get native value, if supported.
|
||||||
uint32_t native_ptr = 0xDEADF00D;
|
uint32_t native_ptr;
|
||||||
switch (object_type_ptr) {
|
switch (object_type_ptr) {
|
||||||
case 0xD01BBEEF: // ExThreadObjectType
|
case 0xD01BBEEF: // ExThreadObjectType
|
||||||
{
|
{
|
||||||
XThread* thread = (XThread*)object;
|
XThread* thread = (XThread*)object;
|
||||||
native_ptr = thread->thread_state();
|
native_ptr = thread->thread_state();
|
||||||
} break;
|
} break;
|
||||||
|
default:
|
||||||
|
assert_unhandled_case(object_type_ptr);
|
||||||
|
native_ptr = 0xDEADF00D;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (out_object_ptr) {
|
if (out_object_ptr) {
|
||||||
|
|
Loading…
Reference in New Issue