Cxbx-Reloaded/import/OpenXDK/include/xboxkrnl/ex.h

233 lines
6.1 KiB
C

// ******************************************************************
// *
// * proj : OpenXDK
// *
// * desc : Open Source XBox Development Kit
// *
// * file : ex.h
// *
// * note : XBox Kernel *Executive* Declarations
// *
// ******************************************************************
#ifndef XBOXKRNL_EX_H
#define XBOXKRNL_EX_H
XBSYSAPI EXPORTNUM(12) NTSTATUS NTAPI ExAcquireReadWriteLockExclusive
(
IN PERWLOCK ReadWriteLock
);
XBSYSAPI EXPORTNUM(13) NTSTATUS NTAPI ExAcquireReadWriteLockShared
(
IN PERWLOCK ReadWriteLock
);
// ******************************************************************
// * ExAllocatePool
// ******************************************************************
// *
// * Allocates pool memory
// *
// ******************************************************************
XBSYSAPI EXPORTNUM(14) PVOID NTAPI ExAllocatePool
(
IN SIZE_T NumberOfBytes
);
// ******************************************************************
// * ExAllocatePoolWithTag
// ******************************************************************
// *
// * Allocates pool memory with a tag
// *
// ******************************************************************
XBSYSAPI EXPORTNUM(15) PVOID NTAPI ExAllocatePoolWithTag
(
IN SIZE_T NumberOfBytes,
IN ULONG Tag
);
XBSYSAPI EXPORTNUM(16) OBJECT_TYPE ExEventObjectType;
// ******************************************************************
// * ExFreePool
// ******************************************************************
// *
// * Deallocates a block of pool memory
// *
// ******************************************************************
XBSYSAPI EXPORTNUM(17) VOID NTAPI ExFreePool
(
IN PVOID P
);
// ******************************************************************
// * 0x0012 - ExInitializeReadWriteLock()
// ******************************************************************
XBSYSAPI EXPORTNUM(18) VOID NTAPI ExInitializeReadWriteLock
(
IN PERWLOCK ReadWriteLock
);
// Source:APILogger - Uncertain
XBSYSAPI EXPORTNUM(19) LARGE_INTEGER NTAPI ExInterlockedAddLargeInteger
(
IN OUT PLARGE_INTEGER Addend,
IN LARGE_INTEGER Increment,
IN OUT PKSPIN_LOCK Lock
);
// Source:ReactOS
XBSYSAPI EXPORTNUM(20) VOID FASTCALL ExInterlockedAddLargeStatistic
(
IN PLARGE_INTEGER Addend,
IN ULONG Increment
);
// Source:ReactOS
XBSYSAPI EXPORTNUM(21) LONGLONG FASTCALL ExInterlockedCompareExchange64
(
IN OUT PLONGLONG Destination,
IN PLONGLONG Exchange,
IN PLONGLONG Comparand,
IN PKSPIN_LOCK Lock
);
XBSYSAPI EXPORTNUM(22) OBJECT_TYPE ExMutantObjectType;
// ******************************************************************
// * ExQueryPoolBlockSize
// ******************************************************************
XBSYSAPI EXPORTNUM(23) ULONG NTAPI ExQueryPoolBlockSize
(
IN PVOID PoolBlock
);
// ******************************************************************
// * 0x0018 - ExQueryNonVolatileSetting()
// ******************************************************************
XBSYSAPI EXPORTNUM(24) NTSTATUS NTAPI ExQueryNonVolatileSetting
(
IN DWORD ValueIndex,
OUT DWORD *Type,
OUT PVOID Value,
IN SIZE_T ValueLength,
OUT PSIZE_T ResultLength OPTIONAL
);
// ******************************************************************
// * ExReadWriteRefurbInfo
// ******************************************************************
XBSYSAPI EXPORTNUM(25) NTSTATUS NTAPI ExReadWriteRefurbInfo
(
IN OUT PXBOX_REFURB_INFO pRefurbInfo,
IN ULONG dwBufferSize,
IN BOOLEAN bIsWriteMode
);
XBSYSAPI EXPORTNUM(26) VOID NTAPI ExRaiseException
(
IN PEXCEPTION_RECORD ExceptionRecord
);
XBSYSAPI EXPORTNUM(27) VOID NTAPI ExRaiseStatus
(
IN NTSTATUS Status
);
XBSYSAPI EXPORTNUM(28) NTSTATUS NTAPI ExReleaseReadWriteLock
(
IN PERWLOCK ReadWriteLock
);
// ******************************************************************
// * 0x001D - ExSaveNonVolatileSetting()
// ******************************************************************
XBSYSAPI EXPORTNUM(29) NTSTATUS NTAPI ExSaveNonVolatileSetting
(
IN DWORD ValueIndex,
IN DWORD Type,
IN PVOID Value,
IN SIZE_T ValueLength
);
XBSYSAPI EXPORTNUM(30) OBJECT_TYPE ExSemaphoreObjectType;
XBSYSAPI EXPORTNUM(31) OBJECT_TYPE ExTimerObjectType;
// ******************************************************************
// * 0x0020 - ExfInterlockedInsertHeadList()
// ******************************************************************
XBSYSAPI EXPORTNUM(32) PLIST_ENTRY FASTCALL ExfInterlockedInsertHeadList
(
IN PLIST_ENTRY ListHead,
IN PLIST_ENTRY ListEntry
);
// ******************************************************************
// * 0x0021 - ExfInterlockedInsertTailList()
// ******************************************************************
XBSYSAPI EXPORTNUM(33) PLIST_ENTRY FASTCALL ExfInterlockedInsertTailList
(
IN PLIST_ENTRY ListHead,
IN PLIST_ENTRY ListEntry
);
// ******************************************************************
// * 0x0022 - ExfInterlockedRemoveHeadList()
// ******************************************************************
XBSYSAPI EXPORTNUM(34) PLIST_ENTRY FASTCALL ExfInterlockedRemoveHeadList
(
IN PLIST_ENTRY ListHead
);
XBSYSAPI EXPORTNUM(51) LONG FASTCALL KRNL(InterlockedCompareExchange)
(
IN OUT volatile PLONG Destination,
IN LONG Exchange,
IN LONG Comparand
);
XBSYSAPI EXPORTNUM(52) LONG FASTCALL KRNL(InterlockedDecrement)
(
IN OUT PLONG Addend
);
XBSYSAPI EXPORTNUM(53) LONG FASTCALL KRNL(InterlockedIncrement)
(
IN OUT PLONG Addend
);
XBSYSAPI EXPORTNUM(54) LONG FASTCALL KRNL(InterlockedExchange)
(
IN volatile PLONG Destination,
IN LONG Value
);
XBSYSAPI EXPORTNUM(55) LONG FASTCALL KRNL(InterlockedExchangeAdd)
(
IN volatile PLONG Addend,
IN LONG Value
);
// Dxbx Note : The Xbox1 SINGLE_LIST strucures are the same as in WinNT
XBSYSAPI EXPORTNUM(56) SINGLE_LIST_ENTRY * FASTCALL KRNL(InterlockedFlushSList)
(
IN PSLIST_HEADER ListHead
);
XBSYSAPI EXPORTNUM(57) SLIST_ENTRY * FASTCALL KRNL(InterlockedPopEntrySList)
(
IN PSLIST_HEADER ListHead
);
XBSYSAPI EXPORTNUM(58) SLIST_ENTRY * FASTCALL KRNL(InterlockedPushEntrySList)
(
IN PSLIST_HEADER ListHead,
IN PSLIST_ENTRY ListEntry
);
#endif