Merge remote-tracking branch 'refs/remotes/origin/master' into LLE
This commit is contained in:
commit
f023ff13a1
|
@ -195,6 +195,7 @@
|
|||
</PreBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\src\Common\Logging.h" />
|
||||
<ClInclude Include="..\..\src\Common\Win32\AlignPosfix1.h" />
|
||||
<ClInclude Include="..\..\src\Common\Win32\AlignPrefix1.h" />
|
||||
<ClInclude Include="..\..\src\Cxbx.h" />
|
||||
|
@ -458,6 +459,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\Common\Exe.cpp" />
|
||||
<ClCompile Include="..\..\src\Common\Logging.cpp" />
|
||||
<ClCompile Include="..\..\src\CxbxKrnl\CxbxKrnl.cpp">
|
||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
|
|
|
@ -31,7 +31,7 @@ XBSYSAPI EXPORTNUM(2) VOID NTAPI AvSendTVEncoderOption
|
|||
// ******************************************************************
|
||||
// * AvSetDisplayMode
|
||||
// ******************************************************************
|
||||
XBSYSAPI EXPORTNUM(4) ULONG NTAPI AvSetDisplayMode
|
||||
XBSYSAPI EXPORTNUM(3) ULONG NTAPI AvSetDisplayMode
|
||||
(
|
||||
IN PVOID RegisterBase,
|
||||
IN ULONG Step,
|
||||
|
@ -139,28 +139,30 @@ XBSYSAPI EXPORTNUM(336) VOID NTAPI XcSHAUpdate(UCHAR *pbSHAContext, UCHAR *pbInp
|
|||
// ******************************************************************
|
||||
XBSYSAPI EXPORTNUM(337) VOID NTAPI XcSHAFinal(UCHAR *pbSHAContext, UCHAR *pbDigest);
|
||||
|
||||
XBSYSAPI VOID *XcRC4Key;
|
||||
XBSYSAPI VOID *XcRC4Crypt;
|
||||
XBSYSAPI VOID *XcHMAC;
|
||||
XBSYSAPI VOID *XcPKEncPublic;
|
||||
XBSYSAPI VOID *XcPKDecPrivate;
|
||||
XBSYSAPI VOID *XcPKGetKeyLen;
|
||||
XBSYSAPI VOID *XcVerifyPKCS1Signature;
|
||||
XBSYSAPI VOID *XcModExp;
|
||||
XBSYSAPI VOID *XcDESKeyParity;
|
||||
XBSYSAPI VOID *XcKeyTable;
|
||||
XBSYSAPI VOID *XcBlockCrypt;
|
||||
XBSYSAPI VOID *XcBlockCryptCBC;
|
||||
XBSYSAPI VOID *XcCryptService;
|
||||
XBSYSAPI VOID *XcUpdateCrypto;
|
||||
XBSYSAPI VOID *XboxLANKey;
|
||||
XBSYSAPI VOID *XboxAlternateSignatureKeys;
|
||||
XBSYSAPI VOID *XePublicKeyData;
|
||||
XBSYSAPI VOID *IdexChannelObject;
|
||||
XBSYSAPI VOID *xsnprintf; // prefixed with "x" to avoid xlibc collisions
|
||||
XBSYSAPI VOID *xsprintf; // ""
|
||||
XBSYSAPI VOID *xvsnprintf; // ""
|
||||
XBSYSAPI VOID *xvsprintf; // ""
|
||||
XBSYSAPI EXPORTNUM(338) VOID *XcRC4Key;
|
||||
XBSYSAPI EXPORTNUM(339) VOID *XcRC4Crypt;
|
||||
XBSYSAPI EXPORTNUM(340) VOID *XcHMAC;
|
||||
XBSYSAPI EXPORTNUM(341) VOID *XcPKEncPublic;
|
||||
XBSYSAPI EXPORTNUM(342) VOID *XcPKDecPrivate;
|
||||
XBSYSAPI EXPORTNUM(343) VOID *XcPKGetKeyLen;
|
||||
XBSYSAPI EXPORTNUM(344) VOID *XcVerifyPKCS1Signature;
|
||||
XBSYSAPI EXPORTNUM(345) VOID *XcModExp;
|
||||
XBSYSAPI EXPORTNUM(346) VOID *XcDESKeyParity;
|
||||
XBSYSAPI EXPORTNUM(347) VOID *XcKeyTable;
|
||||
XBSYSAPI EXPORTNUM(348) VOID *XcBlockCrypt;
|
||||
XBSYSAPI EXPORTNUM(349) VOID *XcBlockCryptCBC;
|
||||
XBSYSAPI EXPORTNUM(350) VOID *XcCryptService;
|
||||
XBSYSAPI EXPORTNUM(351) VOID *XcUpdateCrypto;
|
||||
XBSYSAPI EXPORTNUM(353) VOID *XboxLANKey;
|
||||
XBSYSAPI EXPORTNUM(354) VOID *XboxAlternateSignatureKeys;
|
||||
XBSYSAPI EXPORTNUM(355) VOID *XePublicKeyData;
|
||||
|
||||
XBSYSAPI EXPORTNUM(357) VOID *IdexChannelObject;
|
||||
|
||||
XBSYSAPI EXPORTNUM(361) VOID *xsnprintf; // prefixed with "x" to avoid xlibc collisions
|
||||
XBSYSAPI EXPORTNUM(362) VOID *xsprintf; // ""
|
||||
XBSYSAPI EXPORTNUM(363) VOID *xvsnprintf; // ""
|
||||
XBSYSAPI EXPORTNUM(364) VOID *xvsprintf; // ""
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
// ******************************************************************
|
||||
// *
|
||||
// * .,-::::: .,:: .::::::::. .,:: .:
|
||||
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
|
||||
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
|
||||
// * $$$ Y$$$P $$""""Y$$ Y$$$P
|
||||
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
|
||||
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
|
||||
// *
|
||||
// * Cxbx->Logging.cpp
|
||||
// *
|
||||
// * This file is part of the Cxbx project.
|
||||
// *
|
||||
// * Cxbx and Cxbe are free software; you can redistribute them
|
||||
// * and/or modify them under the terms of the GNU General Public
|
||||
// * License as published by the Free Software Foundation; either
|
||||
// * version 2 of the license, or (at your option) any later version.
|
||||
// *
|
||||
// * This program is distributed in the hope that it will be useful,
|
||||
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// * GNU General Public License for more details.
|
||||
// *
|
||||
// * You should have recieved a copy of the GNU General Public License
|
||||
// * along with this program; see the file COPYING.
|
||||
// * If not, write to the Free Software Foundation, Inc.,
|
||||
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
|
||||
// *
|
||||
// * (c) 2016 Patrick van Logchem <pvanlogchem@gmail.com>
|
||||
// *
|
||||
// * All rights reserved
|
||||
// *
|
||||
// ******************************************************************
|
||||
|
||||
#include "Logging.h"
|
||||
|
||||
// For thread_local, see : http://en.cppreference.com/w/cpp/language/storage_duration
|
||||
thread_local const DWORD _CurrentThreadId = GetCurrentThreadId();
|
||||
|
||||
// TODO : Use Boost.Format http://www.boost.org/doc/libs/1_53_0/libs/format/index.html
|
||||
thread_local std::string _logPrefix;
|
|
@ -0,0 +1,106 @@
|
|||
// ******************************************************************
|
||||
// *
|
||||
// * .,-::::: .,:: .::::::::. .,:: .:
|
||||
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
|
||||
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
|
||||
// * $$$ Y$$$P $$""""Y$$ Y$$$P
|
||||
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
|
||||
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
|
||||
// *
|
||||
// * Cxbx->Logging.h
|
||||
// *
|
||||
// * This file is part of the Cxbx project.
|
||||
// *
|
||||
// * Cxbx and Cxbe are free software; you can redistribute them
|
||||
// * and/or modify them under the terms of the GNU General Public
|
||||
// * License as published by the Free Software Foundation; either
|
||||
// * version 2 of the license, or (at your option) any later version.
|
||||
// *
|
||||
// * This program is distributed in the hope that it will be useful,
|
||||
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// * GNU General Public License for more details.
|
||||
// *
|
||||
// * You should have recieved a copy of the GNU General Public License
|
||||
// * along with this program; see the file COPYING.
|
||||
// * If not, write to the Free Software Foundation, Inc.,
|
||||
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
|
||||
// *
|
||||
// * (c) 2016 Patrick van Logchem <pvanlogchem@gmail.com>
|
||||
// *
|
||||
// * All rights reserved
|
||||
// *
|
||||
// ******************************************************************
|
||||
#ifndef _LOGGING_H
|
||||
#define _LOGGING_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Cxbx.h"
|
||||
|
||||
// From http://stackoverflow.com/questions/31050113/how-to-extract-the-source-filename-without-path-and-suffix-at-compile-time
|
||||
constexpr const char* str_end(const char *str) {
|
||||
return *str ? str_end(str + 1) : str;
|
||||
}
|
||||
|
||||
constexpr bool str_slant(const char *str) {
|
||||
return *str == '\\' ? true : (*str ? str_slant(str + 1) : false);
|
||||
}
|
||||
|
||||
constexpr const char* r_slant(const char* str) {
|
||||
return *str == '\\' ? (str + 1) : r_slant(str - 1);
|
||||
}
|
||||
constexpr const char* file_name(const char* str) {
|
||||
return str_slant(str) ? r_slant(str_end(str)) : str;
|
||||
}
|
||||
|
||||
#define __FILENAME__ file_name(__FILE__)
|
||||
|
||||
#include <windows.h> // for DWORD
|
||||
#include <sstream> // for std::stringstream
|
||||
#include <iostream> // For std::cout
|
||||
#include <iomanip> // For std::setw
|
||||
|
||||
// For thread_local, see : http://en.cppreference.com/w/cpp/language/storage_duration
|
||||
extern thread_local const DWORD _CurrentThreadId;
|
||||
|
||||
// TODO : Use Boost.Format http://www.boost.org/doc/libs/1_53_0/libs/format/index.html
|
||||
extern thread_local std::string _logPrefix;
|
||||
|
||||
#define LOG_FUNC_BEGIN \
|
||||
do { if (_DEBUG_TRACE) if(g_bPrintfOn) { \
|
||||
if (_logPrefix.empty()) { \
|
||||
std::stringstream tmp; \
|
||||
tmp << __FILENAME__ << " (0x" << std::hex << std::uppercase << _CurrentThreadId << "): "; \
|
||||
_logPrefix = tmp.str(); \
|
||||
}; \
|
||||
std::stringstream msg; \
|
||||
msg << _logPrefix << __func__ << "(";
|
||||
|
||||
// LOG_FUNC_ARG_OUT writes output via all available ostream << operator overloads, adding detail where possible
|
||||
#define LOG_FUNC_ARG(arg) \
|
||||
msg << "\n " << std::setw(26) << std::left << std::setfill(' ') << #arg << " : " << arg;
|
||||
|
||||
// LOG_FUNC_ARG_OUT prevents expansion of types, by only rendering as a pointer
|
||||
#define LOG_FUNC_ARG_OUT(arg) \
|
||||
msg << "\n " << std::setw(26) << std::left << std::setfill(' ') << #arg << " : 0x" << (void*)arg;
|
||||
|
||||
// LOG_FUNC_END closes off function and optional argument logging
|
||||
#define LOG_FUNC_END \
|
||||
msg.seekg(-1, std::ios::end); if (msg.get() != '(') msg << '\n'; \
|
||||
msg << ");\n"; \
|
||||
std::cout << msg.str(); \
|
||||
} } while (0)
|
||||
|
||||
// Short hand defines :
|
||||
|
||||
// Log function without arguments
|
||||
#define LOG_FUNC() LOG_FUNC_BEGIN LOG_FUNC_END
|
||||
|
||||
// Log function with one argument
|
||||
#define LOG_FUNC_ONE_ARG(arg) LOG_FUNC_BEGIN LOG_FUNC_ARG(arg) LOG_FUNC_END
|
||||
|
||||
// Log function with one out argument
|
||||
#define LOG_FUNC_ONE_ARG_OUT(arg) LOG_FUNC_BEGIN LOG_FUNC_ARG_OUT(arg) LOG_FUNC_END
|
||||
|
||||
#endif _LOGGING_H
|
115
src/Cxbx.h
115
src/Cxbx.h
|
@ -104,120 +104,7 @@ extern volatile bool g_bPrintfOn;
|
|||
#pragma warning(disable : 4477)
|
||||
#endif
|
||||
|
||||
// From http://stackoverflow.com/questions/31050113/how-to-extract-the-source-filename-without-path-and-suffix-at-compile-time
|
||||
constexpr const char* str_end(const char *str) {
|
||||
return *str ? str_end(str + 1) : str;
|
||||
}
|
||||
|
||||
constexpr bool str_slant(const char *str) {
|
||||
return *str == '\\' ? true : (*str ? str_slant(str + 1) : false);
|
||||
}
|
||||
|
||||
constexpr const char* r_slant(const char* str) {
|
||||
return *str == '\\' ? (str + 1) : r_slant(str - 1);
|
||||
}
|
||||
constexpr const char* file_name(const char* str) {
|
||||
return str_slant(str) ? r_slant(str_end(str)) : str;
|
||||
}
|
||||
|
||||
#define __FILENAME__ file_name(__FILE__)
|
||||
|
||||
/*! DbgPrintf enabled if _DEBUG_TRACE is set */
|
||||
#define DbgPrintf(fmt, ...) do { if (_DEBUG_TRACE) if(g_bPrintfOn) printf(fmt, ##__VA_ARGS__); } while (0)
|
||||
|
||||
// http://stackoverflow.com/questions/5134523/msvc-doesnt-expand-va-args-correctly
|
||||
// MSVC_EXPAND works around a Visual C++ problem, expanding __VA_ARGS__ incorrectly:
|
||||
#define MSVC_EXPAND( x ) x
|
||||
|
||||
// From https://codecraft.co/2014/11/25/variadic-macros-tricks/
|
||||
// And https://groups.google.com/d/msg/comp.std.c/d-6Mj5Lko_s/jqonQLK20HcJ
|
||||
|
||||
// Accept any number of args >= N, but expand to just the Nth one. In this case,
|
||||
// we have settled on 10 as N. We could pick a different number by adjusting
|
||||
// the count of throwaway args before N. Note that this macro is preceded by
|
||||
// an underscore--it's an implementation detail, not something we expect people
|
||||
// to call directly.
|
||||
#define _GET_NTH_ARG( \
|
||||
_19, _18, _17, _16, _15, _14, _13, _12, _11, _10, \
|
||||
_9, _8, _7, _6, _5, _4, _3, _2, _1, _0, \
|
||||
N, ...) N
|
||||
|
||||
// COUNT_VARARGS returns the number of arguments that have been passed to it.
|
||||
// Count how many args are in a variadic macro. We now use GCC/Clang's extension to
|
||||
// handle the case where ... expands to nothing. We must add a placeholder arg before
|
||||
// ##__VA_ARGS__ (its value is totally irrelevant, but it's necessary to preserve
|
||||
// the shifting offset we want). In addition, we must add 0 as a valid value to be in
|
||||
// the N position.
|
||||
#define COUNT_VARARGS(...) MSVC_EXPAND(_GET_NTH_ARG("ignored", ##__VA_ARGS__, \
|
||||
19, 18, 17, 16, 15, 14, 13, 12, 11, 10, \
|
||||
9, 8, 7, 6, 5, 4, 3, 2, 1, 0) )
|
||||
|
||||
// Define some macros to help us create overrides based on the
|
||||
// arity of a for-each-style macro.
|
||||
#define _fe_0(_call, ...)
|
||||
#define _fe_1(_call, x) _call(x)
|
||||
#define _fe_2(_call, x, ...) _call(x) _fe_1(_call, __VA_ARGS__)
|
||||
#define _fe_3(_call, x, ...) _call(x) _fe_2(_call, __VA_ARGS__)
|
||||
#define _fe_4(_call, x, ...) _call(x) _fe_3(_call, __VA_ARGS__)
|
||||
#define _fe_5(_call, x, ...) _call(x) _fe_4(_call, __VA_ARGS__)
|
||||
#define _fe_6(_call, x, ...) _call(x) _fe_5(_call, __VA_ARGS__)
|
||||
#define _fe_7(_call, x, ...) _call(x) _fe_6(_call, __VA_ARGS__)
|
||||
#define _fe_8(_call, x, ...) _call(x) _fe_7(_call, __VA_ARGS__)
|
||||
#define _fe_9(_call, x, ...) _call(x) _fe_8(_call, __VA_ARGS__)
|
||||
#define _fe_10(_call, x, ...) _call(x) _fe_9(_call, __VA_ARGS__)
|
||||
#define _fe_11(_call, x, ...) _call(x) _fe_10(_call, __VA_ARGS__)
|
||||
#define _fe_12(_call, x, ...) _call(x) _fe_11(_call, __VA_ARGS__)
|
||||
#define _fe_13(_call, x, ...) _call(x) _fe_12(_call, __VA_ARGS__)
|
||||
#define _fe_14(_call, x, ...) _call(x) _fe_13(_call, __VA_ARGS__)
|
||||
#define _fe_15(_call, x, ...) _call(x) _fe_14(_call, __VA_ARGS__)
|
||||
#define _fe_16(_call, x, ...) _call(x) _fe_15(_call, __VA_ARGS__)
|
||||
#define _fe_17(_call, x, ...) _call(x) _fe_16(_call, __VA_ARGS__)
|
||||
#define _fe_18(_call, x, ...) _call(x) _fe_17(_call, __VA_ARGS__)
|
||||
#define _fe_19(_call, x, ...) _call(x) _fe_18(_call, __VA_ARGS__)
|
||||
|
||||
/**
|
||||
* Provide a for-each construct for variadic macros. Supports up
|
||||
* to 10 args.
|
||||
*
|
||||
* Example usage1:
|
||||
* #define FWD_DECLARE_CLASS(cls) class cls;
|
||||
* CALL_MACRO_X_FOR_EACH(FWD_DECLARE_CLASS, Foo, Bar)
|
||||
*
|
||||
* Example usage 2:
|
||||
* #define START_NS(ns) namespace ns {
|
||||
* #define END_NS(ns) }
|
||||
* #define MY_NAMESPACES System, Net, Http
|
||||
* CALL_MACRO_X_FOR_EACH(START_NS, MY_NAMESPACES)
|
||||
* typedef foo int;
|
||||
* CALL_MACRO_X_FOR_EACH(END_NS, MY_NAMESPACES)
|
||||
*/
|
||||
#define CALL_MACRO_X_FOR_EACH(x, ...) MSVC_EXPAND(_GET_NTH_ARG("ignored", ##__VA_ARGS__, \
|
||||
_fe_19, _fe_18,_fe_17,_fe_16,_fe_15,_fe_14,_fe_13,_fe_12,_fe_11,_fe_10, \
|
||||
_fe_9, _fe_8, _fe_7, _fe_6, _fe_5, _fe_4, _fe_3, _fe_2, _fe_1, _fe_0)(x, ##__VA_ARGS__))
|
||||
|
||||
#define DBG_ARG_WIDTH 18
|
||||
|
||||
#define DbgPrintHexArg(arg) printf("\n %*s : 0x%.08X", DBG_ARG_WIDTH, #arg, arg);
|
||||
|
||||
// See https://gcc.gnu.org/onlinedocs/gcc/Variadic-Macros.html
|
||||
// TODO : change multiple printf calls into 1, to avoid mixing output of multiple threads
|
||||
// perhaps via http://stackoverflow.com/a/2342176/12170
|
||||
#define DbgFuncHexArgs(...) do { if (_DEBUG_TRACE) if(g_bPrintfOn) \
|
||||
printf("%s (0x%X): %s(", __FILENAME__, GetCurrentThreadId(), __func__); \
|
||||
if (COUNT_VARARGS(##__VA_ARGS__) > 0) { \
|
||||
} \
|
||||
printf(");\n"); \
|
||||
} while (0)
|
||||
/* TODO : Get this going inside DbgFuncHexArgs :
|
||||
CALL_MACRO_X_FOR_EACH(DbgPrintHexArg, __VA_ARGS__); \
|
||||
printf("\n"); \
|
||||
*/
|
||||
|
||||
// See https://gcc.gnu.org/onlinedocs/gcc/Variadic-Macros.html
|
||||
// See http://stackoverflow.com/questions/1644868/c-define-macro-for-debug-printing
|
||||
#define DbgFuncFmtArgs(fmt, ...) \
|
||||
do { if (_DEBUG_TRACE) if(g_bPrintfOn) \
|
||||
printf("%s (0x%X): %s(\n" fmt ");\n", __FILENAME__, GetCurrentThreadId(), __func__, __VA_ARGS__); \
|
||||
} while (0)
|
||||
|
||||
#endif
|
||||
#endif CXBX_H
|
||||
|
|
|
@ -79,7 +79,7 @@ CXBXKRNL_API void CxbxKrnlPanic();
|
|||
CXBXKRNL_API void CxbxKrnlNoFunc();
|
||||
|
||||
/*! kernel thunk table */
|
||||
extern CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[367];
|
||||
extern CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379];
|
||||
|
||||
/*! thread local storage structure */
|
||||
extern CXBXKRNL_API Xbe::TLS *CxbxKrnl_TLS;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -39,6 +39,7 @@
|
|||
|
||||
#include "Emu.h"
|
||||
#include "EmuFS.h"
|
||||
#include "Logging.h"
|
||||
|
||||
// ******************************************************************
|
||||
// * prevent name collisions
|
||||
|
@ -58,7 +59,7 @@ PVOID WINAPI XTL::EmuXGIsSwizzledFormat
|
|||
XTL::D3DFORMAT Format
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(Format);
|
||||
LOG_FUNC_ONE_ARG(Format);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -78,8 +79,16 @@ VOID WINAPI XTL::EmuXGSwizzleRect
|
|||
DWORD BytesPerPixel
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pSource, Pitch, pRect, pDest, Width, Height,
|
||||
pPoint, BytesPerPixel);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pSource)
|
||||
LOG_FUNC_ARG(Pitch)
|
||||
LOG_FUNC_ARG(pRect)
|
||||
LOG_FUNC_ARG(pDest)
|
||||
LOG_FUNC_ARG(Width)
|
||||
LOG_FUNC_ARG(Height)
|
||||
LOG_FUNC_ARG(pPoint)
|
||||
LOG_FUNC_ARG(BytesPerPixel)
|
||||
LOG_FUNC_END;
|
||||
|
||||
if(pRect == NULL && pPoint == NULL && Pitch == 0)
|
||||
{
|
||||
|
@ -135,8 +144,18 @@ VOID WINAPI XTL::EmuXGSwizzleBox
|
|||
DWORD BytesPerPixel
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pSource, RowPitch, SlicePitch, pBox, pDest, Width, Height,
|
||||
Depth, pPoint, BytesPerPixel);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pSource)
|
||||
LOG_FUNC_ARG(RowPitch)
|
||||
LOG_FUNC_ARG(SlicePitch)
|
||||
LOG_FUNC_ARG(pBox)
|
||||
LOG_FUNC_ARG(pDest)
|
||||
LOG_FUNC_ARG(Width)
|
||||
LOG_FUNC_ARG(Height)
|
||||
LOG_FUNC_ARG(Depth)
|
||||
LOG_FUNC_ARG(pPoint)
|
||||
LOG_FUNC_ARG(BytesPerPixel)
|
||||
LOG_FUNC_END;
|
||||
|
||||
if(pDest != (LPVOID) 0x80000000)
|
||||
{
|
||||
|
@ -296,7 +315,11 @@ HRESULT WINAPI XTL::EmuXGWriteSurfaceOrTextureToXPR
|
|||
BOOL bWriteSurfaceAsTexture
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pResource, cPath, bWriteSurfaceAsTexture);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pResource)
|
||||
LOG_FUNC_ARG(cPath)
|
||||
LOG_FUNC_ARG(bWriteSurfaceAsTexture)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: If necessary, either reverse the .xbx and .xpr file formats
|
||||
// and write the surface/texture to a file, or output a generic .xbx
|
||||
|
@ -323,8 +346,17 @@ VOID WINAPI XTL::EmuXGSetTextureHeader
|
|||
UINT Pitch
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(Width, Height, Levels, Usage,
|
||||
Format, Pool, pTexture, Data, Pitch);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(Width)
|
||||
LOG_FUNC_ARG(Height)
|
||||
LOG_FUNC_ARG(Levels)
|
||||
LOG_FUNC_ARG(Usage)
|
||||
LOG_FUNC_ARG(Format)
|
||||
LOG_FUNC_ARG(Pool)
|
||||
LOG_FUNC_ARG(pTexture)
|
||||
LOG_FUNC_ARG(Data)
|
||||
LOG_FUNC_ARG(Pitch)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// NOTES: This function simply creates a texture that needs to be registered
|
||||
// via D3DDevice_Register afterwards. So, do I just create the texture via
|
||||
|
@ -388,7 +420,11 @@ VOID WINAPI XTL::EmuXGSetTextureHeader
|
|||
//{
|
||||
//
|
||||
//
|
||||
// DbgFuncHexArgs(pFontData, uFontDataSize, ppFont);
|
||||
// LOG_FUNC_BEGIN
|
||||
// LOG_FUNC_ARG(pFontData)
|
||||
// LOG_FUNC_ARG(uFontDataSize)
|
||||
// LOG_FUNC_ARG(ppFont)
|
||||
// LOG_FUNC_END;
|
||||
//
|
||||
// __asm int 3;
|
||||
//
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#define _XBOXKRNL_DEFEXTRN_
|
||||
|
||||
#include "Emu.h"
|
||||
#include "Logging.h"
|
||||
#include "EmuFS.h"
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -56,7 +57,10 @@ int WINAPI XTL::EmuWSAStartup
|
|||
WSADATA *lpWSAData
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(wVersionRequested, lpWSAData);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(wVersionRequested)
|
||||
LOG_FUNC_ARG(lpWSAData)
|
||||
LOG_FUNC_END;
|
||||
|
||||
int ret = WSAStartup(wVersionRequested, lpWSAData);
|
||||
|
||||
|
@ -71,10 +75,12 @@ INT WINAPI XTL::EmuXNetStartup
|
|||
const PVOID pDummy
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pDummy);
|
||||
LOG_FUNC_ONE_ARG(pDummy);
|
||||
|
||||
// Fake Successfull...hehehe...sucker...hehehehehe
|
||||
return 0;
|
||||
INT ret = 0;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -82,10 +88,12 @@ INT WINAPI XTL::EmuXNetStartup
|
|||
// ******************************************************************
|
||||
DWORD WINAPI XTL::EmuXNetGetEthernetLinkStatus()
|
||||
{
|
||||
DbgFuncHexArgs();
|
||||
LOG_FUNC();
|
||||
|
||||
// for now, no ethernet connection is available
|
||||
return XNET_ETHERNET_LINK_ACTIVE | XNET_ETHERNET_LINK_100MBPS;
|
||||
DWORD ret = XNET_ETHERNET_LINK_ACTIVE | XNET_ETHERNET_LINK_100MBPS;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -98,7 +106,12 @@ SOCKET XTL::EmuThis::Emusocket
|
|||
int protocol
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(this, af, type, protocol);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(this)
|
||||
LOG_FUNC_ARG(af)
|
||||
LOG_FUNC_ARG(type)
|
||||
LOG_FUNC_ARG(protocol)
|
||||
LOG_FUNC_END;
|
||||
|
||||
SOCKET ret = socket(af, type, protocol);
|
||||
|
||||
|
@ -108,9 +121,19 @@ SOCKET XTL::EmuThis::Emusocket
|
|||
// ******************************************************************
|
||||
// * func: EmuThis::Emubind
|
||||
// ******************************************************************
|
||||
int XTL::EmuThis::Emubind(SOCKET s, const struct sockaddr FAR *name, int namelen)
|
||||
int XTL::EmuThis::Emubind
|
||||
(
|
||||
SOCKET s,
|
||||
const struct sockaddr FAR *name,
|
||||
int namelen
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(this, s, name, namelen);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(this)
|
||||
LOG_FUNC_ARG(s)
|
||||
LOG_FUNC_ARG(name)
|
||||
LOG_FUNC_ARG(namelen)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: Host-To-Network order if necessary (probably not?)
|
||||
|
||||
|
@ -122,9 +145,17 @@ int XTL::EmuThis::Emubind(SOCKET s, const struct sockaddr FAR *name, int namelen
|
|||
// ******************************************************************
|
||||
// * func: EmuThis::Emulisten
|
||||
// ******************************************************************
|
||||
int XTL::EmuThis::Emulisten(SOCKET s, int backlog)
|
||||
int XTL::EmuThis::Emulisten
|
||||
(
|
||||
SOCKET s,
|
||||
int backlog
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(this, s, backlog);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(this)
|
||||
LOG_FUNC_ARG(s)
|
||||
LOG_FUNC_ARG(backlog)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: Host-To-Network order if necessary (probably not?)
|
||||
|
||||
|
@ -136,9 +167,19 @@ int XTL::EmuThis::Emulisten(SOCKET s, int backlog)
|
|||
// ******************************************************************
|
||||
// * func: EmuThis::Emuioctlsocket
|
||||
// ******************************************************************
|
||||
int XTL::EmuThis::Emuioctlsocket(SOCKET s, long cmd, u_long FAR *argp)
|
||||
int XTL::EmuThis::Emuioctlsocket
|
||||
(
|
||||
SOCKET s,
|
||||
long cmd,
|
||||
u_long FAR *argp
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(this, s, cmd, argp);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(this)
|
||||
LOG_FUNC_ARG(s)
|
||||
LOG_FUNC_ARG(cmd)
|
||||
LOG_FUNC_ARG(argp)
|
||||
LOG_FUNC_END;
|
||||
|
||||
int ret = ioctlsocket(s, cmd, argp);
|
||||
|
||||
|
@ -154,18 +195,16 @@ HRESULT WINAPI XOnlineLaunchNewImage
|
|||
LPVOID pLaunchData
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" lpImagePath : 0x%.08X (%s)\n"
|
||||
" pLaunchData : 0x%.08X\n",
|
||||
lpImagePath, lpImagePath, pLaunchData);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(lpImagePath)
|
||||
LOG_FUNC_ARG(pLaunchData)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: Launch another .xbe from Cxbx someday?
|
||||
|
||||
|
||||
HRESULT ret = E_FAIL;
|
||||
|
||||
return E_FAIL;
|
||||
return ret;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -180,9 +219,17 @@ HRESULT WINAPI XTL::EmuXOnlineLogon
|
|||
HANDLE pHandle
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pUsers, pdwServiceIDs, dwServices, hEvent, pHandle);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pUsers)
|
||||
LOG_FUNC_ARG(pdwServiceIDs)
|
||||
LOG_FUNC_ARG(dwServices)
|
||||
LOG_FUNC_ARG(hEvent)
|
||||
LOG_FUNC_ARG(pHandle)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: What will it take to log on to Xbox Live?
|
||||
|
||||
return HRESULT(0x80151000L); // XONLINE_E_LOGON_NO_NETWORK_CONNECTION
|
||||
HRESULT ret = HRESULT(0x80151000L); // XONLINE_E_LOGON_NO_NETWORK_CONNECTION
|
||||
|
||||
return ret;
|
||||
}
|
|
@ -41,6 +41,7 @@ namespace xboxkrnl
|
|||
};
|
||||
|
||||
#include "CxbxKrnl.h"
|
||||
#include "Logging.h"
|
||||
#include "Emu.h"
|
||||
#include "EmuFS.h"
|
||||
#include "EmuShared.h"
|
||||
|
@ -68,7 +69,10 @@ HRESULT WINAPI XTL::EmuXACTEngineCreate
|
|||
X_XACTEngine** ppEngine
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pParams, ppEngine);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pParams)
|
||||
LOG_FUNC_ARG(ppEngine)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: Any other form of initialization?
|
||||
|
||||
|
@ -84,7 +88,7 @@ HRESULT WINAPI XTL::EmuXACTEngineCreate
|
|||
// ******************************************************************
|
||||
void WINAPI XTL::EmuXACTEngineDoWork()
|
||||
{
|
||||
DbgFuncHexArgs();
|
||||
LOG_FUNC();
|
||||
|
||||
// TODO: Anything else required here?
|
||||
// AFAIK, this function just calls DirectSoundDoWork()
|
||||
|
@ -107,7 +111,12 @@ HRESULT WINAPI XTL::EmuIXACTEngine_RegisterWaveBank
|
|||
X_XACTWaveBank** ppWaveBank
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pThis, pvData, dwSize, ppWaveBank);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(pvData)
|
||||
LOG_FUNC_ARG(dwSize)
|
||||
LOG_FUNC_ARG(ppWaveBank)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: Implement
|
||||
|
||||
|
@ -126,7 +135,11 @@ HRESULT WINAPI XTL::EmuIXACTEngine_RegisterStreamedWaveBank
|
|||
X_XACTWaveBank** ppWaveBank
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pThis, pParams, ppWaveBank);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(pParams)
|
||||
LOG_FUNC_ARG(ppWaveBank)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: Implement
|
||||
|
||||
|
@ -146,7 +159,12 @@ HRESULT WINAPI XTL::EmuIXACTEngine_CreateSoundBank
|
|||
X_XACTSoundBank** ppSoundBank
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pThis, pvData, dwSize, ppSoundBank);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(pvData)
|
||||
LOG_FUNC_ARG(dwSize)
|
||||
LOG_FUNC_ARG(ppSoundBank)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: Implement
|
||||
|
||||
|
@ -167,7 +185,13 @@ HRESULT WINAPI XTL::EmuIXACTEngine_DownloadEffectsImage
|
|||
LPVOID* ppImageDesc
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pThis, pvData, dwSize, pEffectLoc, ppImageDesc);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(pvData)
|
||||
LOG_FUNC_ARG(dwSize)
|
||||
LOG_FUNC_ARG(pEffectLoc)
|
||||
LOG_FUNC_ARG(ppImageDesc)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: Implement
|
||||
|
||||
|
@ -184,7 +208,11 @@ HRESULT WINAPI XTL::EmuIXACTEngine_CreateSoundSource
|
|||
X_XACTSoundSource** ppSoundSource
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pThis, dwFlags, ppSoundSource);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(dwFlags)
|
||||
LOG_FUNC_ARG(ppSoundSource)
|
||||
LOG_FUNC_END;
|
||||
|
||||
*ppSoundSource = (X_XACTSoundSource*) CxbxMalloc( sizeof( X_XACTSoundSource ) );
|
||||
|
||||
|
@ -200,7 +228,10 @@ HRESULT WINAPI XTL::EmuIXACTEngine_EnableHeadphones
|
|||
BOOL fEnabled
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pThis, fEnabled);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(fEnabled)
|
||||
LOG_FUNC_END;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -220,20 +251,16 @@ HRESULT WINAPI XTL::EmuIXACTEngine_SetListenerOrientation
|
|||
DWORD dwApply
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" pThis : 0x%.08X\n"
|
||||
" xFront : %f"
|
||||
" yFront : %f"
|
||||
" zFront : %f"
|
||||
" xTop : %f"
|
||||
" yTop : %f"
|
||||
" zTop : %f"
|
||||
" dwApply : 0x%.08X",
|
||||
pThis, xFront, yFront, zFront, xTop, yTop, zTop, dwApply);
|
||||
|
||||
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(xFront)
|
||||
LOG_FUNC_ARG(yFront)
|
||||
LOG_FUNC_ARG(zFront)
|
||||
LOG_FUNC_ARG(xTop)
|
||||
LOG_FUNC_ARG(yTop)
|
||||
LOG_FUNC_ARG(zTop)
|
||||
LOG_FUNC_ARG(dwApply)
|
||||
LOG_FUNC_END;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -250,17 +277,13 @@ HRESULT WINAPI XTL::EmuIXACTEngine_SetListenerPosition
|
|||
DWORD dwApply
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" pThis : 0x%.08X\n"
|
||||
" x : %f"
|
||||
" y : %f"
|
||||
" z : %f"
|
||||
" dwApply : 0x%.08X\n",
|
||||
pThis, x, y, z, dwApply);
|
||||
|
||||
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(x)
|
||||
LOG_FUNC_ARG(y)
|
||||
LOG_FUNC_ARG(z)
|
||||
LOG_FUNC_ARG(dwApply)
|
||||
LOG_FUNC_END;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -277,17 +300,13 @@ HRESULT WINAPI XTL::EmuIXACTEngine_SetListenerVelocity
|
|||
DWORD dwApply
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" pThis : 0x%.08X\n"
|
||||
" x : %f"
|
||||
" y : %f"
|
||||
" z : %f"
|
||||
" dwApply : 0x%.08X\n",
|
||||
pThis, x, y, z, dwApply);
|
||||
|
||||
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(x)
|
||||
LOG_FUNC_ARG(y)
|
||||
LOG_FUNC_ARG(z)
|
||||
LOG_FUNC_ARG(dwApply)
|
||||
LOG_FUNC_END;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -302,7 +321,11 @@ HRESULT WINAPI XTL::EmuIXACTEngine_SetMasterVolume
|
|||
LONG lVolume
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pThis, wCategory, lVolume);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(wCategory)
|
||||
LOG_FUNC_ARG(lVolume)
|
||||
LOG_FUNC_END;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -310,9 +333,12 @@ HRESULT WINAPI XTL::EmuIXACTEngine_SetMasterVolume
|
|||
// ******************************************************************
|
||||
// * EmuIXACTEngine_CommitDeferredSettings
|
||||
// ******************************************************************
|
||||
HRESULT WINAPI XTL::EmuIXACTEngine_CommitDeferredSettings(X_XACTEngine* pThis)
|
||||
HRESULT WINAPI XTL::EmuIXACTEngine_CommitDeferredSettings
|
||||
(
|
||||
X_XACTEngine* pThis
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pThis);
|
||||
LOG_FUNC_ONE_ARG(pThis);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -327,15 +353,11 @@ HRESULT WINAPI XTL::EmuIXACTSoundBank_GetSoundCueIndexFromFriendlyName
|
|||
DWORD* pdwSoundCueIndex
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" pThis : 0x%.08X\n"
|
||||
" pFriendlyName : (%s)\n"
|
||||
" pdwSoundCueIndex : 0x%.08X\n",
|
||||
pThis, pFriendlyName, pdwSoundCueIndex);
|
||||
|
||||
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(pFriendlyName)
|
||||
LOG_FUNC_ARG(pdwSoundCueIndex)
|
||||
LOG_FUNC_END;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -352,7 +374,13 @@ HRESULT WINAPI XTL::EmuIXACTSoundBank_Play
|
|||
X_XACTSoundCue** ppSoundCue
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pThis, dwSoundCueIndex, pSoundSource, dwFlags, ppSoundCue);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(dwSoundCueIndex)
|
||||
LOG_FUNC_ARG(pSoundSource)
|
||||
LOG_FUNC_ARG(dwFlags)
|
||||
LOG_FUNC_ARG(ppSoundCue)
|
||||
LOG_FUNC_END;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -368,7 +396,12 @@ HRESULT WINAPI XTL::EmuIXACTSoundBank_Stop
|
|||
X_XACTSoundCue* pSoundCue
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pThis, dwSoundCueIndex, dwFlags, pSoundCue);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(dwSoundCueIndex)
|
||||
LOG_FUNC_ARG(dwFlags)
|
||||
LOG_FUNC_ARG(pSoundCue)
|
||||
LOG_FUNC_END;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -385,17 +418,13 @@ HRESULT WINAPI XTL::EmuIXACTSoundSource_SetPosition
|
|||
DWORD dwApply
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" pThis : 0x%.08X\n"
|
||||
" x : %f\n"
|
||||
" y : %f\n"
|
||||
" z : %f\n"
|
||||
" dwApply : 0x%.08X\n",
|
||||
pThis, x, y, z, dwApply);
|
||||
|
||||
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(x)
|
||||
LOG_FUNC_ARG(y)
|
||||
LOG_FUNC_ARG(z)
|
||||
LOG_FUNC_ARG(dwApply)
|
||||
LOG_FUNC_END;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -412,17 +441,13 @@ HRESULT WINAPI XTL::EmuIXACTSoundSource_SetVelocity
|
|||
DWORD dwApply
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" pThis : 0x%.08X\n"
|
||||
" x : %f\n"
|
||||
" y : %f\n"
|
||||
" z : %f\n"
|
||||
" dwApply : 0x%.08X\n",
|
||||
pThis, x, y, z, dwApply);
|
||||
|
||||
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(x)
|
||||
LOG_FUNC_ARG(y)
|
||||
LOG_FUNC_ARG(z)
|
||||
LOG_FUNC_ARG(dwApply)
|
||||
LOG_FUNC_END;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -436,7 +461,10 @@ HRESULT WINAPI XTL::EmuIXACTEngine_RegisterNotification
|
|||
PCXACT_NOTIFICATION_DESCRIPTION pNotificationDesc
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pThis, pNotificationDesc);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(pNotificationDesc)
|
||||
LOG_FUNC_END;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -451,7 +479,11 @@ HRESULT WINAPI XTL::EmuIXACTEngine_GetNotification
|
|||
LPVOID pNotification
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pThis, pNotificationDesc, pNotification);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(pNotificationDesc)
|
||||
LOG_FUNC_ARG(pNotification)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: The contents of XACT_NOTIFICATION can vary from one XDK to the next.
|
||||
// The definition for 4627 is different than 5558.
|
||||
|
@ -468,7 +500,11 @@ HRESULT WINAPI XTL::EmuIXACTEngine_UnRegisterWaveBank
|
|||
X_XACTWaveBank* pWaveBank
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pThis, pWaveBank);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThis)
|
||||
LOG_FUNC_ARG(pWaveBank)
|
||||
LOG_FUNC_END;
|
||||
|
||||
|
||||
// Even though the documentation doesn't tell us much, I'm
|
||||
// assuming that after this function is called, the pointer
|
||||
|
|
|
@ -43,6 +43,7 @@ namespace xboxkrnl
|
|||
|
||||
#include <Shlwapi.h>
|
||||
#include "CxbxKrnl.h"
|
||||
#include "Logging.h"
|
||||
#include "Emu.h"
|
||||
#include "EmuFile.h"
|
||||
#include "EmuFS.h"
|
||||
|
@ -84,7 +85,7 @@ XTL::LAUNCH_DATA g_SavedLaunchData;
|
|||
// ******************************************************************
|
||||
BOOL WINAPI XTL::EmuXFormatUtilityDrive()
|
||||
{
|
||||
DbgFuncHexArgs();
|
||||
LOG_FUNC();
|
||||
|
||||
// TODO: yeah... we'll format... riiiiight
|
||||
|
||||
|
@ -99,7 +100,7 @@ DWORD WINAPI XTL::EmuGetTimeZoneInformation
|
|||
OUT LPTIME_ZONE_INFORMATION lpTimeZoneInformation
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(lpTimeZoneInformation);
|
||||
LOG_FUNC_ONE_ARG_OUT(lpTimeZoneInformation);
|
||||
|
||||
DWORD dwRet = GetTimeZoneInformation(lpTimeZoneInformation);
|
||||
|
||||
|
@ -114,7 +115,7 @@ BOOL WINAPI XTL::EmuQueryPerformanceCounter
|
|||
PLARGE_INTEGER lpPerformanceCount
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(lpPerformanceCount);
|
||||
LOG_FUNC_ONE_ARG(lpPerformanceCount);
|
||||
|
||||
BOOL bRet = QueryPerformanceCounter(lpPerformanceCount);
|
||||
|
||||
|
@ -132,7 +133,7 @@ BOOL WINAPI XTL::EmuQueryPerformanceFrequency
|
|||
PLARGE_INTEGER lpFrequency
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(lpFrequency);
|
||||
LOG_FUNC_ONE_ARG(lpFrequency);
|
||||
|
||||
BOOL bRet = QueryPerformanceFrequency(lpFrequency);
|
||||
|
||||
|
@ -147,7 +148,7 @@ BOOL WINAPI XTL::EmuXMountUtilityDrive
|
|||
BOOL fFormatClean
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(fFormatClean);
|
||||
LOG_FUNC_ONE_ARG(fFormatClean);
|
||||
|
||||
CxbxMountUtilityDrive(fFormatClean);
|
||||
|
||||
|
@ -163,7 +164,10 @@ VOID WINAPI XTL::EmuXInitDevices
|
|||
PXDEVICE_PREALLOC_TYPE PreallocTypes
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(dwPreallocTypeCount, PreallocTypes);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(dwPreallocTypeCount)
|
||||
LOG_FUNC_ARG(PreallocTypes)
|
||||
LOG_FUNC_END;
|
||||
|
||||
/*for( DWORD i = 0; i < dwPreallocTypeCount; i++ )
|
||||
{
|
||||
|
@ -186,10 +190,8 @@ VOID WINAPI XTL::EmuXInitDevices
|
|||
{
|
||||
g_hInputHandle[v] = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -200,7 +202,7 @@ DWORD WINAPI XTL::EmuXGetDevices
|
|||
PXPP_DEVICE_TYPE DeviceType
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(DeviceType);
|
||||
LOG_FUNC_ONE_ARG(DeviceType);
|
||||
|
||||
DWORD ret = 0;
|
||||
|
||||
|
@ -209,9 +211,7 @@ DWORD WINAPI XTL::EmuXGetDevices
|
|||
else
|
||||
EmuWarning("Unknown DeviceType (0x%.08X, 0x%.08X, 0x%.08X)\n", DeviceType->Reserved[0], DeviceType->Reserved[1], DeviceType->Reserved[2]);
|
||||
|
||||
|
||||
|
||||
return ret;
|
||||
return ret;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -224,7 +224,11 @@ BOOL WINAPI XTL::EmuXGetDeviceChanges
|
|||
PDWORD pdwRemovals
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(DeviceType, pdwInsertions, pdwRemovals);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(DeviceType)
|
||||
LOG_FUNC_ARG(pdwInsertions)
|
||||
LOG_FUNC_ARG(pdwRemovals)
|
||||
LOG_FUNC_END;
|
||||
|
||||
BOOL bRet = FALSE;
|
||||
static BOOL bFirst = TRUE;
|
||||
|
@ -251,9 +255,7 @@ BOOL WINAPI XTL::EmuXGetDeviceChanges
|
|||
*pdwRemovals = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return TRUE; //bRet;
|
||||
return TRUE; //bRet;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -267,7 +269,12 @@ HANDLE WINAPI XTL::EmuXInputOpen
|
|||
IN PXINPUT_POLLING_PARAMETERS pPollingParameters OPTIONAL
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(DeviceType, dwPort, dwSlot, pPollingParameters);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(DeviceType)
|
||||
LOG_FUNC_ARG(dwPort)
|
||||
LOG_FUNC_ARG(dwSlot)
|
||||
LOG_FUNC_ARG(pPollingParameters)
|
||||
LOG_FUNC_END;
|
||||
|
||||
POLLING_PARAMETERS_HANDLE *pph = 0;
|
||||
|
||||
|
@ -319,9 +326,7 @@ HANDLE WINAPI XTL::EmuXInputOpen
|
|||
|
||||
g_bXInputOpenCalled = true;
|
||||
|
||||
|
||||
|
||||
return (HANDLE)pph;
|
||||
return (HANDLE)pph;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -332,7 +337,7 @@ VOID WINAPI XTL::EmuXInputClose
|
|||
IN HANDLE hDevice
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(hDevice);
|
||||
LOG_FUNC_ONE_ARG(hDevice);
|
||||
|
||||
POLLING_PARAMETERS_HANDLE *pph = (POLLING_PARAMETERS_HANDLE*)hDevice;
|
||||
|
||||
|
@ -372,7 +377,7 @@ DWORD WINAPI XTL::EmuXInputPoll
|
|||
IN HANDLE hDevice
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(hDevice);
|
||||
LOG_FUNC_ONE_ARG(hDevice);
|
||||
|
||||
POLLING_PARAMETERS_HANDLE *pph = (POLLING_PARAMETERS_HANDLE*)hDevice;
|
||||
|
||||
|
@ -427,7 +432,10 @@ DWORD WINAPI XTL::EmuXInputGetCapabilities
|
|||
OUT PXINPUT_CAPABILITIES pCapabilities
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(hDevice, pCapabilities);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(hDevice)
|
||||
LOG_FUNC_ARG_OUT(pCapabilities)
|
||||
LOG_FUNC_END;
|
||||
|
||||
DWORD ret = ERROR_INVALID_HANDLE;
|
||||
|
||||
|
@ -447,9 +455,7 @@ DWORD WINAPI XTL::EmuXInputGetCapabilities
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return ret;
|
||||
return ret;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -461,7 +467,10 @@ DWORD WINAPI XTL::EmuXInputGetState
|
|||
OUT PXINPUT_STATE pState
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(hDevice, pState);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(hDevice)
|
||||
LOG_FUNC_ARG_OUT(pState)
|
||||
LOG_FUNC_END;
|
||||
|
||||
DWORD ret = ERROR_INVALID_HANDLE;
|
||||
|
||||
|
@ -498,9 +507,7 @@ DWORD WINAPI XTL::EmuXInputGetState
|
|||
else
|
||||
EmuWarning( "EmuXInputGetState(): pph == NULL!" );
|
||||
|
||||
|
||||
|
||||
return ret;
|
||||
return ret;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -512,7 +519,10 @@ DWORD WINAPI XTL::EmuXInputSetState
|
|||
IN OUT PXINPUT_FEEDBACK pFeedback
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(hDevice, pFeedback);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(hDevice)
|
||||
LOG_FUNC_ARG(pFeedback)
|
||||
LOG_FUNC_END;
|
||||
|
||||
DWORD ret = ERROR_IO_PENDING;
|
||||
|
||||
|
@ -573,9 +583,7 @@ DWORD WINAPI XTL::EmuXInputSetState
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return ret;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
@ -588,7 +596,10 @@ BOOL WINAPI XTL::EmuSetThreadPriorityBoost
|
|||
BOOL DisablePriorityBoost
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(hThread, DisablePriorityBoost);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(hThread)
|
||||
LOG_FUNC_ARG(DisablePriorityBoost)
|
||||
LOG_FUNC_END;
|
||||
|
||||
BOOL bRet = SetThreadPriorityBoost(hThread, DisablePriorityBoost);
|
||||
|
||||
|
@ -607,7 +618,10 @@ BOOL WINAPI XTL::EmuSetThreadPriority
|
|||
int nPriority
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(hThread, nPriority);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(hThread)
|
||||
LOG_FUNC_ARG(nPriority)
|
||||
LOG_FUNC_END;
|
||||
|
||||
BOOL bRet = SetThreadPriority(hThread, nPriority);
|
||||
|
||||
|
@ -626,7 +640,7 @@ int WINAPI XTL::EmuGetThreadPriority
|
|||
HANDLE hThread
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(hThread);
|
||||
LOG_FUNC_ONE_ARG(hThread);
|
||||
|
||||
int iRet = GetThreadPriority(hThread);
|
||||
|
||||
|
@ -645,7 +659,10 @@ BOOL WINAPI XTL::EmuGetExitCodeThread
|
|||
LPDWORD lpExitCode
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(hThread, lpExitCode);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(hThread)
|
||||
LOG_FUNC_ARG(lpExitCode)
|
||||
LOG_FUNC_END;
|
||||
|
||||
BOOL bRet = GetExitCodeThread(hThread, lpExitCode);
|
||||
|
||||
|
@ -661,7 +678,10 @@ VOID WINAPI XTL::EmuXapiThreadStartup
|
|||
DWORD dwDummy2
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(dwDummy1, dwDummy2);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(dwDummy1)
|
||||
LOG_FUNC_ARG(dwDummy2)
|
||||
LOG_FUNC_END;
|
||||
|
||||
typedef int (__stdcall *pfDummyFunc)(DWORD dwDummy);
|
||||
|
||||
|
@ -693,12 +713,10 @@ VOID WINAPI XTL::EmuXRegisterThreadNotifyRoutine
|
|||
BOOL fRegister
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" pThreadNotification : 0x%.08X (0x%.08X)\n"
|
||||
" fRegister : 0x%.08X\n",
|
||||
pThreadNotification, pThreadNotification->pfnNotifyRoutine, fRegister);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pThreadNotification)
|
||||
LOG_FUNC_ARG(fRegister)
|
||||
LOG_FUNC_END;
|
||||
|
||||
if(fRegister)
|
||||
{
|
||||
|
@ -747,7 +765,11 @@ DWORD WINAPI XTL::EmuQueueUserAPC
|
|||
DWORD dwData
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pfnAPC, hThread, dwData);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pfnAPC)
|
||||
LOG_FUNC_ARG(hThread)
|
||||
LOG_FUNC_ARG(dwData)
|
||||
LOG_FUNC_END;
|
||||
|
||||
DWORD dwRet = 0;
|
||||
|
||||
|
@ -776,7 +798,12 @@ BOOL WINAPI XTL::EmuGetOverlappedResult
|
|||
BOOL bWait
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(hFile, lpOverlapped, lpNumberOfBytesTransferred, bWait);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(hFile)
|
||||
LOG_FUNC_ARG(lpOverlapped)
|
||||
LOG_FUNC_ARG(lpNumberOfBytesTransferred)
|
||||
LOG_FUNC_ARG(bWait)
|
||||
LOG_FUNC_END;
|
||||
|
||||
BOOL bRet = GetOverlappedResult( hFile, lpOverlapped, lpNumberOfBytesTransferred, bWait );
|
||||
|
||||
|
@ -795,12 +822,10 @@ DWORD WINAPI XTL::EmuXLaunchNewImage
|
|||
PLAUNCH_DATA pLaunchData
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" lpTitlePath : 0x%.08X (%s)\n"
|
||||
" pLaunchData : 0x%.08X\n",
|
||||
lpTitlePath, lpTitlePath, pLaunchData);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(lpTitlePath)
|
||||
LOG_FUNC_ARG(pLaunchData)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// If this function succeeds, it doesn't get a chance to return anything.
|
||||
DWORD dwRet = ERROR_GEN_FAILURE;
|
||||
|
@ -878,8 +903,11 @@ DWORD WINAPI XTL::EmuXGetLaunchInfo
|
|||
PLAUNCH_DATA pLaunchData
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(pdwLaunchDataType, pLaunchData);
|
||||
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pdwLaunchDataType)
|
||||
LOG_FUNC_ARG(pLaunchData)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// The title was launched by turning on the Xbox console with the title disc already in the DVD drive
|
||||
DWORD dwRet = ERROR_NOT_FOUND;
|
||||
|
||||
|
@ -940,7 +968,7 @@ VOID WINAPI XTL::EmuXSetProcessQuantumLength
|
|||
DWORD dwMilliseconds
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(dwMilliseconds);
|
||||
LOG_FUNC_ONE_ARG(dwMilliseconds);
|
||||
|
||||
// TODO: Implement?
|
||||
EmuWarning("XSetProcessQuantumLength is being ignored!");
|
||||
|
@ -951,7 +979,7 @@ VOID WINAPI XTL::EmuXSetProcessQuantumLength
|
|||
// ******************************************************************
|
||||
DWORD WINAPI XTL::EmuXGetFileCacheSize()
|
||||
{
|
||||
DbgFuncHexArgs();
|
||||
LOG_FUNC();
|
||||
|
||||
// Return the default cache size for now.
|
||||
// TODO: Save the file cache size if/when set.
|
||||
|
@ -971,7 +999,12 @@ DWORD WINAPI XTL::EmuSignalObjectAndWait
|
|||
BOOL bAlertable
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(hObjectToSignal, hObjectToWaitOn, dwMilliseconds, bAlertable);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(hObjectToSignal)
|
||||
LOG_FUNC_ARG(hObjectToWaitOn)
|
||||
LOG_FUNC_ARG(dwMilliseconds)
|
||||
LOG_FUNC_ARG(bAlertable)
|
||||
LOG_FUNC_END;
|
||||
|
||||
DWORD dwRet = SignalObjectAndWait( hObjectToSignal, hObjectToWaitOn, dwMilliseconds, bAlertable );
|
||||
|
||||
|
@ -981,9 +1014,12 @@ DWORD WINAPI XTL::EmuSignalObjectAndWait
|
|||
// ******************************************************************
|
||||
// * func: EmuPulseEvent
|
||||
// ******************************************************************
|
||||
BOOL WINAPI XTL::EmuPulseEvent( HANDLE hEvent )
|
||||
BOOL WINAPI XTL::EmuPulseEvent
|
||||
(
|
||||
HANDLE hEvent
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(hEvent);
|
||||
LOG_FUNC_ONE_ARG(hEvent);
|
||||
|
||||
// TODO: This function might be a bit too high level. If it is,
|
||||
// feel free to implement NtPulseEvent in EmuKrnl.cpp
|
||||
|
@ -1005,7 +1041,13 @@ MMRESULT WINAPI XTL::EmutimeSetEvent
|
|||
UINT fuEvent
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(uDelay, uResolution, fptc, dwUser, fuEvent);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(uDelay)
|
||||
LOG_FUNC_ARG(uResolution)
|
||||
LOG_FUNC_ARG(fptc)
|
||||
LOG_FUNC_ARG(dwUser)
|
||||
LOG_FUNC_ARG(fuEvent)
|
||||
LOG_FUNC_END;
|
||||
|
||||
MMRESULT Ret = timeSetEvent( uDelay, uResolution, fptc, (DWORD_PTR) dwUser, fuEvent );
|
||||
|
||||
|
@ -1020,7 +1062,7 @@ MMRESULT WINAPI XTL::EmutimeKillEvent
|
|||
UINT uTimerID
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(uTimerID);
|
||||
LOG_FUNC_ONE_ARG(uTimerID);
|
||||
|
||||
MMRESULT Ret = timeKillEvent( uTimerID );
|
||||
|
||||
|
@ -1038,7 +1080,12 @@ VOID WINAPI XTL::EmuRaiseException
|
|||
CONST ULONG_PTR *lpArguments // array of arguments
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(dwExceptionCode, dwExceptionFlags, nNumberOfArguments, lpArguments);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(dwExceptionCode)
|
||||
LOG_FUNC_ARG(dwExceptionFlags)
|
||||
LOG_FUNC_ARG(nNumberOfArguments)
|
||||
LOG_FUNC_ARG(lpArguments)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: Implement or not?
|
||||
// RaiseException(dwExceptionCode, dwExceptionFlags, nNumberOfArguments, (*(ULONG_PTR**) &lpArguments));
|
||||
|
@ -1052,13 +1099,11 @@ DWORD WINAPI XTL::EmuGetFileAttributesA
|
|||
LPCSTR lpFileName // name of file or directory
|
||||
)
|
||||
{
|
||||
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(lpFileName)
|
||||
LOG_FUNC_END;
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" lpFileName : (%s)\n",
|
||||
lpFileName);
|
||||
|
||||
// Dues Ex...
|
||||
// Deus Ex...
|
||||
|
||||
// Shave off the D:\ and default to the current directory.
|
||||
// TODO: Other directories (i.e. Utility)?
|
||||
|
@ -1093,19 +1138,15 @@ DWORD WINAPI XTL::EmuXMountMUA
|
|||
PCHAR pchDrive
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" dwPort : 0x%.08X\n"
|
||||
" dwSlot : 0x%.08X\n"
|
||||
" pchDrive : 0x%.08X (%s)\n",
|
||||
dwPort, dwSlot, pchDrive, pchDrive);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(dwPort)
|
||||
LOG_FUNC_ARG(dwSlot)
|
||||
LOG_FUNC_ARG(pchDrive)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: Actually allow memory card emulation? This might make transferring
|
||||
// game saves a bit easier if the memory card directory was configurable. =]
|
||||
|
||||
|
||||
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1119,13 +1160,11 @@ HANDLE WINAPI XTL::EmuCreateWaitableTimerA
|
|||
LPCSTR lpTimerName // object name
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" lpTimerAttributes : 0x%.08X\n"
|
||||
" bManualReset : 0x%.08X\n"
|
||||
" lpTimerName : 0x%.08X (%s)\n",
|
||||
lpTimerAttributes, bManualReset, lpTimerName, lpTimerName);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(lpTimerAttributes)
|
||||
LOG_FUNC_ARG(bManualReset)
|
||||
LOG_FUNC_ARG(lpTimerName)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// For Xbox titles, this param should always be NULL.
|
||||
if(lpTimerAttributes)
|
||||
|
@ -1151,8 +1190,14 @@ BOOL WINAPI XTL::EmuSetWaitableTimer
|
|||
BOOL fResume // resume state
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(hTimer, pDueTime, lPeriod, pfnCompletionRoutine,
|
||||
lpArgToCompletionRoutine, fResume);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(hTimer)
|
||||
LOG_FUNC_ARG(pDueTime)
|
||||
LOG_FUNC_ARG(lPeriod)
|
||||
LOG_FUNC_ARG(pfnCompletionRoutine)
|
||||
LOG_FUNC_ARG(lpArgToCompletionRoutine)
|
||||
LOG_FUNC_ARG(fResume)
|
||||
LOG_FUNC_END;
|
||||
|
||||
BOOL Ret = SetWaitableTimer( hTimer, pDueTime, lPeriod, pfnCompletionRoutine,
|
||||
lpArgToCompletionRoutine, fResume );
|
||||
|
@ -1172,33 +1217,26 @@ DWORD WINAPI XTL::EmuXMountAlternateTitle
|
|||
PCHAR pchDrive
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" lpRootPath : 0x%.08X (%s)\n"
|
||||
" dwAltTitleId : 0x%.08X\n"
|
||||
" pchDrive : 0x%.08X (%s)\n",
|
||||
lpRootPath, lpRootPath, dwAltTitleId, pchDrive, pchDrive);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(lpRootPath)
|
||||
LOG_FUNC_ARG(dwAltTitleId)
|
||||
LOG_FUNC_ARG(pchDrive)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: Anything?
|
||||
|
||||
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuXUnmountAlternateTitle
|
||||
// ******************************************************************
|
||||
DWORD WINAPI XTL::EmuXUnmountAlternateTitle(CHAR chDrive)
|
||||
DWORD WINAPI XTL::EmuXUnmountAlternateTitle
|
||||
(
|
||||
CHAR chDrive
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" chDrive : 0x%.08X (%c)\n",
|
||||
chDrive, chDrive);
|
||||
|
||||
|
||||
LOG_FUNC_ONE_ARG(chDrive);
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
@ -1208,7 +1246,7 @@ DWORD WINAPI XTL::EmuXUnmountAlternateTitle(CHAR chDrive)
|
|||
// ******************************************************************
|
||||
DWORD WINAPI XTL::EmuXGetDeviceEnumerationStatus()
|
||||
{
|
||||
DbgFuncHexArgs();
|
||||
LOG_FUNC();
|
||||
|
||||
return XDEVICE_ENUMERATION_IDLE;
|
||||
}
|
||||
|
@ -1222,7 +1260,10 @@ DWORD WINAPI XTL::EmuXInputGetDeviceDescription
|
|||
PVOID pDescription
|
||||
)
|
||||
{
|
||||
DbgFuncHexArgs(hDevice, pDescription);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(hDevice)
|
||||
LOG_FUNC_ARG(pDescription)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: Lightgun support?
|
||||
|
||||
|
@ -1234,7 +1275,7 @@ DWORD WINAPI XTL::EmuXInputGetDeviceDescription
|
|||
// ******************************************************************
|
||||
int WINAPI XTL::EmuXAutoPowerDownResetTimer()
|
||||
{
|
||||
DbgFuncHexArgs();
|
||||
LOG_FUNC();
|
||||
|
||||
// Meh, that's what the 'X' is for! =]
|
||||
|
||||
|
@ -1251,18 +1292,13 @@ DWORD WINAPI XTL::EmuXMountMURootA
|
|||
PCHAR pchDrive
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
|
||||
DbgFuncFmtArgs(
|
||||
" dwPort : 0x%.08X\n"
|
||||
" dwSlot : 0x%.08X\n"
|
||||
" pchDrive : 0x%.08X (%s)\n",
|
||||
dwPort, dwSlot, pchDrive, pchDrive);
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(dwPort)
|
||||
LOG_FUNC_ARG(dwSlot)
|
||||
LOG_FUNC_ARG(pchDrive)
|
||||
LOG_FUNC_END;
|
||||
|
||||
// TODO: The params are probably wrong...
|
||||
|
||||
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -54,374 +54,389 @@ namespace xboxkrnl
|
|||
//#define PANIC(numb) CxbxKrnlPanic
|
||||
#define PANIC(numb) numb
|
||||
|
||||
#define FUNC(f) f
|
||||
#define VARIABLE(v) v
|
||||
|
||||
// kernel thunk table
|
||||
extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[367] =
|
||||
extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379] =
|
||||
{
|
||||
(uint32)PANIC(0x0000), // 0x0000 (0) NULL
|
||||
(uint32)&xboxkrnl::AvGetSavedDataAddress, // 0x0001 (1)
|
||||
(uint32)&xboxkrnl::AvSendTVEncoderOption, // 0x0002 (2)
|
||||
(uint32)PANIC(0x0003), // 0x0003 (3) AvSetDisplayMode
|
||||
(uint32)PANIC(0x0004), // 0x0004 (4) AvSetSavedDataAddress
|
||||
(uint32)PANIC(0x0005), // 0x0005 (5) DbgBreakPoint
|
||||
(uint32)PANIC(0x0006), // 0x0006 (6) DbgBreakPointWithStatus
|
||||
(uint32)PANIC(0x0007), // 0x0007 (7) DbgLoadImageSymbols
|
||||
(uint32)&xboxkrnl::DbgPrint, // 0x0008 (8)
|
||||
(uint32)&xboxkrnl::HalReadSMCTrayState, // 0x0009 (9)
|
||||
(uint32)PANIC(0x000A), // 0x000A (10) DbgPrompt
|
||||
(uint32)PANIC(0x000B), // 0x000B (11) DbgUnLoadImageSymbols
|
||||
(uint32)PANIC(0x000C), // 0x000C (12) ExAcquireReadWriteLockExclusive
|
||||
(uint32)PANIC(0x000D), // 0x000D (13) ExAcquireReadWriteLockShared
|
||||
(uint32)&xboxkrnl::ExAllocatePool, // 0x000E (14)
|
||||
(uint32)&xboxkrnl::ExAllocatePoolWithTag, // 0x000F (15)
|
||||
(uint32)PANIC(0x0010), // 0x0010 (16) ExEventObjectType
|
||||
(uint32)&xboxkrnl::ExFreePool, // 0x0011 (17)
|
||||
(uint32)PANIC(0x0012), // 0x0012 (18) ExInitializeReadWriteLock
|
||||
(uint32)PANIC(0x0013), // 0x0013 (19) ExInterlockedAddLargeInteger
|
||||
(uint32)PANIC(0x0014), // 0x0014 (20) ExInterlockedAddLargeStatistic
|
||||
(uint32)PANIC(0x0015), // 0x0015 (21) ExInterlockedCompareExchange64
|
||||
(uint32)PANIC(0x0016), // 0x0016 (22) ExMutantObjectType
|
||||
(uint32)&xboxkrnl::ExQueryPoolBlockSize, // 0x0017 (23) ExQueryPoolBlockSize
|
||||
(uint32)&xboxkrnl::ExQueryNonVolatileSetting, // 0x0018 (24)
|
||||
(uint32)&xboxkrnl::ExReadWriteRefurbInfo, // 0x0019 (25)
|
||||
(uint32)PANIC(0x001A), // 0x001A (26) ExQueryPoolBlockSize
|
||||
(uint32)PANIC(0x001B), // 0x001B (27) ExRaiseStatus
|
||||
(uint32)PANIC(0x001C), // 0x001C (28) ExReleaseReadWriteLock
|
||||
(uint32)&xboxkrnl::ExSaveNonVolatileSetting, // 0x001D (29)
|
||||
(uint32)PANIC(0x001E), // 0x001E (30)
|
||||
(uint32)PANIC(0x001F), // 0x001F (31)
|
||||
(uint32)PANIC(0x0020), // 0x0020 (32)
|
||||
(uint32)PANIC(0x0021), // 0x0021 (33)
|
||||
(uint32)PANIC(0x0022), // 0x0022 (34)
|
||||
(uint32)&xboxkrnl::FscGetCacheSize, // 0x0023 (35)
|
||||
(uint32)PANIC(0x0024), // 0x0024 (36)
|
||||
(uint32)&xboxkrnl::FscSetCacheSize, // 0x0025 (37)
|
||||
(uint32)PANIC(0x0026), // 0x0026 (38) HalClearSoftwareInterrupt
|
||||
(uint32)PANIC(0x0027), // 0x0027 (39) HalDisableSystemInterrupt
|
||||
(uint32)&xboxkrnl::HalDiskCachePartitionCount, // 0x0028 (40) HalDiskCachePartitionCount
|
||||
(uint32)PANIC(0x0029), // 0x0029 (41) HalDiskModelNumber
|
||||
(uint32)PANIC(0x002A), // 0x002A (42) HalDiskSerialNumber
|
||||
(uint32)PANIC(0x002B), // 0x002B (43) HalEnableSystemInterrupt
|
||||
(uint32)&xboxkrnl::HalGetInterruptVector, // 0x002C (44)
|
||||
(uint32)&xboxkrnl::HalReadSMBusValue, // 0x002D (45)
|
||||
(uint32)PANIC(0x002E), // 0x002E (46) HalReadWritePCISpace
|
||||
(uint32)&xboxkrnl::HalRegisterShutdownNotification, // 0x002F (47) HalRegisterShutdownNotification
|
||||
(uint32)PANIC(0x0030), // 0x0030 (48) HalRequestSoftwareInterrupt
|
||||
(uint32)&xboxkrnl::HalReturnToFirmware, // 0x0031 (49)
|
||||
(uint32)&xboxkrnl::HalWriteSMBusValue, // 0x0032 (50)
|
||||
(uint32)PANIC(0x0033), // 0x0033 (51) InterlockedCompareExchange
|
||||
(uint32)PANIC(0x0034), // 0x0034 (52) InterlockedDecrement
|
||||
(uint32)PANIC(0x0035), // 0x0035 (53) InterlockedIncrement
|
||||
(uint32)PANIC(0x0036), // 0x0036 (54) InterlockedExchange
|
||||
(uint32)PANIC(0x0037), // 0x0037 (55) InterlockedExchangeAdd
|
||||
(uint32)PANIC(0x0038), // 0x0038 (56) InterlockedFlushSList
|
||||
(uint32)PANIC(0x0039), // 0x0039 (57) InterlockedPopEntrySList
|
||||
(uint32)PANIC(0x003A), // 0x003A (58) InterlockedPushEntrySList
|
||||
(uint32)PANIC(0x003B), // 0x003B (59) IoAllocateIrp
|
||||
(uint32)PANIC(0x003C), // 0x003C (60) IoBuildAsynchronousFsdRequest
|
||||
(uint32)PANIC(0x003D), // 0x003D (61) IoBuildDeviceIoControlRequest
|
||||
(uint32)PANIC(0x003E), // 0x003E (62) IoBuildSynchronousFsdRequest
|
||||
(uint32)PANIC(0x003F), // 0x003F (63) IoCheckShareAccess
|
||||
(uint32)PANIC(0x0040), // 0x0040 (64) IoCompletionObjectType
|
||||
(uint32)PANIC(0x0041), // 0x0041 (65) IoCreateDevice
|
||||
(uint32)&xboxkrnl::IoCreateFile, // 0x0042 (66)
|
||||
(uint32)&xboxkrnl::IoCreateSymbolicLink, // 0x0043 (67)
|
||||
(uint32)PANIC(0x0044), // 0x0044 (68) IoDeleteDevice
|
||||
(uint32)&xboxkrnl::IoDeleteSymbolicLink, // 0x0045 (69)
|
||||
(uint32)PANIC(0x0046), // 0x0046 (70) IoDeviceObjectType
|
||||
(uint32)PANIC(0x0047), // 0x0047 (71) IoFileObjectType
|
||||
(uint32)PANIC(0x0048), // 0x0048 (72) IoFreeIrp
|
||||
(uint32)PANIC(0x0049), // 0x0049 (73) IoInitializeIrp
|
||||
(uint32)PANIC(0x004A), // 0x004A (74) IoInvalidDeviceRequest
|
||||
(uint32)PANIC(0x004B), // 0x004B (75) IoQueryFileInformation
|
||||
(uint32)PANIC(0x004C), // 0x004C (76) IoQueryVolumeInformation
|
||||
(uint32)PANIC(0x004D), // 0x004D (77) IoQueueThreadIrp
|
||||
(uint32)PANIC(0x004E), // 0x004E (78) IoRemoveShareAccess
|
||||
(uint32)PANIC(0x004F), // 0x004F (79) IoSetIoCompletion
|
||||
(uint32)PANIC(0x0050), // 0x0050 (80) IoSetShareAccess
|
||||
(uint32)PANIC(0x0051), // 0x0051 (81) IoStartNextPacket
|
||||
(uint32)PANIC(0x0052), // 0x0052 (82) IoStartNextPacketByKey
|
||||
(uint32)PANIC(0x0053), // 0x0053 (83) IoStartPacket
|
||||
(uint32)PANIC(0x0054), // 0x0054 (84) IoSynchronousDeviceIoControlRequest
|
||||
(uint32)PANIC(0x0055), // 0x0055 (85) IoSynchronousFsdRequest
|
||||
(uint32)PANIC(0x0056), // 0x0056 (86) IofCallDriver
|
||||
(uint32)PANIC(0x0057), // 0x0057 (87) IofCompleteRequest
|
||||
(uint32)PANIC(0x0058), // 0x0058 (88) KdDebuggerEnabled
|
||||
(uint32)PANIC(0x0059), // 0x0059 (89) KdDebuggerNotPresent
|
||||
(uint32)PANIC(0x005A), // 0x005A (90) IoDismountVolume
|
||||
(uint32)&xboxkrnl::IoDismountVolumeByName, // 0x005B (91)
|
||||
(uint32)PANIC(0x005C), // 0x005C (92) KeAlertResumeThread
|
||||
(uint32)PANIC(0x005D), // 0x005D (93) KeAlertThread
|
||||
(uint32)PANIC(0x005E), // 0x005E (94) KeBoostPriorityThread
|
||||
(uint32)&xboxkrnl::KeBugCheck, // 0x005F (95)
|
||||
(uint32)PANIC(0x0060), // 0x0060 (96) KeBugCheckEx
|
||||
(uint32)PANIC(0x0061), // 0x0061 (97) KeCancelTimer
|
||||
(uint32)&xboxkrnl::KeConnectInterrupt, // 0x0062 (98)
|
||||
(uint32)&xboxkrnl::KeDelayExecutionThread, // 0x0063 (99)
|
||||
(uint32)PANIC(0x0064), // 0x0064 (100) KeDisconnectInterrupt
|
||||
(uint32)PANIC(0x0065), // 0x0065 (101) KeEnterCriticalRegion
|
||||
(uint32)PANIC(0x0066), // 0x0066 (102) MmGlobalData
|
||||
(uint32)PANIC(0x0067), // 0x0067 (103) KeGetCurrentIrql
|
||||
(uint32)PANIC(0x0068), // 0x0068 (104) KeGetCurrentThread
|
||||
(uint32)PANIC(0x0069), // 0x0069 (105) KeInitializeApc
|
||||
(uint32)PANIC(0x006A), // 0x006A (106) KeInitializeDeviceQueue
|
||||
(uint32)&xboxkrnl::KeInitializeDpc, // 0x006B (107)
|
||||
(uint32)PANIC(0x006C), // 0x006C (108)
|
||||
(uint32)&xboxkrnl::KeInitializeInterrupt, // 0x006D (109)
|
||||
(uint32)PANIC(0x006E), // 0x006E (110)
|
||||
(uint32)PANIC(0x006F), // 0x006F (111)
|
||||
(uint32)PANIC(0x0070), // 0x0070 (112)
|
||||
(uint32)&xboxkrnl::KeInitializeTimerEx, // 0x0071 (113)
|
||||
(uint32)PANIC(0x0072), // 0x0072 (114) KeInsertByKeyDeviceQueue
|
||||
(uint32)PANIC(0x0073), // 0x0073 (115) KeInsertDeviceQueue
|
||||
(uint32)PANIC(0x0074), // 0x0074 (116) KeInsertHeadQueue
|
||||
(uint32)PANIC(0x0075), // 0x0075 (117) KeInsertQueue
|
||||
(uint32)PANIC(0x0076), // 0x0076 (118) KeInsertQueueApc
|
||||
(uint32)PANIC(0x0077), // 0x0077 (119) KeInsertQueueDpc
|
||||
(uint32)PANIC(0x0078), // 0x0078 (120) KeInterruptTime
|
||||
(uint32)PANIC(0x0079), // 0x0079 (121) KeIsExecutingDpc
|
||||
(uint32)PANIC(0x007A), // 0x007A (122) KeLeaveCriticalRegion
|
||||
(uint32)PANIC(0x007B), // 0x007B (123) KePulseEvent
|
||||
(uint32)PANIC(0x007C), // 0x007C (124) KeQueryBasePriorityThread
|
||||
(uint32)PANIC(0x007D), // 0x007D (125) KeQueryInterruptTime
|
||||
(uint32)&xboxkrnl::KeQueryPerformanceCounter, // 0x007E (126)
|
||||
(uint32)&xboxkrnl::KeQueryPerformanceFrequency, // 0x007F (127)
|
||||
(uint32)&xboxkrnl::KeQuerySystemTime, // 0x0080 (128)
|
||||
(uint32)&xboxkrnl::KeRaiseIrqlToDpcLevel, // 0x0081 (129)
|
||||
(uint32)PANIC(0x0082), // 0x0082 (130) KeRaiseIrqlToSynchLevel
|
||||
(uint32)PANIC(0x0083), // 0x0083 (131) KeRaiseIrqlToSynchLevel
|
||||
(uint32)PANIC(0x0084), // 0x0084 (132) KeReleaseSemaphore
|
||||
(uint32)PANIC(0x0085), // 0x0085 (133) KeRemoveByKeyDeviceQueue
|
||||
(uint32)PANIC(0x0086), // 0x0086 (134) KeRemoveDeviceQueue
|
||||
(uint32)PANIC(0x0087), // 0x0087 (135) KeRemoveEntryDeviceQueue
|
||||
(uint32)PANIC(0x0088), // 0x0088 (136) KeRemoveQueue
|
||||
(uint32)PANIC(0x0089), // 0x0089 (137) KeRemoveQueueDpc
|
||||
(uint32)PANIC(0x008A), // 0x008A (138) KeResetEvent
|
||||
(uint32)PANIC(0x008B), // 0x008B (139) KeRestoreFloatingPointState
|
||||
(uint32)PANIC(0x008C), // 0x008C (140) KeResumeThread
|
||||
(uint32)PANIC(0x008D), // 0x008D (141) KeRundownQueue
|
||||
(uint32)PANIC(0x008E), // 0x008E (142) KeSaveFloatingPointState
|
||||
(uint32)PANIC(0x008F), // 0x008F (143) KeSetBasePriorityThread
|
||||
(uint32)PANIC(0x0090), // 0x0090 (144) KeSetDisableBoostThread
|
||||
(uint32)PANIC(0x0091), // 0x0091 (145) KeSetEvent
|
||||
(uint32)PANIC(0x0092), // 0x0092 (146) KeSetEventBoostPriority
|
||||
(uint32)PANIC(0x0093), // 0x0093 (147) KeSetPriorityProcess
|
||||
(uint32)PANIC(0x0094), // 0x0094 (148) KeSetPriorityThread
|
||||
(uint32)&xboxkrnl::KeSetTimer, // 0x0095 (149)
|
||||
(uint32)&xboxkrnl::KeSetTimerEx, // 0x0096 (150)
|
||||
(uint32)PANIC(0x0097), // 0x0097 (151) KeStallExecutionProcessor
|
||||
(uint32)PANIC(0x0098), // 0x0098 (152) KeSuspendThread
|
||||
(uint32)PANIC(0x0099), // 0x0099 (153) KeSynchronizeExecution
|
||||
(uint32)PANIC(0x009A), // 0x009A (154) KeSystemTime
|
||||
(uint32)PANIC(0x009B), // 0x009B (155) KeTestAlertThread
|
||||
(uint32)&xboxkrnl::KeTickCount, // 0x009C (156)
|
||||
(uint32)PANIC(0x009D), // 0x009D (157) KeTimeIncrement
|
||||
(uint32)&xboxkrnl::KeWaitForMultipleObjects, // 0x009E (158) KeWaitForMultipleObjects
|
||||
(uint32)&xboxkrnl::KeWaitForSingleObject, // 0x009F (159) KeWaitForSingleObject
|
||||
(uint32)&xboxkrnl::KfRaiseIrql, // 0x00A0 (160)
|
||||
(uint32)&xboxkrnl::KfLowerIrql, // 0x00A1 (161)
|
||||
(uint32)PANIC(0x00A2), // 0x00A2 (162) KiBugCheckData
|
||||
(uint32)PANIC(0x00A3), // 0x00A3 (163) KiUnlockDispatcherDatabase
|
||||
(uint32)&xboxkrnl::LaunchDataPage, // 0x00A4 (164)
|
||||
(uint32)&xboxkrnl::MmAllocateContiguousMemory, // 0x00A5 (165)
|
||||
(uint32)&xboxkrnl::MmAllocateContiguousMemoryEx,// 0x00A6 (166)
|
||||
(uint32)&xboxkrnl::MmAllocateSystemMemory, // 0x00A7 (167)
|
||||
(uint32)PANIC(0x00A8), // 0x00A8 (168) MmClaimGpuInstanceMemory
|
||||
(uint32)&xboxkrnl::MmCreateKernelStack, // 0x00A9 (169)
|
||||
(uint32)&xboxkrnl::MmDeleteKernelStack, // 0x00AA (170)
|
||||
(uint32)&xboxkrnl::MmFreeContiguousMemory, // 0x00AB (171)
|
||||
(uint32)&xboxkrnl::MmFreeSystemMemory, // 0x00AC (172)
|
||||
(uint32)PANIC(0x00AD), // 0x00AD (173) MmGetPhysicalAddress
|
||||
(uint32)PANIC(0x00AE), // 0x00AE (174) MmIsAddressValid
|
||||
(uint32)&xboxkrnl::MmLockUnlockBufferPages, // 0x00AF (175) MmLockUnlockBufferPages
|
||||
(uint32)PANIC(0x00B0), // 0x00B0 (176) MmLockUnlockPhysicalPage
|
||||
(uint32)&xboxkrnl::MmMapIoSpace, // 0x00B1 (177)
|
||||
(uint32)&xboxkrnl::MmPersistContiguousMemory, // 0x00B2 (178)
|
||||
(uint32)PANIC(0x00B3), // 0x00B3 (179) MmQueryAddressProtect
|
||||
(uint32)&xboxkrnl::MmQueryAllocationSize, // 0x00B4 (180)
|
||||
(uint32)&xboxkrnl::MmQueryStatistics, // 0x00B5 (181)
|
||||
(uint32)&xboxkrnl::MmSetAddressProtect, // 0x00B6 (182)
|
||||
(uint32)&xboxkrnl::MmUnmapIoSpace, // 0x00B7 (183)
|
||||
(uint32)&xboxkrnl::NtAllocateVirtualMemory, // 0x00B8 (184)
|
||||
(uint32)PANIC(0x00B9), // 0x00B9 (185) NtCancelTimer
|
||||
(uint32)&xboxkrnl::NtClearEvent, // 0x00BA (186)
|
||||
(uint32)&xboxkrnl::NtClose, // 0x00BB (187)
|
||||
(uint32)&xboxkrnl::NtCreateDirectoryObject, // 0x00BC (188) NtCreateDirectoryObject
|
||||
(uint32)&xboxkrnl::NtCreateEvent, // 0x00BD (189)
|
||||
(uint32)&xboxkrnl::NtCreateFile, // 0x00BE (190)
|
||||
(uint32)PANIC(0x00BF), // 0x00BF (191) NtCreateIoCompletion
|
||||
(uint32)&xboxkrnl::NtCreateMutant, // 0x00C0 (192)
|
||||
(uint32)&xboxkrnl::NtCreateSemaphore, // 0x00C1 (193)
|
||||
(uint32)PANIC(0x00C2), // 0x00C2 (194) NtCreateTimer
|
||||
(uint32)PANIC(0x00C3), // 0x00C3 (195) NtDeleteFile
|
||||
(uint32)&xboxkrnl::NtDeviceIoControlFile, // 0x00C4 (196) NtDeviceIoControlFile
|
||||
(uint32)&xboxkrnl::NtDuplicateObject, // 0x00C5 (197)
|
||||
(uint32)&xboxkrnl::NtFlushBuffersFile, // 0x00C6 (198)
|
||||
(uint32)&xboxkrnl::NtFreeVirtualMemory, // 0x00C7 (199)
|
||||
(uint32)PANIC(0x00C8), // 0x00C8 (200) NtFsControlFile
|
||||
(uint32)PANIC(0x00C9), // 0x00C9 (201) NtOpenDirectoryObject
|
||||
(uint32)&xboxkrnl::NtOpenFile, // 0x00CA (202)
|
||||
(uint32)&xboxkrnl::NtOpenSymbolicLinkObject, // 0x00CB (203) NtOpenSymbolicLinkObject
|
||||
(uint32)&xboxkrnl::NtProtectVirtualMemory, // 0x00CC (204) NtProtectVirtualMemory
|
||||
(uint32)PANIC(0x00CD), // 0x00CD (205) NtPulseEvent
|
||||
(uint32)&xboxkrnl::NtQueueApcThread, // 0x00CE (206)
|
||||
(uint32)&xboxkrnl::NtQueryDirectoryFile, // 0x00CF (207)
|
||||
(uint32)PANIC(0x00D0), // 0x00D0 (208) NtQueryDirectoryObject
|
||||
(uint32)PANIC(0x00D1), // 0x00D1 (209) NtQueryEvent
|
||||
(uint32)&xboxkrnl::NtQueryFullAttributesFile, // 0x00D2 (210)
|
||||
(uint32)&xboxkrnl::NtQueryInformationFile, // 0x00D3 (211)
|
||||
(uint32)PANIC(0x00D4), // 0x00D4 (212) NtQueryIoCompletion
|
||||
(uint32)PANIC(0x00D5), // 0x00D5 (213) NtQueryMutant
|
||||
(uint32)PANIC(0x00D6), // 0x00D6 (214) NtQuerySemaphore
|
||||
(uint32)&xboxkrnl::NtQuerySymbolicLinkObject, // 0x00D7 (215) NtQuerySymbolicLinkObject
|
||||
(uint32)PANIC(0x00D8), // 0x00D8 (216) NtQueryTimer
|
||||
(uint32)&xboxkrnl::NtQueryVirtualMemory, // 0x00D9 (217)
|
||||
(uint32)&xboxkrnl::NtQueryVolumeInformationFile,// 0x00DA (218)
|
||||
(uint32)&xboxkrnl::NtReadFile, // 0x00DB (219)
|
||||
(uint32)PANIC(0x00DC), // 0x00DC (220) NtReadFileScatter
|
||||
(uint32)&xboxkrnl::NtReleaseMutant, // 0x00DD (221)
|
||||
(uint32)&xboxkrnl::NtReleaseSemaphore, // 0x00DE (222)
|
||||
(uint32)PANIC(0x00DF), // 0x00DF (223) NtRemoveIoCompletion
|
||||
(uint32)&xboxkrnl::NtResumeThread, // 0x00E0 (224)
|
||||
(uint32)&xboxkrnl::NtSetEvent, // 0x00E1 (225)
|
||||
(uint32)&xboxkrnl::NtSetInformationFile, // 0x00E2 (226)
|
||||
(uint32)PANIC(0x00E3), // 0x00E3 (227) NtSetIoCompletion
|
||||
(uint32)&xboxkrnl::NtSetSystemTime, // 0x00E4 (228)
|
||||
(uint32)PANIC(0x00E5), // 0x00E5 (229) NtSetTimerEx
|
||||
(uint32)PANIC(0x00E6), // 0x00E6 (230) NtSignalAndWaitForSingleObjectEx
|
||||
(uint32)&xboxkrnl::NtSuspendThread, // 0x00E7 (231)
|
||||
(uint32)&xboxkrnl::NtUserIoApcDispatcher, // 0x00E8 (232)
|
||||
(uint32)PANIC(0x00E9), // 0x00E9 (233) NtWaitForSingleObject
|
||||
(uint32)&xboxkrnl::NtWaitForSingleObjectEx, // 0x00EA (234)
|
||||
(uint32)&xboxkrnl::NtWaitForMultipleObjectsEx, // 0x00EB (235)
|
||||
(uint32)&xboxkrnl::NtWriteFile, // 0x00EC (236)
|
||||
(uint32)PANIC(0x00ED), // 0x00ED (237) NtWriteFileGather
|
||||
(uint32)&xboxkrnl::NtYieldExecution, // 0x00EE (238)
|
||||
(uint32)PANIC(0x00EF), // 0x00EF (239) ObCreateObject
|
||||
(uint32)PANIC(0x00F0), // 0x00F0 (240) ObDirectoryObjectType
|
||||
(uint32)PANIC(0x00F1), // 0x00F1 (241) ObInsertObject
|
||||
(uint32)PANIC(0x00F2), // 0x00F2 (242) ObMakeTemporaryObject
|
||||
(uint32)PANIC(0x00F3), // 0x00F3 (243) ObOpenObjectByName
|
||||
(uint32)PANIC(0x00F4), // 0x00F4 (244) ObOpenObjectByPointer
|
||||
(uint32)PANIC(0x00F5), // 0x00F5 (245) ObpObjectHandleTable
|
||||
(uint32)PANIC(0x00F6), // 0x00F6 (246) ObReferenceObjectByHandle
|
||||
(uint32)PANIC(0x00F7), // 0x00F7 (247) ObReferenceObjectByName
|
||||
(uint32)PANIC(0x00F8), // 0x00F8 (248) ObReferenceObjectByPointer
|
||||
(uint32)PANIC(0x00F9), // 0x00F9 (249) ObSymbolicLinkObjectType
|
||||
(uint32)PANIC(0x00FA), // 0x00FA (250) ObfDereferenceObject
|
||||
(uint32)PANIC(0x00FB), // 0x00FB (251) ObfReferenceObject
|
||||
(uint32)PANIC(0x00FC), // 0x00FC (252) PhyGetLinkState
|
||||
(uint32)PANIC(0x00FD), // 0x00FD (253) PhyInitialize
|
||||
(uint32)PANIC(0x00FE), // 0x00FE (254) PsCreateSystemThread
|
||||
(uint32)&xboxkrnl::PsCreateSystemThreadEx, // 0x00FF (255)
|
||||
(uint32)PANIC(0x0100), // 0x0100 (256) PsQueryStatistics
|
||||
(uint32)PANIC(0x0101), // 0x0101 (257) PsSetCreateThreadNotifyRoutine
|
||||
(uint32)&xboxkrnl::PsTerminateSystemThread, // 0x0102 (258)
|
||||
(uint32)PANIC(0x0103), // 0x0103 (259) PsThreadObjectType
|
||||
(uint32)&xboxkrnl::RtlAnsiStringToUnicodeString,// 0x0104 (260)
|
||||
(uint32)PANIC(0x0105), // 0x0105 (261) RtlAppendStringToString
|
||||
(uint32)PANIC(0x0106), // 0x0106 (262) RtlAppendUnicodeStringToString
|
||||
(uint32)PANIC(0x0107), // 0x0107 (263) RtlAppendUnicodeToString
|
||||
(uint32)&xboxkrnl::RtlAssert, // 0x0108 (264)
|
||||
(uint32)PANIC(0x0109), // 0x0109 (265) RtlCaptureContext
|
||||
(uint32)PANIC(0x010A), // 0x010A (266) RtlCaptureStackBackTrace
|
||||
(uint32)PANIC(0x010B), // 0x010B (267) RtlCharToInteger
|
||||
(uint32)PANIC(0x010C), // 0x010C (268) RtlCompareMemory
|
||||
(uint32)PANIC(0x010D), // 0x010D (269) RtlCompareMemoryUlong
|
||||
(uint32)PANIC(0x010E), // 0x010E (270) RtlCompareString
|
||||
(uint32)PANIC(0x010F), // 0x010F (271) RtlCompareUnicodeString
|
||||
(uint32)PANIC(0x0110), // 0x0110 (272) RtlCopyString
|
||||
(uint32)PANIC(0x0111), // 0x0111 (273) RtlCopyUnicodeString
|
||||
(uint32)PANIC(0x0112), // 0x0112 (274) RtlCreateUnicodeString
|
||||
(uint32)PANIC(0x0113), // 0x0113 (275) RtlDowncaseUnicodeChar
|
||||
(uint32)PANIC(0x0114), // 0x0114 (276) RtlDowncaseUnicodeString
|
||||
(uint32)&xboxkrnl::RtlEnterCriticalSection, // 0x0115 (277)
|
||||
(uint32)PANIC(0x0116), // 0x0116 (278) RtlEnterCriticalSectionAndRegion
|
||||
(uint32)&xboxkrnl::RtlEqualString, // 0x0117 (279)
|
||||
(uint32)PANIC(0x0118), // 0x0118 (280) RtlEqualUnicodeString
|
||||
(uint32)PANIC(0x0119), // 0x0119 (281) RtlExtendedIntegerMultiply
|
||||
(uint32)PANIC(0x011A), // 0x011A (282) RtlExtendedLargeIntegerDivide
|
||||
(uint32)PANIC(0x011B), // 0x011B (283) RtlExtendedMagicDivide
|
||||
(uint32)PANIC(0x011C), // 0x011C (284) RtlFillMemory
|
||||
(uint32)PANIC(0x011D), // 0x011D (285) RtlFillMemoryUlong
|
||||
(uint32)xboxkrnl::RtlFreeAnsiString, // 0x011E (286)
|
||||
(uint32)PANIC(0x011F), // 0x011F (287) RtlFreeUnicodeString
|
||||
(uint32)PANIC(0x0120), // 0x0120 (288) RtlGetCallersAddress
|
||||
(uint32)&xboxkrnl::RtlInitAnsiString, // 0x0121 (289)
|
||||
(uint32)&xboxkrnl::RtlInitUnicodeString, // 0x0122 (290)
|
||||
(uint32)&xboxkrnl::RtlInitializeCriticalSection,// 0x0123 (291)
|
||||
(uint32)PANIC(0x0124), // 0x0124 (292) RtlIntegerToChar
|
||||
(uint32)PANIC(0x0125), // 0x0125 (293) RtlIntegerToUnicodeString
|
||||
(uint32)&xboxkrnl::RtlLeaveCriticalSection, // 0x0126 (294)
|
||||
(uint32)PANIC(0x0127), // 0x0127 (295) RtlLeaveCriticalSectionAndRegion
|
||||
(uint32)&xboxkrnl::RtlLowerChar, // 0x0128 (296)
|
||||
(uint32)PANIC(0x0129), // 0x0129 (297) RtlMapGenericMask
|
||||
(uint32)PANIC(0x012A), // 0x012A (298) RtlMoveMemory
|
||||
(uint32)PANIC(0x012B), // 0x012B (299) RtlMultiByteToUnicodeN
|
||||
(uint32)PANIC(0x012C), // 0x012C (300) RtlMultiByteToUnicodeSize
|
||||
(uint32)&xboxkrnl::RtlNtStatusToDosError, // 0x012D (301)
|
||||
(uint32)PANIC(0x012E), // 0x012E (302) RtlRaiseException
|
||||
(uint32)PANIC(0x012F), // 0x012F (303) RtlRaiseStatus
|
||||
(uint32)&xboxkrnl::RtlTimeFieldsToTime, // 0x0130 (304)
|
||||
(uint32)&xboxkrnl::RtlTimeToTimeFields, // 0x0131 (305)
|
||||
(uint32)&xboxkrnl::RtlTryEnterCriticalSection, // 0x0132 (306)
|
||||
(uint32)PANIC(0x0133), // 0x0133 (307) RtlUlongByteSwap
|
||||
(uint32)&xboxkrnl::RtlUnicodeStringToAnsiString,// 0x0134 (308)
|
||||
(uint32)PANIC(0x0135), // 0x0135 (309) RtlUnicodeStringToInteger
|
||||
(uint32)PANIC(0x0136), // 0x0136 (310) RtlUnicodeToMultiByteN
|
||||
(uint32)PANIC(0x0137), // 0x0137 (311) RtlUnicodeToMultiByteSize
|
||||
(uint32)PANIC(0x0138), // 0x0138 (312) RtlUnwind
|
||||
(uint32)PANIC(0x0139), // 0x0139 (313) RtlUpcaseUnicodeChar
|
||||
(uint32)PANIC(0x013A), // 0x013A (314) RtlUpcaseUnicodeString
|
||||
(uint32)PANIC(0x013B), // 0x013B (315) RtlUpcaseUnicodeToMultiByteN
|
||||
(uint32)PANIC(0x013C), // 0x013C (316) RtlUpperChar
|
||||
(uint32)PANIC(0x013D), // 0x013D (317) RtlUpperString
|
||||
(uint32)PANIC(0x013E), // 0x013E (318) RtlUshortByteSwap
|
||||
(uint32)PANIC(0x013F), // 0x013F (319) RtlWalkFrameChain
|
||||
(uint32)PANIC(0x0140), // 0x0140 (320) RtlZeroMemory
|
||||
(uint32)PANIC(0x0141), // 0x0141 (321) XboxEEPROMKey
|
||||
(uint32)&xboxkrnl::XboxHardwareInfo, // 0x0142 (322)
|
||||
(uint32)&xboxkrnl::XboxHDKey, // 0x0143 (323)
|
||||
(uint32)&xboxkrnl::XboxKrnlVersion, // 0x0144 (324) XboxKrnlVersion
|
||||
(uint32)&xboxkrnl::XboxSignatureKey, // 0x0145 (325)
|
||||
(uint32)&xboxkrnl::XeImageFileName, // 0x0146 (326) XeImageFileName
|
||||
(uint32)&xboxkrnl::XeLoadSection, // 0x0147 (327) XeLoadSection
|
||||
(uint32)&xboxkrnl::XeUnloadSection, // 0x0148 (328) XeUnloadSection
|
||||
(uint32)PANIC(0x0149), // 0x0149 (329) READ_PORT_BUFFER_UCHAR
|
||||
(uint32)PANIC(0x014A), // 0x014A (330) READ_PORT_BUFFER_USHORT
|
||||
(uint32)PANIC(0x014B), // 0x014B (331) READ_PORT_BUFFER_ULONG
|
||||
(uint32)PANIC(0x014C), // 0x014C (332) WRITE_PORT_BUFFER_UCHAR
|
||||
(uint32)PANIC(0x014D), // 0x014D (333) WRITE_PORT_BUFFER_USHORT
|
||||
(uint32)PANIC(0x014E), // 0x014E (334) WRITE_PORT_BUFFER_ULONG
|
||||
(uint32)&xboxkrnl::XcSHAInit, // 0x014F (335)
|
||||
(uint32)&xboxkrnl::XcSHAUpdate, // 0x0150 (336)
|
||||
(uint32)&xboxkrnl::XcSHAFinal, // 0x0151 (337)
|
||||
(uint32)PANIC(0x0152), // 0x0152 (338) XcRC4Key
|
||||
(uint32)PANIC(0x0153), // 0x0153 (339) XcRC4Crypt
|
||||
(uint32)PANIC(0x0154), // 0x0154 (340) XcHMAC
|
||||
(uint32)PANIC(0x0155), // 0x0155 (341) XcPKEncPublic
|
||||
(uint32)PANIC(0x0156), // 0x0156 (342) XcPKDecPrivate
|
||||
(uint32)PANIC(0x0157), // 0x0157 (343) XcPKGetKeyLen
|
||||
(uint32)PANIC(0x0158), // 0x0158 (344) XcVerifyPKCS1Signature
|
||||
(uint32)PANIC(0x0159), // 0x0159 (345) XcModExp
|
||||
(uint32)PANIC(0x015A), // 0x015A (346) XcDESKeyParity
|
||||
(uint32)PANIC(0x015B), // 0x015B (347) XcKeyTable
|
||||
(uint32)PANIC(0x015C), // 0x015C (348) XcBlockCrypt
|
||||
(uint32)PANIC(0x015D), // 0x015D (349) XcBlockCryptCBC
|
||||
(uint32)PANIC(0x015E), // 0x015E (350) XcCryptService
|
||||
(uint32)PANIC(0x015F), // 0x015F (351) XcUpdateCrypto
|
||||
(uint32)PANIC(0x0160), // 0x0160 (352) RtlRip
|
||||
(uint32)PANIC(0x0161), // 0x0161 (353) XboxLANKey
|
||||
(uint32)PANIC(0x0162), // 0x0162 (354) XboxAlternateSignatureKeys
|
||||
(uint32)PANIC(0x0163), // 0x0163 (355) XePublicKeyData
|
||||
(uint32)&xboxkrnl::HalBootSMCVideoMode, // 0x0164 (356)
|
||||
(uint32)PANIC(0x0165), // 0x0165 (357) IdexChannelObject
|
||||
(uint32)PANIC(0x0166), // 0x0166 (358) HalIsResetOrShutdownPending
|
||||
(uint32)PANIC(0x0167), // 0x0167 (359) IoMarkIrpMustComplete
|
||||
(uint32)PANIC(0x0168), // 0x0168 (360) HalInitiateShutdown
|
||||
(uint32)PANIC(0x0169), // 0x0169 (361) snprintf
|
||||
(uint32)PANIC(0x016A), // 0x016A (362) sprintf
|
||||
(uint32)PANIC(0x016B), // 0x016B (363) vsnprintf
|
||||
(uint32)PANIC(0x016C), // 0x016C (364) vsprintf
|
||||
(uint32)PANIC(0x016D), // 0x016D (365) HalEnableSecureTrayEject
|
||||
(uint32)PANIC(0x016E), // 0x016E (366) HalWriteSMCScratchRegister
|
||||
(uint32)PANIC(0x0000), // 0x0000 (0) NULL
|
||||
(uint32)FUNC(&xboxkrnl::AvGetSavedDataAddress), // 0x0001 (1)
|
||||
(uint32)FUNC(&xboxkrnl::AvSendTVEncoderOption), // 0x0002 (2)
|
||||
(uint32)PANIC(0x0003), // 0x0003 (3) AvSetDisplayMode
|
||||
(uint32)PANIC(0x0004), // 0x0004 (4) AvSetSavedDataAddress
|
||||
(uint32)PANIC(0x0005), // 0x0005 (5) DbgBreakPoint
|
||||
(uint32)PANIC(0x0006), // 0x0006 (6) DbgBreakPointWithStatus
|
||||
(uint32)PANIC(0x0007), // 0x0007 (7) DbgLoadImageSymbols
|
||||
(uint32)FUNC(&xboxkrnl::DbgPrint), // 0x0008 (8)
|
||||
(uint32)FUNC(&xboxkrnl::HalReadSMCTrayState), // 0x0009 (9)
|
||||
(uint32)PANIC(0x000A), // 0x000A (10) DbgPrompt
|
||||
(uint32)PANIC(0x000B), // 0x000B (11) DbgUnLoadImageSymbols
|
||||
(uint32)PANIC(0x000C), // 0x000C (12) ExAcquireReadWriteLockExclusive
|
||||
(uint32)PANIC(0x000D), // 0x000D (13) ExAcquireReadWriteLockShared
|
||||
(uint32)FUNC(&xboxkrnl::ExAllocatePool), // 0x000E (14)
|
||||
(uint32)FUNC(&xboxkrnl::ExAllocatePoolWithTag), // 0x000F (15)
|
||||
(uint32)VARIABLE(0x0010), // 0x0010 (16) ExEventObjectType
|
||||
(uint32)FUNC(&xboxkrnl::ExFreePool), // 0x0011 (17)
|
||||
(uint32)PANIC(0x0012), // 0x0012 (18) ExInitializeReadWriteLock
|
||||
(uint32)PANIC(0x0013), // 0x0013 (19) ExInterlockedAddLargeInteger
|
||||
(uint32)PANIC(0x0014), // 0x0014 (20) ExInterlockedAddLargeStatistic
|
||||
(uint32)PANIC(0x0015), // 0x0015 (21) ExInterlockedCompareExchange64
|
||||
(uint32)VARIABLE(0x0016), // 0x0016 (22) ExMutantObjectType
|
||||
(uint32)FUNC(&xboxkrnl::ExQueryPoolBlockSize), // 0x0017 (23)
|
||||
(uint32)FUNC(&xboxkrnl::ExQueryNonVolatileSetting), // 0x0018 (24)
|
||||
(uint32)FUNC(&xboxkrnl::ExReadWriteRefurbInfo), // 0x0019 (25)
|
||||
(uint32)PANIC(0x001A), // 0x001A (26) ExQueryPoolBlockSize
|
||||
(uint32)PANIC(0x001B), // 0x001B (27) ExRaiseStatus
|
||||
(uint32)PANIC(0x001C), // 0x001C (28) ExReleaseReadWriteLock
|
||||
(uint32)FUNC(&xboxkrnl::ExSaveNonVolatileSetting), // 0x001D (29)
|
||||
(uint32)VARIABLE(0x001E), // 0x001E (30) ExSemaphoreObjectType
|
||||
(uint32)VARIABLE(0x001F), // 0x001F (31) ExTimerObjectType
|
||||
(uint32)PANIC(0x0020), // 0x0020 (32) ExfInterlockedInsertHeadList
|
||||
(uint32)PANIC(0x0021), // 0x0021 (33) ExfInterlockedInsertTailList
|
||||
(uint32)PANIC(0x0022), // 0x0022 (34) ExfInterlockedRemoveHeadList
|
||||
(uint32)FUNC(&xboxkrnl::FscGetCacheSize), // 0x0023 (35)
|
||||
(uint32)PANIC(0x0024), // 0x0024 (36) FscInvalidateIdleBlocks
|
||||
(uint32)FUNC(&xboxkrnl::FscSetCacheSize), // 0x0025 (37)
|
||||
(uint32)PANIC(0x0026), // 0x0026 (38) HalClearSoftwareInterrupt
|
||||
(uint32)PANIC(0x0027), // 0x0027 (39) HalDisableSystemInterrupt
|
||||
(uint32)VARIABLE(&xboxkrnl::HalDiskCachePartitionCount), // 0x0028 (40) A.k.a. "IdexDiskPartitionPrefixBuffer"
|
||||
(uint32)VARIABLE(0x0029), // 0x0029 (41) HalDiskModelNumber
|
||||
(uint32)VARIABLE(0x002A), // 0x002A (42) HalDiskSerialNumber
|
||||
(uint32)PANIC(0x002B), // 0x002B (43) HalEnableSystemInterrupt
|
||||
(uint32)FUNC(&xboxkrnl::HalGetInterruptVector), // 0x002C (44)
|
||||
(uint32)FUNC(&xboxkrnl::HalReadSMBusValue), // 0x002D (45)
|
||||
(uint32)PANIC(0x002E), // 0x002E (46) HalReadWritePCISpace
|
||||
(uint32)FUNC(&xboxkrnl::HalRegisterShutdownNotification), // 0x002F (47)
|
||||
(uint32)PANIC(0x0030), // 0x0030 (48) HalRequestSoftwareInterrupt
|
||||
(uint32)FUNC(&xboxkrnl::HalReturnToFirmware), // 0x0031 (49)
|
||||
(uint32)FUNC(&xboxkrnl::HalWriteSMBusValue), // 0x0032 (50)
|
||||
(uint32)PANIC(0x0033), // 0x0033 (51) InterlockedCompareExchange
|
||||
(uint32)PANIC(0x0034), // 0x0034 (52) InterlockedDecrement
|
||||
(uint32)PANIC(0x0035), // 0x0035 (53) InterlockedIncrement
|
||||
(uint32)PANIC(0x0036), // 0x0036 (54) InterlockedExchange
|
||||
(uint32)PANIC(0x0037), // 0x0037 (55) InterlockedExchangeAdd
|
||||
(uint32)PANIC(0x0038), // 0x0038 (56) InterlockedFlushSList
|
||||
(uint32)PANIC(0x0039), // 0x0039 (57) InterlockedPopEntrySList
|
||||
(uint32)PANIC(0x003A), // 0x003A (58) InterlockedPushEntrySList
|
||||
(uint32)PANIC(0x003B), // 0x003B (59) IoAllocateIrp
|
||||
(uint32)PANIC(0x003C), // 0x003C (60) IoBuildAsynchronousFsdRequest
|
||||
(uint32)PANIC(0x003D), // 0x003D (61) IoBuildDeviceIoControlRequest
|
||||
(uint32)PANIC(0x003E), // 0x003E (62) IoBuildSynchronousFsdRequest
|
||||
(uint32)PANIC(0x003F), // 0x003F (63) IoCheckShareAccess
|
||||
(uint32)VARIABLE(0x0040), // 0x0040 (64) IoCompletionObjectType
|
||||
(uint32)PANIC(0x0041), // 0x0041 (65) IoCreateDevice
|
||||
(uint32)FUNC(&xboxkrnl::IoCreateFile), // 0x0042 (66)
|
||||
(uint32)FUNC(&xboxkrnl::IoCreateSymbolicLink), // 0x0043 (67)
|
||||
(uint32)PANIC(0x0044), // 0x0044 (68) IoDeleteDevice
|
||||
(uint32)FUNC(&xboxkrnl::IoDeleteSymbolicLink), // 0x0045 (69)
|
||||
(uint32)VARIABLE(0x0046), // 0x0046 (70) IoDeviceObjectType
|
||||
(uint32)VARIABLE(0x0047), // 0x0047 (71) IoFileObjectType
|
||||
(uint32)PANIC(0x0048), // 0x0048 (72) IoFreeIrp
|
||||
(uint32)PANIC(0x0049), // 0x0049 (73) IoInitializeIrp
|
||||
(uint32)PANIC(0x004A), // 0x004A (74) IoInvalidDeviceRequest
|
||||
(uint32)PANIC(0x004B), // 0x004B (75) IoQueryFileInformation
|
||||
(uint32)PANIC(0x004C), // 0x004C (76) IoQueryVolumeInformation
|
||||
(uint32)PANIC(0x004D), // 0x004D (77) IoQueueThreadIrp
|
||||
(uint32)PANIC(0x004E), // 0x004E (78) IoRemoveShareAccess
|
||||
(uint32)PANIC(0x004F), // 0x004F (79) IoSetIoCompletion
|
||||
(uint32)PANIC(0x0050), // 0x0050 (80) IoSetShareAccess
|
||||
(uint32)PANIC(0x0051), // 0x0051 (81) IoStartNextPacket
|
||||
(uint32)PANIC(0x0052), // 0x0052 (82) IoStartNextPacketByKey
|
||||
(uint32)PANIC(0x0053), // 0x0053 (83) IoStartPacket
|
||||
(uint32)PANIC(0x0054), // 0x0054 (84) IoSynchronousDeviceIoControlRequest
|
||||
(uint32)PANIC(0x0055), // 0x0055 (85) IoSynchronousFsdRequest
|
||||
(uint32)PANIC(0x0056), // 0x0056 (86) IofCallDriver
|
||||
(uint32)PANIC(0x0057), // 0x0057 (87) IofCompleteRequest
|
||||
(uint32)VARIABLE(0x0058), // 0x0058 (88) KdDebuggerEnabled
|
||||
(uint32)VARIABLE(0x0059), // 0x0059 (89) KdDebuggerNotPresent
|
||||
(uint32)PANIC(0x005A), // 0x005A (90) IoDismountVolume
|
||||
(uint32)FUNC(&xboxkrnl::IoDismountVolumeByName), // 0x005B (91)
|
||||
(uint32)PANIC(0x005C), // 0x005C (92) KeAlertResumeThread
|
||||
(uint32)PANIC(0x005D), // 0x005D (93) KeAlertThread
|
||||
(uint32)PANIC(0x005E), // 0x005E (94) KeBoostPriorityThread
|
||||
(uint32)FUNC(&xboxkrnl::KeBugCheck), // 0x005F (95)
|
||||
(uint32)PANIC(0x0060), // 0x0060 (96) KeBugCheckEx
|
||||
(uint32)PANIC(0x0061), // 0x0061 (97) KeCancelTimer
|
||||
(uint32)FUNC(&xboxkrnl::KeConnectInterrupt), // 0x0062 (98)
|
||||
(uint32)FUNC(&xboxkrnl::KeDelayExecutionThread), // 0x0063 (99)
|
||||
(uint32)PANIC(0x0064), // 0x0064 (100) KeDisconnectInterrupt
|
||||
(uint32)PANIC(0x0065), // 0x0065 (101) KeEnterCriticalRegion
|
||||
(uint32)VARIABLE(0x0066), // 0x0066 (102) MmGlobalData
|
||||
(uint32)PANIC(0x0067), // 0x0067 (103) KeGetCurrentIrql
|
||||
(uint32)PANIC(0x0068), // 0x0068 (104) KeGetCurrentThread
|
||||
(uint32)PANIC(0x0069), // 0x0069 (105) KeInitializeApc
|
||||
(uint32)PANIC(0x006A), // 0x006A (106) KeInitializeDeviceQueue
|
||||
(uint32)FUNC(&xboxkrnl::KeInitializeDpc), // 0x006B (107)
|
||||
(uint32)PANIC(0x006C), // 0x006C (108) KeInitializeEvent
|
||||
(uint32)FUNC(&xboxkrnl::KeInitializeInterrupt), // 0x006D (109)
|
||||
(uint32)PANIC(0x006E), // 0x006E (110) KeInitializeMutant
|
||||
(uint32)PANIC(0x006F), // 0x006F (111) KeInitializeQueue
|
||||
(uint32)PANIC(0x0070), // 0x0070 (112) KeInitializeSemaphore
|
||||
(uint32)FUNC(&xboxkrnl::KeInitializeTimerEx), // 0x0071 (113)
|
||||
(uint32)PANIC(0x0072), // 0x0072 (114) KeInsertByKeyDeviceQueue
|
||||
(uint32)PANIC(0x0073), // 0x0073 (115) KeInsertDeviceQueue
|
||||
(uint32)PANIC(0x0074), // 0x0074 (116) KeInsertHeadQueue
|
||||
(uint32)PANIC(0x0075), // 0x0075 (117) KeInsertQueue
|
||||
(uint32)PANIC(0x0076), // 0x0076 (118) KeInsertQueueApc
|
||||
(uint32)PANIC(0x0077), // 0x0077 (119) KeInsertQueueDpc
|
||||
(uint32)VARIABLE(0x0078), // 0x0078 (120) KeInterruptTime
|
||||
(uint32)PANIC(0x0079), // 0x0079 (121) KeIsExecutingDpc
|
||||
(uint32)PANIC(0x007A), // 0x007A (122) KeLeaveCriticalRegion
|
||||
(uint32)PANIC(0x007B), // 0x007B (123) KePulseEvent
|
||||
(uint32)PANIC(0x007C), // 0x007C (124) KeQueryBasePriorityThread
|
||||
(uint32)PANIC(0x007D), // 0x007D (125) KeQueryInterruptTime
|
||||
(uint32)FUNC(&xboxkrnl::KeQueryPerformanceCounter), // 0x007E (126)
|
||||
(uint32)FUNC(&xboxkrnl::KeQueryPerformanceFrequency), // 0x007F (127)
|
||||
(uint32)FUNC(&xboxkrnl::KeQuerySystemTime), // 0x0080 (128)
|
||||
(uint32)FUNC(&xboxkrnl::KeRaiseIrqlToDpcLevel), // 0x0081 (129)
|
||||
(uint32)PANIC(0x0082), // 0x0082 (130) KeRaiseIrqlToSynchLevel
|
||||
(uint32)PANIC(0x0083), // 0x0083 (131) KeRaiseIrqlToSynchLevel
|
||||
(uint32)PANIC(0x0084), // 0x0084 (132) KeReleaseSemaphore
|
||||
(uint32)PANIC(0x0085), // 0x0085 (133) KeRemoveByKeyDeviceQueue
|
||||
(uint32)PANIC(0x0086), // 0x0086 (134) KeRemoveDeviceQueue
|
||||
(uint32)PANIC(0x0087), // 0x0087 (135) KeRemoveEntryDeviceQueue
|
||||
(uint32)PANIC(0x0088), // 0x0088 (136) KeRemoveQueue
|
||||
(uint32)PANIC(0x0089), // 0x0089 (137) KeRemoveQueueDpc
|
||||
(uint32)PANIC(0x008A), // 0x008A (138) KeResetEvent
|
||||
(uint32)PANIC(0x008B), // 0x008B (139) KeRestoreFloatingPointState
|
||||
(uint32)PANIC(0x008C), // 0x008C (140) KeResumeThread
|
||||
(uint32)PANIC(0x008D), // 0x008D (141) KeRundownQueue
|
||||
(uint32)PANIC(0x008E), // 0x008E (142) KeSaveFloatingPointState
|
||||
(uint32)PANIC(0x008F), // 0x008F (143) KeSetBasePriorityThread
|
||||
(uint32)PANIC(0x0090), // 0x0090 (144) KeSetDisableBoostThread
|
||||
(uint32)PANIC(0x0091), // 0x0091 (145) KeSetEvent
|
||||
(uint32)PANIC(0x0092), // 0x0092 (146) KeSetEventBoostPriority
|
||||
(uint32)PANIC(0x0093), // 0x0093 (147) KeSetPriorityProcess
|
||||
(uint32)PANIC(0x0094), // 0x0094 (148) KeSetPriorityThread
|
||||
(uint32)FUNC(&xboxkrnl::KeSetTimer), // 0x0095 (149)
|
||||
(uint32)FUNC(&xboxkrnl::KeSetTimerEx), // 0x0096 (150)
|
||||
(uint32)PANIC(0x0097), // 0x0097 (151) KeStallExecutionProcessor
|
||||
(uint32)PANIC(0x0098), // 0x0098 (152) KeSuspendThread
|
||||
(uint32)PANIC(0x0099), // 0x0099 (153) KeSynchronizeExecution
|
||||
(uint32)VARIABLE(0x009A), // 0x009A (154) KeSystemTime
|
||||
(uint32)PANIC(0x009B), // 0x009B (155) KeTestAlertThread
|
||||
(uint32)VARIABLE(&xboxkrnl::KeTickCount), // 0x009C (156)
|
||||
(uint32)VARIABLE(0x009D), // 0x009D (157) KeTimeIncrement
|
||||
(uint32)FUNC(&xboxkrnl::KeWaitForMultipleObjects), // 0x009E (158)
|
||||
(uint32)FUNC(&xboxkrnl::KeWaitForSingleObject), // 0x009F (159)
|
||||
(uint32)FUNC(&xboxkrnl::KfRaiseIrql), // 0x00A0 (160)
|
||||
(uint32)FUNC(&xboxkrnl::KfLowerIrql), // 0x00A1 (161)
|
||||
(uint32)VARIABLE(0x00A2), // 0x00A2 (162) KiBugCheckData
|
||||
(uint32)PANIC(0x00A3), // 0x00A3 (163) KiUnlockDispatcherDatabase
|
||||
(uint32)VARIABLE(&xboxkrnl::LaunchDataPage), // 0x00A4 (164)
|
||||
(uint32)FUNC(&xboxkrnl::MmAllocateContiguousMemory), // 0x00A5 (165)
|
||||
(uint32)FUNC(&xboxkrnl::MmAllocateContiguousMemoryEx), // 0x00A6 (166)
|
||||
(uint32)FUNC(&xboxkrnl::MmAllocateSystemMemory), // 0x00A7 (167)
|
||||
(uint32)PANIC(0x00A8), // 0x00A8 (168) MmClaimGpuInstanceMemory
|
||||
(uint32)FUNC(&xboxkrnl::MmCreateKernelStack), // 0x00A9 (169)
|
||||
(uint32)FUNC(&xboxkrnl::MmDeleteKernelStack), // 0x00AA (170)
|
||||
(uint32)FUNC(&xboxkrnl::MmFreeContiguousMemory), // 0x00AB (171)
|
||||
(uint32)FUNC(&xboxkrnl::MmFreeSystemMemory), // 0x00AC (172)
|
||||
(uint32)PANIC(0x00AD), // 0x00AD (173) MmGetPhysicalAddress
|
||||
(uint32)PANIC(0x00AE), // 0x00AE (174) MmIsAddressValid
|
||||
(uint32)FUNC(&xboxkrnl::MmLockUnlockBufferPages), // 0x00AF (175)
|
||||
(uint32)PANIC(0x00B0), // 0x00B0 (176) MmLockUnlockPhysicalPage
|
||||
(uint32)FUNC(&xboxkrnl::MmMapIoSpace), // 0x00B1 (177)
|
||||
(uint32)FUNC(&xboxkrnl::MmPersistContiguousMemory), // 0x00B2 (178)
|
||||
(uint32)PANIC(0x00B3), // 0x00B3 (179) MmQueryAddressProtect
|
||||
(uint32)FUNC(&xboxkrnl::MmQueryAllocationSize), // 0x00B4 (180)
|
||||
(uint32)FUNC(&xboxkrnl::MmQueryStatistics), // 0x00B5 (181)
|
||||
(uint32)FUNC(&xboxkrnl::MmSetAddressProtect), // 0x00B6 (182)
|
||||
(uint32)FUNC(&xboxkrnl::MmUnmapIoSpace), // 0x00B7 (183)
|
||||
(uint32)FUNC(&xboxkrnl::NtAllocateVirtualMemory), // 0x00B8 (184)
|
||||
(uint32)PANIC(0x00B9), // 0x00B9 (185) NtCancelTimer
|
||||
(uint32)FUNC(&xboxkrnl::NtClearEvent), // 0x00BA (186)
|
||||
(uint32)FUNC(&xboxkrnl::NtClose), // 0x00BB (187)
|
||||
(uint32)FUNC(&xboxkrnl::NtCreateDirectoryObject), // 0x00BC (188)
|
||||
(uint32)FUNC(&xboxkrnl::NtCreateEvent), // 0x00BD (189)
|
||||
(uint32)FUNC(&xboxkrnl::NtCreateFile), // 0x00BE (190)
|
||||
(uint32)PANIC(0x00BF), // 0x00BF (191) NtCreateIoCompletion
|
||||
(uint32)FUNC(&xboxkrnl::NtCreateMutant), // 0x00C0 (192)
|
||||
(uint32)FUNC(&xboxkrnl::NtCreateSemaphore), // 0x00C1 (193)
|
||||
(uint32)PANIC(0x00C2), // 0x00C2 (194) NtCreateTimer
|
||||
(uint32)PANIC(0x00C3), // 0x00C3 (195) NtDeleteFile
|
||||
(uint32)FUNC(&xboxkrnl::NtDeviceIoControlFile), // 0x00C4 (196)
|
||||
(uint32)FUNC(&xboxkrnl::NtDuplicateObject), // 0x00C5 (197)
|
||||
(uint32)FUNC(&xboxkrnl::NtFlushBuffersFile), // 0x00C6 (198)
|
||||
(uint32)FUNC(&xboxkrnl::NtFreeVirtualMemory), // 0x00C7 (199)
|
||||
(uint32)PANIC(0x00C8), // 0x00C8 (200) NtFsControlFile
|
||||
(uint32)PANIC(0x00C9), // 0x00C9 (201) NtOpenDirectoryObject
|
||||
(uint32)FUNC(&xboxkrnl::NtOpenFile), // 0x00CA (202)
|
||||
(uint32)FUNC(&xboxkrnl::NtOpenSymbolicLinkObject), // 0x00CB (203)
|
||||
(uint32)FUNC(&xboxkrnl::NtProtectVirtualMemory), // 0x00CC (204)
|
||||
(uint32)PANIC(0x00CD), // 0x00CD (205) NtPulseEvent
|
||||
(uint32)FUNC(&xboxkrnl::NtQueueApcThread), // 0x00CE (206)
|
||||
(uint32)FUNC(&xboxkrnl::NtQueryDirectoryFile), // 0x00CF (207)
|
||||
(uint32)PANIC(0x00D0), // 0x00D0 (208) NtQueryDirectoryObject
|
||||
(uint32)PANIC(0x00D1), // 0x00D1 (209) NtQueryEvent
|
||||
(uint32)FUNC(&xboxkrnl::NtQueryFullAttributesFile), // 0x00D2 (210)
|
||||
(uint32)FUNC(&xboxkrnl::NtQueryInformationFile), // 0x00D3 (211)
|
||||
(uint32)PANIC(0x00D4), // 0x00D4 (212) NtQueryIoCompletion
|
||||
(uint32)PANIC(0x00D5), // 0x00D5 (213) NtQueryMutant
|
||||
(uint32)PANIC(0x00D6), // 0x00D6 (214) NtQuerySemaphore
|
||||
(uint32)FUNC(&xboxkrnl::NtQuerySymbolicLinkObject), // 0x00D7 (215)
|
||||
(uint32)PANIC(0x00D8), // 0x00D8 (216) NtQueryTimer
|
||||
(uint32)FUNC(&xboxkrnl::NtQueryVirtualMemory), // 0x00D9 (217)
|
||||
(uint32)FUNC(&xboxkrnl::NtQueryVolumeInformationFile), // 0x00DA (218)
|
||||
(uint32)FUNC(&xboxkrnl::NtReadFile), // 0x00DB (219)
|
||||
(uint32)PANIC(0x00DC), // 0x00DC (220) NtReadFileScatter
|
||||
(uint32)FUNC(&xboxkrnl::NtReleaseMutant), // 0x00DD (221)
|
||||
(uint32)FUNC(&xboxkrnl::NtReleaseSemaphore), // 0x00DE (222)
|
||||
(uint32)PANIC(0x00DF), // 0x00DF (223) NtRemoveIoCompletion
|
||||
(uint32)FUNC(&xboxkrnl::NtResumeThread), // 0x00E0 (224)
|
||||
(uint32)FUNC(&xboxkrnl::NtSetEvent), // 0x00E1 (225)
|
||||
(uint32)FUNC(&xboxkrnl::NtSetInformationFile), // 0x00E2 (226)
|
||||
(uint32)PANIC(0x00E3), // 0x00E3 (227) NtSetIoCompletion
|
||||
(uint32)FUNC(&xboxkrnl::NtSetSystemTime), // 0x00E4 (228)
|
||||
(uint32)PANIC(0x00E5), // 0x00E5 (229) NtSetTimerEx
|
||||
(uint32)PANIC(0x00E6), // 0x00E6 (230) NtSignalAndWaitForSingleObjectEx
|
||||
(uint32)FUNC(&xboxkrnl::NtSuspendThread), // 0x00E7 (231)
|
||||
(uint32)FUNC(&xboxkrnl::NtUserIoApcDispatcher), // 0x00E8 (232)
|
||||
(uint32)PANIC(0x00E9), // 0x00E9 (233) NtWaitForSingleObject
|
||||
(uint32)FUNC(&xboxkrnl::NtWaitForSingleObjectEx), // 0x00EA (234)
|
||||
(uint32)FUNC(&xboxkrnl::NtWaitForMultipleObjectsEx), // 0x00EB (235)
|
||||
(uint32)FUNC(&xboxkrnl::NtWriteFile), // 0x00EC (236)
|
||||
(uint32)PANIC(0x00ED), // 0x00ED (237) NtWriteFileGather
|
||||
(uint32)FUNC(&xboxkrnl::NtYieldExecution), // 0x00EE (238)
|
||||
(uint32)PANIC(0x00EF), // 0x00EF (239) ObCreateObject
|
||||
(uint32)VARIABLE(0x00F0), // 0x00F0 (240) ObDirectoryObjectType
|
||||
(uint32)PANIC(0x00F1), // 0x00F1 (241) ObInsertObject
|
||||
(uint32)PANIC(0x00F2), // 0x00F2 (242) ObMakeTemporaryObject
|
||||
(uint32)PANIC(0x00F3), // 0x00F3 (243) ObOpenObjectByName
|
||||
(uint32)PANIC(0x00F4), // 0x00F4 (244) ObOpenObjectByPointer
|
||||
(uint32)VARIABLE(0x00F5), // 0x00F5 (245) ObpObjectHandleTable
|
||||
(uint32)PANIC(0x00F6), // 0x00F6 (246) ObReferenceObjectByHandle
|
||||
(uint32)PANIC(0x00F7), // 0x00F7 (247) ObReferenceObjectByName
|
||||
(uint32)PANIC(0x00F8), // 0x00F8 (248) ObReferenceObjectByPointer
|
||||
(uint32)VARIABLE(0x00F9), // 0x00F9 (249) ObSymbolicLinkObjectType
|
||||
(uint32)PANIC(0x00FA), // 0x00FA (250) ObfDereferenceObject
|
||||
(uint32)PANIC(0x00FB), // 0x00FB (251) ObfReferenceObject
|
||||
(uint32)PANIC(0x00FC), // 0x00FC (252) PhyGetLinkState
|
||||
(uint32)PANIC(0x00FD), // 0x00FD (253) PhyInitialize
|
||||
(uint32)PANIC(0x00FE), // 0x00FE (254) PsCreateSystemThread
|
||||
(uint32)FUNC(&xboxkrnl::PsCreateSystemThreadEx), // 0x00FF (255)
|
||||
(uint32)PANIC(0x0100), // 0x0100 (256) PsQueryStatistics
|
||||
(uint32)PANIC(0x0101), // 0x0101 (257) PsSetCreateThreadNotifyRoutine
|
||||
(uint32)FUNC(&xboxkrnl::PsTerminateSystemThread), // 0x0102 (258)
|
||||
(uint32)PANIC(0x0103), // 0x0103 (259) PsThreadObjectType
|
||||
(uint32)FUNC(&xboxkrnl::RtlAnsiStringToUnicodeString), // 0x0104 (260)
|
||||
(uint32)PANIC(0x0105), // 0x0105 (261) RtlAppendStringToString
|
||||
(uint32)PANIC(0x0106), // 0x0106 (262) RtlAppendUnicodeStringToString
|
||||
(uint32)PANIC(0x0107), // 0x0107 (263) RtlAppendUnicodeToString
|
||||
(uint32)FUNC(&xboxkrnl::RtlAssert), // 0x0108 (264)
|
||||
(uint32)PANIC(0x0109), // 0x0109 (265) RtlCaptureContext
|
||||
(uint32)PANIC(0x010A), // 0x010A (266) RtlCaptureStackBackTrace
|
||||
(uint32)PANIC(0x010B), // 0x010B (267) RtlCharToInteger
|
||||
(uint32)PANIC(0x010C), // 0x010C (268) RtlCompareMemory
|
||||
(uint32)PANIC(0x010D), // 0x010D (269) RtlCompareMemoryUlong
|
||||
(uint32)PANIC(0x010E), // 0x010E (270) RtlCompareString
|
||||
(uint32)PANIC(0x010F), // 0x010F (271) RtlCompareUnicodeString
|
||||
(uint32)PANIC(0x0110), // 0x0110 (272) RtlCopyString
|
||||
(uint32)PANIC(0x0111), // 0x0111 (273) RtlCopyUnicodeString
|
||||
(uint32)PANIC(0x0112), // 0x0112 (274) RtlCreateUnicodeString
|
||||
(uint32)PANIC(0x0113), // 0x0113 (275) RtlDowncaseUnicodeChar
|
||||
(uint32)PANIC(0x0114), // 0x0114 (276) RtlDowncaseUnicodeString
|
||||
(uint32)FUNC(&xboxkrnl::RtlEnterCriticalSection), // 0x0115 (277)
|
||||
(uint32)PANIC(0x0116), // 0x0116 (278) RtlEnterCriticalSectionAndRegion
|
||||
(uint32)FUNC(&xboxkrnl::RtlEqualString), // 0x0117 (279)
|
||||
(uint32)PANIC(0x0118), // 0x0118 (280) RtlEqualUnicodeString
|
||||
(uint32)PANIC(0x0119), // 0x0119 (281) RtlExtendedIntegerMultiply
|
||||
(uint32)PANIC(0x011A), // 0x011A (282) RtlExtendedLargeIntegerDivide
|
||||
(uint32)PANIC(0x011B), // 0x011B (283) RtlExtendedMagicDivide
|
||||
(uint32)PANIC(0x011C), // 0x011C (284) RtlFillMemory
|
||||
(uint32)PANIC(0x011D), // 0x011D (285) RtlFillMemoryUlong
|
||||
(uint32)FUNC(&xboxkrnl::RtlFreeAnsiString), // 0x011E (286)
|
||||
(uint32)PANIC(0x011F), // 0x011F (287) RtlFreeUnicodeString
|
||||
(uint32)PANIC(0x0120), // 0x0120 (288) RtlGetCallersAddress
|
||||
(uint32)FUNC(&xboxkrnl::RtlInitAnsiString), // 0x0121 (289)
|
||||
(uint32)FUNC(&xboxkrnl::RtlInitUnicodeString), // 0x0122 (290)
|
||||
(uint32)FUNC(&xboxkrnl::RtlInitializeCriticalSection), // 0x0123 (291)
|
||||
(uint32)PANIC(0x0124), // 0x0124 (292) RtlIntegerToChar
|
||||
(uint32)PANIC(0x0125), // 0x0125 (293) RtlIntegerToUnicodeString
|
||||
(uint32)FUNC(&xboxkrnl::RtlLeaveCriticalSection), // 0x0126 (294)
|
||||
(uint32)PANIC(0x0127), // 0x0127 (295) RtlLeaveCriticalSectionAndRegion
|
||||
(uint32)FUNC(&xboxkrnl::RtlLowerChar), // 0x0128 (296)
|
||||
(uint32)PANIC(0x0129), // 0x0129 (297) RtlMapGenericMask
|
||||
(uint32)PANIC(0x012A), // 0x012A (298) RtlMoveMemory
|
||||
(uint32)PANIC(0x012B), // 0x012B (299) RtlMultiByteToUnicodeN
|
||||
(uint32)PANIC(0x012C), // 0x012C (300) RtlMultiByteToUnicodeSize
|
||||
(uint32)FUNC(&xboxkrnl::RtlNtStatusToDosError), // 0x012D (301)
|
||||
(uint32)PANIC(0x012E), // 0x012E (302) RtlRaiseException
|
||||
(uint32)PANIC(0x012F), // 0x012F (303) RtlRaiseStatus
|
||||
(uint32)FUNC(&xboxkrnl::RtlTimeFieldsToTime), // 0x0130 (304)
|
||||
(uint32)FUNC(&xboxkrnl::RtlTimeToTimeFields), // 0x0131 (305)
|
||||
(uint32)FUNC(&xboxkrnl::RtlTryEnterCriticalSection), // 0x0132 (306)
|
||||
(uint32)PANIC(0x0133), // 0x0133 (307) RtlUlongByteSwap
|
||||
(uint32)FUNC(&xboxkrnl::RtlUnicodeStringToAnsiString), // 0x0134 (308)
|
||||
(uint32)PANIC(0x0135), // 0x0135 (309) RtlUnicodeStringToInteger
|
||||
(uint32)PANIC(0x0136), // 0x0136 (310) RtlUnicodeToMultiByteN
|
||||
(uint32)PANIC(0x0137), // 0x0137 (311) RtlUnicodeToMultiByteSize
|
||||
(uint32)PANIC(0x0138), // 0x0138 (312) RtlUnwind
|
||||
(uint32)PANIC(0x0139), // 0x0139 (313) RtlUpcaseUnicodeChar
|
||||
(uint32)PANIC(0x013A), // 0x013A (314) RtlUpcaseUnicodeString
|
||||
(uint32)PANIC(0x013B), // 0x013B (315) RtlUpcaseUnicodeToMultiByteN
|
||||
(uint32)PANIC(0x013C), // 0x013C (316) RtlUpperChar
|
||||
(uint32)PANIC(0x013D), // 0x013D (317) RtlUpperString
|
||||
(uint32)PANIC(0x013E), // 0x013E (318) RtlUshortByteSwap
|
||||
(uint32)PANIC(0x013F), // 0x013F (319) RtlWalkFrameChain
|
||||
(uint32)PANIC(0x0140), // 0x0140 (320) RtlZeroMemory
|
||||
(uint32)VARIABLE(0x0141), // 0x0141 (321) XboxEEPROMKey
|
||||
(uint32)VARIABLE(&xboxkrnl::XboxHardwareInfo), // 0x0142 (322)
|
||||
(uint32)VARIABLE(&xboxkrnl::XboxHDKey), // 0x0143 (323)
|
||||
(uint32)VARIABLE(&xboxkrnl::XboxKrnlVersion), // 0x0144 (324)
|
||||
(uint32)VARIABLE(&xboxkrnl::XboxSignatureKey), // 0x0145 (325)
|
||||
(uint32)VARIABLE(&xboxkrnl::XeImageFileName), // 0x0146 (326)
|
||||
(uint32)FUNC(&xboxkrnl::XeLoadSection), // 0x0147 (327)
|
||||
(uint32)FUNC(&xboxkrnl::XeUnloadSection), // 0x0148 (328)
|
||||
(uint32)PANIC(0x0149), // 0x0149 (329) READ_PORT_BUFFER_UCHAR
|
||||
(uint32)PANIC(0x014A), // 0x014A (330) READ_PORT_BUFFER_USHORT
|
||||
(uint32)PANIC(0x014B), // 0x014B (331) READ_PORT_BUFFER_ULONG
|
||||
(uint32)PANIC(0x014C), // 0x014C (332) WRITE_PORT_BUFFER_UCHAR
|
||||
(uint32)PANIC(0x014D), // 0x014D (333) WRITE_PORT_BUFFER_USHORT
|
||||
(uint32)PANIC(0x014E), // 0x014E (334) WRITE_PORT_BUFFER_ULONG
|
||||
(uint32)FUNC(&xboxkrnl::XcSHAInit), // 0x014F (335)
|
||||
(uint32)FUNC(&xboxkrnl::XcSHAUpdate), // 0x0150 (336)
|
||||
(uint32)FUNC(&xboxkrnl::XcSHAFinal), // 0x0151 (337)
|
||||
(uint32)PANIC(0x0152), // 0x0152 (338) XcRC4Key
|
||||
(uint32)PANIC(0x0153), // 0x0153 (339) XcRC4Crypt
|
||||
(uint32)PANIC(0x0154), // 0x0154 (340) XcHMAC
|
||||
(uint32)PANIC(0x0155), // 0x0155 (341) XcPKEncPublic
|
||||
(uint32)PANIC(0x0156), // 0x0156 (342) XcPKDecPrivate
|
||||
(uint32)PANIC(0x0157), // 0x0157 (343) XcPKGetKeyLen
|
||||
(uint32)PANIC(0x0158), // 0x0158 (344) XcVerifyPKCS1Signature
|
||||
(uint32)PANIC(0x0159), // 0x0159 (345) XcModExp
|
||||
(uint32)PANIC(0x015A), // 0x015A (346) XcDESKeyParity
|
||||
(uint32)PANIC(0x015B), // 0x015B (347) XcKeyTable
|
||||
(uint32)PANIC(0x015C), // 0x015C (348) XcBlockCrypt
|
||||
(uint32)PANIC(0x015D), // 0x015D (349) XcBlockCryptCBC
|
||||
(uint32)PANIC(0x015E), // 0x015E (350) XcCryptService
|
||||
(uint32)PANIC(0x015F), // 0x015F (351) XcUpdateCrypto
|
||||
(uint32)PANIC(0x0160), // 0x0160 (352) RtlRip
|
||||
(uint32)VARIABLE(0x0161), // 0x0161 (353) XboxLANKey
|
||||
(uint32)VARIABLE(0x0162), // 0x0162 (354) XboxAlternateSignatureKeys
|
||||
(uint32)VARIABLE(0x0163), // 0x0163 (355) XePublicKeyData
|
||||
(uint32)VARIABLE(&xboxkrnl::HalBootSMCVideoMode), // 0x0164 (356)
|
||||
(uint32)VARIABLE(0x0165), // 0x0165 (357) IdexChannelObject
|
||||
(uint32)PANIC(0x0166), // 0x0166 (358) HalIsResetOrShutdownPending
|
||||
(uint32)PANIC(0x0167), // 0x0167 (359) IoMarkIrpMustComplete
|
||||
(uint32)PANIC(0x0168), // 0x0168 (360) HalInitiateShutdown
|
||||
(uint32)PANIC(0x0169), // 0x0169 (361) RtlSnprintf
|
||||
(uint32)PANIC(0x016A), // 0x016A (362) RtlSprintf
|
||||
(uint32)PANIC(0x016B), // 0x016B (363) RtlVsnprintf
|
||||
(uint32)PANIC(0x016C), // 0x016C (364) RtlVsprintf
|
||||
(uint32)PANIC(0x016D), // 0x016D (365) HalEnableSecureTrayEject
|
||||
(uint32)PANIC(0x016E), // 0x016E (366) HalWriteSMCScratchRegister
|
||||
(uint32)PANIC(0x016F), // 0x016F (367) UnknownAPI367
|
||||
(uint32)PANIC(0x0170), // 0x0170 (368) UnknownAPI368
|
||||
(uint32)PANIC(0x0171), // 0x0171 (369) UnknownAPI369
|
||||
(uint32)PANIC(0x0172), // 0x0172 (370) UnknownAPI370
|
||||
(uint32)PANIC(0x0173), // 0x0173 (371) UnknownAPI371
|
||||
(uint32)PANIC(0x0174), // 0x0174 (372) UnknownAPI372
|
||||
(uint32)PANIC(0x0175), // 0x0175 (373) UnknownAPI373
|
||||
(uint32)PANIC(0x0176), // 0x0177 (374) MmDbgAllocateMemory
|
||||
(uint32)PANIC(0x0177), // 0x0178 (375) MmDbgFreeMemory - Returns number of pages released.
|
||||
(uint32)PANIC(0x0178), // 0x0179 (376) MmDbgQueryAvailablePages
|
||||
(uint32)PANIC(0x0179), // 0x017A (377) MmDbgReleaseAddress
|
||||
(uint32)PANIC(0x017A), // 0x017A (378) MmDbgWriteCheck
|
||||
};
|
Loading…
Reference in New Issue