From c20c7c930c6eff52d7f8067d30197763156b1435 Mon Sep 17 00:00:00 2001 From: Gliniak Date: Wed, 3 Nov 2021 22:43:47 +0100 Subject: [PATCH] XamEnumerate: Return X_ERROR_FUNCTION_FAILED for overlapped failures --- src/xenia/kernel/xam/xam_enum.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/xenia/kernel/xam/xam_enum.cc b/src/xenia/kernel/xam/xam_enum.cc index 9f5c08bb4..3ad069686 100644 --- a/src/xenia/kernel/xam/xam_enum.cc +++ b/src/xenia/kernel/xam/xam_enum.cc @@ -37,8 +37,8 @@ uint32_t xeXamEnumerate(uint32_t handle, uint32_t flags, lpvoid_t buffer_ptr, return X_ERROR_INVALID_HANDLE; } - auto run = [e, buffer_ptr](uint32_t& extended_error, - uint32_t& length) -> X_RESULT { + auto run = [e, buffer_ptr, overlapped_ptr](uint32_t& extended_error, + uint32_t& length) -> X_RESULT { X_RESULT result; uint32_t item_count = 0; if (!buffer_ptr) { @@ -49,6 +49,9 @@ uint32_t xeXamEnumerate(uint32_t handle, uint32_t flags, lpvoid_t buffer_ptr, } extended_error = X_HRESULT_FROM_WIN32(result); length = item_count; + if (result && overlapped_ptr) { + result = X_ERROR_FUNCTION_FAILED; + } return result; };