441 lines
14 KiB
C
441 lines
14 KiB
C
// ******************************************************************
|
|
// *
|
|
// * proj : OpenXDK
|
|
// *
|
|
// * desc : Open Source XBox Development Kit
|
|
// *
|
|
// * file : xbox.h
|
|
// *
|
|
// * note : XBox Kernel Declarations
|
|
// *
|
|
// ******************************************************************
|
|
#ifndef XBOX_H
|
|
#define XBOX_H
|
|
|
|
#define AV_FLAGS_60Hz 0x00400000
|
|
#define AV_FLAGS_50Hz 0x00800000
|
|
#define AV_PACK_NONE 0x00000000
|
|
#define AV_PACK_STANDARD 0x00000001
|
|
#define AV_PACK_RFU 0x00000002
|
|
#define AV_PACK_SCART 0x00000003
|
|
#define AV_PACK_HDTV 0x00000004
|
|
#define AV_PACK_VGA 0x00000005
|
|
#define AV_PACK_SVIDEO 0x00000006
|
|
#define AV_PACK_MAX 0x00000007
|
|
#define AV_PACK_MASK 0x000000FF
|
|
#define AV_STANDARD_NTSC_M 0x00000100
|
|
#define AV_STANDARD_NTSC_J 0x00000200
|
|
#define AV_STANDARD_PAL_I 0x00000300
|
|
#define AV_STANDARD_PAL_M 0x00000400
|
|
#define AV_STANDARD_MAX 0x00000500
|
|
#define AV_QUERY_AV_CAPABILITIES 6
|
|
|
|
// ******************************************************************
|
|
// * 0x0001 - AvGetSavedDataAddress()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(1) PVOID NTAPI AvGetSavedDataAddress(void);
|
|
|
|
// ******************************************************************
|
|
// * 0x0002 - AvSendTVEncoderOption()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(2) VOID NTAPI AvSendTVEncoderOption
|
|
(
|
|
IN PVOID RegisterBase,
|
|
IN ULONG Option,
|
|
IN ULONG Param,
|
|
OUT ULONG *Result
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0003 - AvSetDisplayMode()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(3) ULONG NTAPI AvSetDisplayMode
|
|
(
|
|
IN PVOID RegisterBase,
|
|
IN ULONG Step,
|
|
IN ULONG Mode,
|
|
IN ULONG Format,
|
|
IN ULONG Pitch,
|
|
IN ULONG FrameBuffer
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0004 - AvSetSavedDataAddress()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(4) VOID NTAPI AvSetSavedDataAddress
|
|
(
|
|
IN PVOID Address
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0023 - FscGetCacheSize()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(35) ULONG NTAPI FscGetCacheSize();
|
|
|
|
// ******************************************************************
|
|
// * 0x0024 - FscInvalidateIdleBlocks()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(36) VOID NTAPI FscInvalidateIdleBlocks();
|
|
|
|
// ******************************************************************
|
|
// * 0x0025 - FscSetCacheSize()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(37) NTSTATUS NTAPI FscSetCacheSize
|
|
(
|
|
ULONG NumberOfCachePages
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0058 - KdDebuggerEnabled
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(88) BOOLEAN KdDebuggerEnabled;
|
|
|
|
// ******************************************************************
|
|
// * 0x0059 - KdDebuggerNotPresent
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(89) BOOLEAN KdDebuggerNotPresent;
|
|
|
|
// ******************************************************************
|
|
// * 0x00A0 - KfRaiseIrql()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(160) UCHAR FASTCALL KfRaiseIrql
|
|
(
|
|
IN UCHAR NewIrql
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x00A1 - KfLowerIrql()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(161) VOID FASTCALL KfLowerIrql
|
|
(
|
|
IN UCHAR NewIrql
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x00A2 - KiBugCheckData
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(162) ULONG_PTR KiBugCheckData[5];
|
|
|
|
// ******************************************************************
|
|
// * 0x00A3 - KiUnlockDispatcherDatabase()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(163) VOID FASTCALL KiUnlockDispatcherDatabase
|
|
(
|
|
IN KIRQL OldIrql
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x00A4 - LaunchDataPage (actually a pointer)
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(164) PLAUNCH_DATA_PAGE LaunchDataPage;
|
|
|
|
// ******************************************************************
|
|
// * 0x00FC - PhyGetLinkState()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(252) NTSTATUS NTAPI PhyGetLinkState
|
|
(
|
|
IN ULONG Mode
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x00FD - PhyInitialize()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(253) NTSTATUS NTAPI PhyInitialize
|
|
(
|
|
IN ULONG forceReset,
|
|
IN PVOID Parameter2
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0141 - XboxEEPROMKey
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(321) UCHAR XboxEEPROMKey[16];
|
|
|
|
// ******************************************************************
|
|
// * 0x0142 - XboxHardwareInfo
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(322) XBOX_HARDWARE_INFO XboxHardwareInfo;
|
|
|
|
// ******************************************************************
|
|
// * 0x0143 - XboxHDKey
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(323) UCHAR XboxHDKey[16];
|
|
|
|
typedef struct _XBOX_KRNL_VERSION {
|
|
USHORT Major;
|
|
USHORT Minor;
|
|
USHORT Build;
|
|
USHORT Qfe;
|
|
} XBOX_KRNL_VERSION;
|
|
|
|
// ******************************************************************
|
|
// * 0x0144 - XboxKrnlVersion
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(324) XBOX_KRNL_VERSION XboxKrnlVersion;
|
|
|
|
// ******************************************************************
|
|
// * 0x0145 - XboxSignatureKey
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(325) BYTE XboxSignatureKey[16];
|
|
|
|
// ******************************************************************
|
|
// * 0x0146 - XeImageFileName
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(326) OBJECT_STRING XeImageFileName;
|
|
|
|
// ******************************************************************
|
|
// * 0x0147 - XeLoadSection()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(327) NTSTATUS NTAPI XeLoadSection
|
|
(
|
|
IN PXBEIMAGE_SECTION Section
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0148 - XeUnloadSection()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(328) NTSTATUS NTAPI XeUnloadSection
|
|
(
|
|
IN PXBEIMAGE_SECTION Section
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x014F - XcSHAInit()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(335) VOID NTAPI XcSHAInit
|
|
(
|
|
IN PUCHAR pbSHAContext
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0150 - XcSHAUpdate()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(336) VOID NTAPI XcSHAUpdate
|
|
(
|
|
IN PUCHAR pbSHAContext,
|
|
IN PUCHAR pbInput,
|
|
IN ULONG dwInputLength
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0151 - XcSHAFinal()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(337) VOID NTAPI XcSHAFinal
|
|
(
|
|
IN PUCHAR pbSHAContext,
|
|
IN PUCHAR pbDigest
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0152 - XcRC4Key()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(338) VOID NTAPI XcRC4Key
|
|
(
|
|
IN PUCHAR pbKeyStruct,
|
|
IN ULONG dwKeyLength,
|
|
IN PUCHAR pbKey
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0153 - XcRC4Crypt()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(339) VOID NTAPI XcRC4Crypt
|
|
(
|
|
IN PUCHAR pbKeyStruct,
|
|
IN ULONG dwInputLength,
|
|
IN PUCHAR pbInput
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0154 - XcHMAC()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(340) VOID NTAPI XcHMAC
|
|
(
|
|
IN PBYTE pbKeyMaterial,
|
|
IN ULONG cbKeyMaterial,
|
|
IN PBYTE pbData,
|
|
IN ULONG cbData,
|
|
IN PBYTE pbData2,
|
|
IN ULONG cbData2,
|
|
OUT PBYTE HmacData
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0155 - XcPKEncPublic()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(341) ULONG NTAPI XcPKEncPublic
|
|
(
|
|
IN PUCHAR pbPubKey,
|
|
IN PUCHAR pbInput,
|
|
OUT PUCHAR pbOutput
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0156 - XcPKDecPrivate()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(342) ULONG NTAPI XcPKDecPrivate
|
|
(
|
|
IN PUCHAR pbPrvKey,
|
|
IN PUCHAR pbInput,
|
|
OUT PUCHAR pbOutput
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0157 - XcPKGetKeyLen()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(343) ULONG NTAPI XcPKGetKeyLen
|
|
(
|
|
OUT PUCHAR pbPubKey
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0158 - XcVerifyPKCS1Signature()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(344) BOOLEAN NTAPI XcVerifyPKCS1Signature
|
|
(
|
|
IN PUCHAR pbSig,
|
|
IN PUCHAR pbPubKey,
|
|
IN PUCHAR pbDigest
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0159 - XcModExp()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(345) ULONG NTAPI XcModExp
|
|
(
|
|
IN LPDWORD pA,
|
|
IN LPDWORD pB,
|
|
IN LPDWORD pC,
|
|
IN LPDWORD pD,
|
|
IN ULONG dwN
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x015A - XcDESKeyParity()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(346) VOID NTAPI XcDESKeyParity
|
|
(
|
|
IN PUCHAR pbKey,
|
|
IN ULONG dwKeyLength
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x015B - XcKeyTable()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(347) VOID NTAPI XcKeyTable
|
|
(
|
|
IN ULONG dwCipher,
|
|
OUT PUCHAR pbKeyTable,
|
|
IN PUCHAR pbKey
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x015C - XcBlockCrypt()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(348) VOID NTAPI XcBlockCrypt
|
|
(
|
|
IN ULONG dwCipher,
|
|
OUT PUCHAR pbOutput,
|
|
IN PUCHAR pbInput,
|
|
IN PUCHAR pbKeyTable,
|
|
IN ULONG dwOp
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x015D - XcBlockCryptCBC()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(349) VOID NTAPI XcBlockCryptCBC
|
|
(
|
|
IN ULONG dwCipher,
|
|
IN ULONG dwInputLength,
|
|
OUT PUCHAR pbOutput,
|
|
IN PUCHAR pbInput,
|
|
IN PUCHAR pbKeyTable,
|
|
IN ULONG dwOp,
|
|
IN PUCHAR pbFeedback
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x015E - XcCryptService()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(350) ULONG NTAPI XcCryptService
|
|
(
|
|
IN ULONG dwOp,
|
|
IN PVOID pArgs
|
|
);
|
|
|
|
typedef PVOID PCRYPTO_VECTOR; // TODO : Expand
|
|
|
|
// ******************************************************************
|
|
// * 0x015F - XcUpdateCrypto()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(351) VOID NTAPI XcUpdateCrypto
|
|
(
|
|
IN PCRYPTO_VECTOR pNewVector,
|
|
OUT PCRYPTO_VECTOR pROMVector OPTIONAL
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0161 - XboxLANKey
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(353) XBOX_KEY_DATA XboxLANKey;
|
|
|
|
// ******************************************************************
|
|
// * 0x0162 - XboxAlternateSignatureKeys
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(354) XBOX_KEY_DATA XboxAlternateSignatureKeys;
|
|
|
|
// ******************************************************************
|
|
// * 0x0163 - XePublicKeyData
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(355) DWORD XePublicKeyData;
|
|
|
|
// ******************************************************************
|
|
// * 0x0165 - IdexChannelObject
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(357) BYTE IdexChannelObject[0x100];
|
|
|
|
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; // ""
|
|
|
|
XBSYSAPI EXPORTNUM(367) NTSTATUS NTAPI UnknownAPI367
|
|
(
|
|
// UNKNOWN ARGUMENTS
|
|
);
|
|
|
|
XBSYSAPI EXPORTNUM(368) NTSTATUS NTAPI UnknownAPI368
|
|
(
|
|
// UNKNOWN ARGUMENTS
|
|
);
|
|
|
|
XBSYSAPI EXPORTNUM(369) NTSTATUS NTAPI UnknownAPI369
|
|
(
|
|
// UNKNOWN ARGUMENTS
|
|
);
|
|
|
|
XBSYSAPI EXPORTNUM(370) NTSTATUS NTAPI XProfpControl // PROFILING
|
|
(
|
|
// UNKNOWN ARGUMENTS
|
|
);
|
|
|
|
XBSYSAPI EXPORTNUM(371) NTSTATUS NTAPI XProfpGetData // PROFILING
|
|
(
|
|
// UNKNOWN ARGUMENTS
|
|
);
|
|
|
|
XBSYSAPI EXPORTNUM(372) NTSTATUS NTAPI IrtClientInitFast // PROFILING
|
|
(
|
|
// UNKNOWN ARGUMENTS
|
|
);
|
|
|
|
XBSYSAPI EXPORTNUM(373) NTSTATUS NTAPI IrtSweep // PROFILING
|
|
(
|
|
// UNKNOWN ARGUMENTS
|
|
);
|
|
|
|
#endif
|
|
|
|
|