Merge pull request #86 from x1nixmzeng/kernel-thunks

Io Kernel API stubs for logging
This commit is contained in:
Luke Usher 2017-01-07 18:36:12 +00:00 committed by GitHub
commit 3a59895402
4 changed files with 898 additions and 513 deletions

View File

@ -12,14 +12,77 @@
#ifndef XBOXKRNL_IO_H #ifndef XBOXKRNL_IO_H
#define XBOXKRNL_IO_H #define XBOXKRNL_IO_H
XBSYSAPI VOID *IoAllocateIrp; // ******************************************************************
XBSYSAPI VOID *IoBuildAsynchronousFsdRequest; // * 0x003B - IoAllocateIrp()
XBSYSAPI VOID *IoBuildDeviceIoControlRequest; // ******************************************************************
XBSYSAPI VOID *IoBuildSynchronousFsdRequest; XBSYSAPI EXPORTNUM(59) PVOID NTAPI IoAllocateIrp
XBSYSAPI VOID *IoCheckShareAccess; (
IN CCHAR StackSize
);
// ******************************************************************
// * 0x003C - IoBuildAsynchronousFsdRequest()
// ******************************************************************
XBSYSAPI EXPORTNUM(60) PVOID NTAPI IoBuildAsynchronousFsdRequest
(
IN ULONG MajorFunction,
IN PDEVICE_OBJECT DeviceObject,
OUT PVOID Buffer OPTIONAL,
IN ULONG Length,
OUT PLARGE_INTEGER StartingOffset OPTIONAL,
OUT PIO_STATUS_BLOCK IoStatusBlock OPTIONAL
);
// ******************************************************************
// * 0x003D - IoBuildDeviceIoControlRequest()
// ******************************************************************
XBSYSAPI EXPORTNUM(61) PVOID NTAPI IoBuildDeviceIoControlRequest
(
IN ULONG IoControlCode,
IN PDEVICE_OBJECT DeviceObject,
IN PVOID InputBuffer OPTIONAL,
IN ULONG InputBufferLength,
OUT PVOID OutputBuffer OPTIONAL,
IN ULONG OutputBufferLength OPTIONAL,
IN BOOLEAN InternalDeviceIoControl,
IN PKEVENT Event,
OUT PIO_STATUS_BLOCK IoStatusBlock OPTIONAL
);
// ******************************************************************
// * 0x003E - IoBuildSynchronousFsdRequest()
// ******************************************************************
XBSYSAPI EXPORTNUM(62) PVOID NTAPI IoBuildSynchronousFsdRequest
(
IN ULONG MajorFunction,
IN PDEVICE_OBJECT DeviceObject,
OUT PVOID Buffer OPTIONAL,
IN ULONG Length,
OUT PLARGE_INTEGER StartingOffset OPTIONAL,
IN PKEVENT Event,
OUT PIO_STATUS_BLOCK IoStatusBlock
);
// ******************************************************************
// * 0x003F - IoCheckShareAccess()
// ******************************************************************
XBSYSAPI EXPORTNUM(63) NTSTATUS NTAPI IoCheckShareAccess
(
IN ACCESS_MASK DesiredAccess,
IN ULONG DesiredShareAccess,
OUT PFILE_OBJECT FileObject,
OUT PSHARE_ACCESS ShareAccess,
IN BOOLEAN Update
);
// ******************************************************************
// * 0x0040 - IoCompletionObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(64) OBJECT_TYPE IoCompletionObjectType; XBSYSAPI EXPORTNUM(64) OBJECT_TYPE IoCompletionObjectType;
// ******************************************************************
// * 0x0041 - IoCreateDevice()
// ******************************************************************
XBSYSAPI EXPORTNUM(65) NTSTATUS NTAPI IoCreateDevice XBSYSAPI EXPORTNUM(65) NTSTATUS NTAPI IoCreateDevice
( (
IN PDRIVER_OBJECT DriverObject, IN PDRIVER_OBJECT DriverObject,
@ -31,7 +94,7 @@ XBSYSAPI EXPORTNUM(65) NTSTATUS NTAPI IoCreateDevice
); );
// ****************************************************************** // ******************************************************************
// * IoCreateFile // * 0x0042 - IoCreateFile()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(66) NTSTATUS NTAPI IoCreateFile XBSYSAPI EXPORTNUM(66) NTSTATUS NTAPI IoCreateFile
( (
@ -48,7 +111,7 @@ XBSYSAPI EXPORTNUM(66) NTSTATUS NTAPI IoCreateFile
); );
// ****************************************************************** // ******************************************************************
// * IoCreateSymbolicLink // * 0x0043 - IoCreateSymbolicLink()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(67) NTSTATUS NTAPI IoCreateSymbolicLink XBSYSAPI EXPORTNUM(67) NTSTATUS NTAPI IoCreateSymbolicLink
( (
@ -56,50 +119,218 @@ XBSYSAPI EXPORTNUM(67) NTSTATUS NTAPI IoCreateSymbolicLink
IN PSTRING DeviceName IN PSTRING DeviceName
); );
XBSYSAPI VOID *IoDeleteDevice; // ******************************************************************
// * 0x0044 - IoDeleteDevice()
// ******************************************************************
XBSYSAPI EXPORTNUM(68) VOID NTAPI IoDeleteDevice
(
IN PDEVICE_OBJECT irql
);
// ****************************************************************** // ******************************************************************
// * IoDeleteSymbolicLink // * 0x0045 - IoDeleteSymbolicLink()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(69) NTSTATUS NTAPI IoDeleteSymbolicLink XBSYSAPI EXPORTNUM(69) NTSTATUS NTAPI IoDeleteSymbolicLink
( (
IN PSTRING SymbolicLinkName IN PSTRING SymbolicLinkName
); );
// ******************************************************************
// * 0x0046 - IoDeviceObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(70) OBJECT_TYPE IoDeviceObjectType; XBSYSAPI EXPORTNUM(70) OBJECT_TYPE IoDeviceObjectType;
// ******************************************************************
// * 0x0047 - IoFileObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(71) OBJECT_TYPE IoFileObjectType; XBSYSAPI EXPORTNUM(71) OBJECT_TYPE IoFileObjectType;
XBSYSAPI VOID *IoFreeIrp; // ******************************************************************
XBSYSAPI VOID *IoInitializeIrp; // * 0x0048 - IoFreeIrp()
XBSYSAPI VOID *IoInvalidDeviceRequest; // ******************************************************************
XBSYSAPI VOID *IoQueryFileInformation; XBSYSAPI EXPORTNUM(72) VOID NTAPI IoFreeIrp
XBSYSAPI VOID *IoQueryVolumeInformation; (
XBSYSAPI VOID *IoQueueThreadIrp; IN PIRP Irp
XBSYSAPI VOID *IoRemoveShareAccess; );
XBSYSAPI VOID *IoSetIoCompletion;
XBSYSAPI VOID *IoSetShareAccess;
XBSYSAPI VOID *IoStartNextPacket;
XBSYSAPI VOID *IoStartNextPacketByKey;
XBSYSAPI VOID *IoStartPacket;
XBSYSAPI VOID *IoSynchronousDeviceIoControlRequest;
XBSYSAPI VOID *IoSynchronousFsdRequest;
XBSYSAPI VOID *IofCallDriver;
XBSYSAPI VOID *IofCompleteRequest;
// ******************************************************************
// * 0x0049 - IoInitializeIrp()
// ******************************************************************
XBSYSAPI EXPORTNUM(73) PVOID NTAPI IoInitializeIrp
(
IN PIRP Irp,
IN USHORT PacketSize,
IN CCHAR StackSize
);
// ******************************************************************
// * 0x004A - IoInvalidDeviceRequest()
// ******************************************************************
XBSYSAPI EXPORTNUM(74) NTSTATUS NTAPI IoInvalidDeviceRequest
(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
// ******************************************************************
// * 0x004B - IoQueryFileInformation()
// ******************************************************************
XBSYSAPI EXPORTNUM(75) NTSTATUS NTAPI IoQueryFileInformation
(
IN PFILE_OBJECT FileObject,
IN FILE_INFORMATION_CLASS FileInformationClass,
IN ULONG Length,
OUT PVOID FileInformation,
OUT PULONG ReturnedLength
);
// ******************************************************************
// * 0x004C - IoQueryVolumeInformation()
// ******************************************************************
XBSYSAPI EXPORTNUM(76) NTSTATUS NTAPI IoQueryVolumeInformation
(
IN PFILE_OBJECT FileObject,
IN FS_INFORMATION_CLASS FsInformationClass,
IN ULONG Length,
OUT PVOID FsInformation,
OUT PULONG ReturnedLength
);
// ******************************************************************
// * 0x004D - IoQueueThreadIrp()
// ******************************************************************
XBSYSAPI EXPORTNUM(77) VOID NTAPI IoQueueThreadIrp
(
IN PIRP Irp
);
// ******************************************************************
// * 0x004E - IoRemoveShareAccess()
// ******************************************************************
XBSYSAPI EXPORTNUM(78) VOID NTAPI IoRemoveShareAccess
(
IN PFILE_OBJECT FileObject,
IN PSHARE_ACCESS ShareAccess
);
// ******************************************************************
// * 0x004F - IoSetIoCompletion()
// ******************************************************************
XBSYSAPI EXPORTNUM(79) NTSTATUS NTAPI IoSetIoCompletion
(
IN PKQUEUE IoCompletion,
IN PVOID KeyContext,
IN PVOID ApcContext,
IN NTSTATUS IoStatus,
IN ULONG IoStatusInformation
);
// ******************************************************************
// * 0x0050 - IoSetShareAccess()
// ******************************************************************
XBSYSAPI EXPORTNUM(80) CCHAR NTAPI IoSetShareAccess
(
IN ULONG DesiredAccess,
IN ULONG DesiredShareAccess,
IN PFILE_OBJECT FileObject,
OUT PSHARE_ACCESS ShareAccess
);
// ******************************************************************
// * 0x0051 - IoStartNextPacket()
// ******************************************************************
XBSYSAPI EXPORTNUM(81) VOID NTAPI IoStartNextPacket
(
IN PDEVICE_OBJECT DeviceObject
);
// ******************************************************************
// * 0x0052 - IoStartNextPacketByKey()
// ******************************************************************
XBSYSAPI EXPORTNUM(82) VOID NTAPI IoStartNextPacketByKey
(
IN PDEVICE_OBJECT DeviceObject,
IN ULONG Key
);
// ******************************************************************
// * 0x0053 - IoStartPacket()
// ******************************************************************
XBSYSAPI EXPORTNUM(83) VOID NTAPI IoStartPacket
(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
OUT PULONG Key OPTIONAL
);
// ******************************************************************
// * 0x0054 - IoSynchronousDeviceIoControlRequest()
// ******************************************************************
XBSYSAPI EXPORTNUM(84) NTSTATUS NTAPI IoSynchronousDeviceIoControlRequest
(
IN ULONG IoControlCode,
IN PDEVICE_OBJECT DeviceObject,
IN PVOID InputBuffer OPTIONAL,
IN ULONG InputBufferLength,
OUT PVOID OutputBuffer OPTIONAL,
IN ULONG OutputBufferLength,
OUT PULONG ReturnedOutputBufferLength OPTIONAL,
IN BOOLEAN InternalDeviceIoControl
);
// ******************************************************************
// * 0x0055 - IoSynchronousFsdRequest()
// ******************************************************************
XBSYSAPI EXPORTNUM(85) NTSTATUS NTAPI IoSynchronousFsdRequest
(
IN ULONG MajorFunction,
IN PDEVICE_OBJECT DeviceObject,
OUT PVOID Buffer OPTIONAL,
IN ULONG Length,
IN PLARGE_INTEGER StartingOffset OPTIONAL
);
// ******************************************************************
// * 0x0056 - IofCallDriver()
// ******************************************************************
XBSYSAPI EXPORTNUM(86) NTSTATUS FASTCALL IofCallDriver
(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
// ******************************************************************
// * 0x0057 - IofCompleteRequest()
// ******************************************************************
XBSYSAPI EXPORTNUM(87) VOID FASTCALL IofCompleteRequest
(
IN PIRP Irp,
IN CCHAR PriorityBoost
);
// ******************************************************************
// * 0x005A - IoDismountVolume()
// ******************************************************************
XBSYSAPI EXPORTNUM(90) NTSTATUS NTAPI IoDismountVolume XBSYSAPI EXPORTNUM(90) NTSTATUS NTAPI IoDismountVolume
( (
IN PDEVICE_OBJECT DeviceObject IN PDEVICE_OBJECT DeviceObject
); );
// ****************************************************************** // ******************************************************************
// * IoDismountVolumeByName // * 0x005B - IoDismountVolumeByName()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(91) NTSTATUS NTAPI IoDismountVolumeByName XBSYSAPI EXPORTNUM(91) NTSTATUS NTAPI IoDismountVolumeByName
( (
IN PSTRING VolumeName IN PSTRING VolumeName
); );
XBSYSAPI VOID *IoMarkIrpMustComplete; // ******************************************************************
// * 0x0167 - IoMarkIrpMustComplete()
// ******************************************************************
XBSYSAPI EXPORTNUM(359) CCHAR NTAPI IoMarkIrpMustComplete
(
IN PIRP Irp
);
#endif #endif

View File

@ -76,7 +76,6 @@ extern "C"
// ****************************************************************** // ******************************************************************
#ifndef VOID #ifndef VOID
typedef void VOID; typedef void VOID;
//#define VOID void
#endif #endif
// ****************************************************************** // ******************************************************************
@ -1260,6 +1259,29 @@ typedef struct _KDEVICE_QUEUE
} }
KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE; KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE;
typedef PVOID PFILE_SEGMENT_ELEMENT;
typedef struct _IRP
{
CSHORT Type; // 0x00
WORD Size; // 0x02
ULONG Flags; // 0x04
LIST_ENTRY ThreadListEntry; // 0x08
IO_STATUS_BLOCK IoStatus; // 0x10
CHAR StackCount; // 0x18
CHAR CurrentLocation; // 0x19
UCHAR PendingReturned; // 0x1A
UCHAR Cancel; // 0x1B
PIO_STATUS_BLOCK UserIosb; // 0x1C
PKEVENT UserEvent; // 0x20
ULONGLONG Overlay; // 0x28
PVOID UserBuffer; // 0x30
PFILE_SEGMENT_ELEMENT SegmentArray; // 0x34
ULONG LockedBufferLength; // 0x38
ULONGLONG Tail; // 0x3C
}
IRP, *PIRP;
typedef struct _DEVICE_OBJECT typedef struct _DEVICE_OBJECT
{ {
CSHORT Type; CSHORT Type;
@ -1267,7 +1289,7 @@ typedef struct _DEVICE_OBJECT
LONG ReferenceCount; LONG ReferenceCount;
struct _DRIVER_OBJECT *DriverObject; struct _DRIVER_OBJECT *DriverObject;
struct _DEVICE_OBJECT *MountedOrSelfDevice; struct _DEVICE_OBJECT *MountedOrSelfDevice;
struct _IRP *CurrentIrp; PIRP CurrentIrp;
ULONG Flags; ULONG Flags;
PVOID DeviceExtension; PVOID DeviceExtension;
UCHAR DeviceType; UCHAR DeviceType;
@ -1284,6 +1306,56 @@ DEVICE_OBJECT, *PDEVICE_OBJECT;
typedef VOID *PDRIVER_OBJECT; typedef VOID *PDRIVER_OBJECT;
// ******************************************************************
// * IO_COMPLETION_CONTEXT
// ******************************************************************
typedef struct _IO_COMPLETION_CONTEXT
{
PVOID Port;
PVOID Key;
} IO_COMPLETION_CONTEXT, *PIO_COMPLETION_CONTEXT;
// ******************************************************************
// * FILE_OBJECT
// ******************************************************************
typedef struct _FILE_OBJECT {
CSHORT Type; // 0x00
BYTE DeletePending : 1; // 0x02
BYTE ReadAccess : 1; // 0x02
BYTE WriteAccess : 1; // 0x02
BYTE DeleteAccess : 1; // 0x02
BYTE SharedRead : 1; // 0x02
BYTE SharedWrite : 1; // 0x02
BYTE SharedDelete : 1; // 0x02
BYTE Reserved : 1; // 0x02
BYTE Flags; // 0x03
PDEVICE_OBJECT DeviceObject; // 0x04
PVOID FsContext; // 0x08
PVOID FsContext2; // 0x0C
NTSTATUS FinalStatus; // 0x10
LARGE_INTEGER CurrentByteOffset; // 0x14
struct _FILE_OBJECT * RelatedFileObject; // 0x1C
PIO_COMPLETION_CONTEXT CompletionContext; // 0x20
LONG LockCount; // 0x24
KEVENT Lock; // 0x28
KEVENT Event; // 0x38
} FILE_OBJECT, *PFILE_OBJECT;
// ******************************************************************
// * SHARE_ACCESS
// ******************************************************************
typedef struct _SHARE_ACCESS {
BYTE OpenCount;
BYTE Readers;
BYTE Writers;
BYTE Deleters;
BYTE SharedRead;
BYTE SharedWrite;
BYTE SharedDelete;
} SHARE_ACCESS, *PSHARE_ACCESS;
// ****************************************************************** // ******************************************************************
// * TIMER_TYPE // * TIMER_TYPE
// ****************************************************************** // ******************************************************************

View File

@ -49,63 +49,66 @@ namespace xboxkrnl
#include "Emu.h" // For EmuWarning() #include "Emu.h" // For EmuWarning()
#include "EmuFile.h" // For CxbxCreateSymbolicLink(), etc. #include "EmuFile.h" // For CxbxCreateSymbolicLink(), etc.
/* TODO : Finish of these Dxbx ported signatures :
// ****************************************************************** // ******************************************************************
// * 0x003B - IoAllocateIrp() // * 0x003B - IoAllocateIrp()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(59) xboxkrnl::PIRP NTAPI xboxkrnl::IoAllocateIrp XBSYSAPI EXPORTNUM(59) xboxkrnl::PVOID NTAPI xboxkrnl::IoAllocateIrp
( (
CCHAR StackSize IN CCHAR StackSize
) )
{ {
LOG_FUNC_ONE_ARG(StackSize); LOG_FUNC_ONE_ARG(StackSize);
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
RETURN(nullptr); xboxkrnl::PVOID ret = nullptr;
RETURN(ret);
} }
// ****************************************************************** // ******************************************************************
// * 0x003C - IoBuildAsynchronousFsdRequest() // * 0x003C - IoBuildAsynchronousFsdRequest()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(60) xboxkrnl::PIRP NTAPI xboxkrnl::IoBuildAsynchronousFsdRequest XBSYSAPI EXPORTNUM(60) xboxkrnl::PVOID NTAPI xboxkrnl::IoBuildAsynchronousFsdRequest
( (
ULONG MajorFunction, IN ULONG MajorFunction,
PDEVICE_OBJECT DeviceObject, IN PDEVICE_OBJECT DeviceObject,
OUT PVOID Buffer OPTIONAL, OUT PVOID Buffer OPTIONAL,
ULONG Length OPTIONAL, IN ULONG Length,
PLARGE_INTEGER StartingOffset OPTIONAL, OUT PLARGE_INTEGER StartingOffset OPTIONAL,
PIO_STATUS_BLOCK IoStatusBlock OPTIONAL OUT PIO_STATUS_BLOCK IoStatusBlock OPTIONAL
) )
{ {
LOG_FUNC_BEGIN LOG_FUNC_BEGIN
LOG_FUNC_ARG(MajorFunction) LOG_FUNC_ARG(MajorFunction)
LOG_FUNC_ARG(DeviceObject) LOG_FUNC_ARG(DeviceObject)
LOG_FUNC_ARG_OUT(Buffer) LOG_FUNC_ARG_OUT(Buffer)
LOG_FUNC_ARG_OUT(Length) LOG_FUNC_ARG(Length)
LOG_FUNC_ARG(StartingOffset) LOG_FUNC_ARG_OUT(StartingOffset)
LOG_FUNC_ARG(IoStatusBlock) LOG_FUNC_ARG_OUT(IoStatusBlock)
LOG_FUNC_END; LOG_FUNC_END;
xboxkrnl::PVOID ret = nullptr;
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
RETURN(nullptr); RETURN(ret);
} }
// ****************************************************************** // ******************************************************************
// * 0x003D - IoBuildDeviceIoControlRequest() // * 0x003D - IoBuildDeviceIoControlRequest()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(61) xboxkrnl::PIRP NTAPI xboxkrnl::IoBuildDeviceIoControlRequest XBSYSAPI EXPORTNUM(61) xboxkrnl::PVOID NTAPI xboxkrnl::IoBuildDeviceIoControlRequest
( (
ULONG IoControlCode, IN ULONG IoControlCode,
PDEVICE_OBJECT DeviceObject, IN PDEVICE_OBJECT DeviceObject,
PVOID InputBuffer OPTIONAL, IN PVOID InputBuffer OPTIONAL,
ULONG InputBufferLength, IN ULONG InputBufferLength,
OUT PVOID OutputBuffer OPTIONAL, OUT PVOID OutputBuffer OPTIONAL,
ULONG OutputBufferLength, IN ULONG OutputBufferLength OPTIONAL,
BOOLEAN InternalDeviceIoControl, IN BOOLEAN InternalDeviceIoControl,
PKEVENT Event, IN PKEVENT Event,
OUT PIO_STATUS_BLOCK IoStatusBlock OUT PIO_STATUS_BLOCK IoStatusBlock OPTIONAL
) )
{ {
LOG_FUNC_BEGIN LOG_FUNC_BEGIN
@ -117,25 +120,27 @@ XBSYSAPI EXPORTNUM(61) xboxkrnl::PIRP NTAPI xboxkrnl::IoBuildDeviceIoControlRequ
LOG_FUNC_ARG(OutputBufferLength) LOG_FUNC_ARG(OutputBufferLength)
LOG_FUNC_ARG(InternalDeviceIoControl) LOG_FUNC_ARG(InternalDeviceIoControl)
LOG_FUNC_ARG(Event) LOG_FUNC_ARG(Event)
LOG_FUNC_ARG(IoStatusBlock) LOG_FUNC_ARG_OUT(IoStatusBlock)
LOG_FUNC_END; LOG_FUNC_END;
xboxkrnl::PVOID ret = nullptr;
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
RETURN(nullptr); RETURN(ret);
} }
// ****************************************************************** // ******************************************************************
// * 0x003E - IoBuildSynchronousFsdRequest() // * 0x003E - IoBuildSynchronousFsdRequest()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(62) xboxkrnl::PIRP NTAPI xboxkrnl::IoBuildSynchronousFsdRequest XBSYSAPI EXPORTNUM(62) xboxkrnl::PVOID NTAPI xboxkrnl::IoBuildSynchronousFsdRequest
( (
ULONG MajorFunction, IN ULONG MajorFunction,
PDEVICE_OBJECT DeviceObject, IN PDEVICE_OBJECT DeviceObject,
OUT PVOID Buffer OPTIONAL, OUT PVOID Buffer OPTIONAL,
ULONG Length OPTIONAL, IN ULONG Length,
PLARGE_INTEGER StartingOffset OPTIONAL, OUT PLARGE_INTEGER StartingOffset OPTIONAL,
PKEVENT Event, IN PKEVENT Event,
OUT PIO_STATUS_BLOCK IoStatusBlock OUT PIO_STATUS_BLOCK IoStatusBlock
) )
{ {
@ -144,14 +149,16 @@ XBSYSAPI EXPORTNUM(62) xboxkrnl::PIRP NTAPI xboxkrnl::IoBuildSynchronousFsdReque
LOG_FUNC_ARG(DeviceObject) LOG_FUNC_ARG(DeviceObject)
LOG_FUNC_ARG_OUT(Buffer) LOG_FUNC_ARG_OUT(Buffer)
LOG_FUNC_ARG(Length) LOG_FUNC_ARG(Length)
LOG_FUNC_ARG(StartingOffset) LOG_FUNC_ARG_OUT(StartingOffset)
LOG_FUNC_ARG(Event) LOG_FUNC_ARG(Event)
LOG_FUNC_ARG_OUT(IoStatusBlock) LOG_FUNC_ARG_OUT(IoStatusBlock)
LOG_FUNC_END; LOG_FUNC_END;
xboxkrnl::PVOID ret = nullptr;
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
RETURN(nullptr); RETURN(ret);
} }
// ****************************************************************** // ******************************************************************
@ -159,11 +166,11 @@ XBSYSAPI EXPORTNUM(62) xboxkrnl::PIRP NTAPI xboxkrnl::IoBuildSynchronousFsdReque
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(63) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoCheckShareAccess XBSYSAPI EXPORTNUM(63) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoCheckShareAccess
( (
ACCESS_MASK DesiredAccess, IN ACCESS_MASK DesiredAccess,
ULONG DesiredShareAccess, IN ULONG DesiredShareAccess,
OUT PFILE_OBJECT FileObject, OUT PFILE_OBJECT FileObject,
OUT PSHARE_ACCESS ShareAccess, OUT PSHARE_ACCESS ShareAccess,
BOOLEAN Update IN BOOLEAN Update
) )
{ {
LOG_FUNC_BEGIN LOG_FUNC_BEGIN
@ -178,7 +185,6 @@ XBSYSAPI EXPORTNUM(63) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoCheckShareAccess
RETURN(S_OK); RETURN(S_OK);
} }
*/
// ****************************************************************** // ******************************************************************
// * 0x0040 - IoCompletionObjectType // * 0x0040 - IoCompletionObjectType
@ -205,18 +211,17 @@ XBSYSAPI EXPORTNUM(65) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoCreateDevice
IN ULONG DeviceExtensionSize, IN ULONG DeviceExtensionSize,
IN PSTRING DeviceName OPTIONAL, IN PSTRING DeviceName OPTIONAL,
IN ULONG DeviceType, IN ULONG DeviceType,
// TODO? : IN ULONG DeviceCharacteristics,
IN BOOLEAN Exclusive, IN BOOLEAN Exclusive,
OUT PDEVICE_OBJECT* DeviceObject OUT PDEVICE_OBJECT* DeviceObject
) )
{ {
LOG_FUNC_BEGIN LOG_FUNC_BEGIN
LOG_FUNC_ARG_OUT(DriverObject) LOG_FUNC_ARG(DriverObject)
LOG_FUNC_ARG(DeviceExtensionSize) LOG_FUNC_ARG(DeviceExtensionSize)
LOG_FUNC_ARG(DeviceName) LOG_FUNC_ARG(DeviceName)
LOG_FUNC_ARG_OUT(DeviceType) LOG_FUNC_ARG(DeviceType)
LOG_FUNC_ARG(Exclusive) LOG_FUNC_ARG(Exclusive)
LOG_FUNC_ARG(DeviceObject) LOG_FUNC_ARG_OUT(DeviceObject)
LOG_FUNC_END; LOG_FUNC_END;
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
@ -304,6 +309,19 @@ XBSYSAPI EXPORTNUM(67) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoCreateSymbolicLink
RETURN(ret); RETURN(ret);
} }
// ******************************************************************
// * 0x0044 - IoDeleteDevice()
// ******************************************************************
XBSYSAPI EXPORTNUM(68) xboxkrnl::VOID NTAPI xboxkrnl::IoDeleteDevice
(
IN PDEVICE_OBJECT irql
)
{
LOG_FUNC_ONE_ARG(irql);
LOG_UNIMPLEMENTED();
}
// ****************************************************************** // ******************************************************************
// * 0x0045 - IoDeleteSymbolicLink() // * 0x0045 - IoDeleteSymbolicLink()
// ****************************************************************** // ******************************************************************
@ -357,33 +375,40 @@ XBSYSAPI EXPORTNUM(71) xboxkrnl::OBJECT_TYPE xboxkrnl::IoFileObjectType =
'eliF' // = "File" in reverse 'eliF' // = "File" in reverse
}; };
/* TODO : Finish of these Dxbx ported signatures :
// ****************************************************************** // ******************************************************************
// * 0x0048 - IoFreeIrp() // * 0x0048 - IoFreeIrp()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(72) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoFreeIrp XBSYSAPI EXPORTNUM(72) xboxkrnl::VOID NTAPI xboxkrnl::IoFreeIrp
( (
IN PIRP Irp
) )
{ {
LOG_FUNC(); LOG_FUNC_ONE_ARG(Irp);
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
RETURN(S_OK);
} }
// ****************************************************************** // ******************************************************************
// * 0x0049 - IoInitializeIrp() // * 0x0049 - IoInitializeIrp()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(73) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoInitializeIrp XBSYSAPI EXPORTNUM(73) xboxkrnl::PVOID NTAPI xboxkrnl::IoInitializeIrp
( (
IN PIRP Irp,
IN USHORT PacketSize,
IN CCHAR StackSize
) )
{ {
LOG_FUNC(); LOG_FUNC_BEGIN
LOG_FUNC_ARG(Irp)
LOG_FUNC_ARG(PacketSize)
LOG_FUNC_ARG(StackSize)
LOG_FUNC_END;
xboxkrnl::PVOID ret = nullptr;
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
RETURN(S_OK); RETURN(ret);
} }
// ****************************************************************** // ******************************************************************
@ -391,8 +416,8 @@ XBSYSAPI EXPORTNUM(73) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoInitializeIrp
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(74) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoInvalidDeviceRequest XBSYSAPI EXPORTNUM(74) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoInvalidDeviceRequest
( (
PDEVICE_OBJECT DeviceObject, IN PDEVICE_OBJECT DeviceObject,
PIRP Irp IN PIRP Irp
) )
{ {
LOG_FUNC_BEGIN LOG_FUNC_BEGIN
@ -410,11 +435,11 @@ XBSYSAPI EXPORTNUM(74) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoInvalidDeviceRequest
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(75) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoQueryFileInformation XBSYSAPI EXPORTNUM(75) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoQueryFileInformation
( (
PFILE_OBJECT FileObject, IN PFILE_OBJECT FileObject,
FILE_INFORMATION_CLASS FileInformationClass, IN FILE_INFORMATION_CLASS FileInformationClass,
ULONG Length, IN ULONG Length,
OUT PVOID FileInformation, OUT PVOID FileInformation,
OUT PULONG ReturnedLength, OUT PULONG ReturnedLength
) )
{ {
LOG_FUNC_BEGIN LOG_FUNC_BEGIN
@ -436,9 +461,9 @@ XBSYSAPI EXPORTNUM(75) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoQueryFileInformation
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(76) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoQueryVolumeInformation XBSYSAPI EXPORTNUM(76) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoQueryVolumeInformation
( (
PFILE_OBJECT FileObject, IN PFILE_OBJECT FileObject,
FS_INFORMATION_CLASS FsInformationClass, IN FS_INFORMATION_CLASS FsInformationClass,
ULONG Length, IN ULONG Length,
OUT PVOID FsInformation, OUT PVOID FsInformation,
OUT PULONG ReturnedLength OUT PULONG ReturnedLength
) )
@ -461,29 +486,31 @@ XBSYSAPI EXPORTNUM(76) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoQueryVolumeInformati
// ****************************************************************** // ******************************************************************
// * 0x004D - IoQueueThreadIrp() // * 0x004D - IoQueueThreadIrp()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(77) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoQueueThreadIrp XBSYSAPI EXPORTNUM(77) xboxkrnl::VOID NTAPI xboxkrnl::IoQueueThreadIrp
( (
IN PIRP Irp
) )
{ {
LOG_FUNC(); LOG_FUNC_ONE_ARG(Irp);
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
RETURN(S_OK);
} }
// ****************************************************************** // ******************************************************************
// * 0x004E - IoRemoveShareAccess() // * 0x004E - IoRemoveShareAccess()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(78) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoRemoveShareAccess XBSYSAPI EXPORTNUM(78) xboxkrnl::VOID NTAPI xboxkrnl::IoRemoveShareAccess
( (
IN PFILE_OBJECT FileObject,
IN PSHARE_ACCESS ShareAccess
) )
{ {
LOG_FUNC(); LOG_FUNC_BEGIN
LOG_FUNC_ARG(FileObject)
LOG_FUNC_ARG(ShareAccess)
LOG_FUNC_END;
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
RETURN(S_OK);
} }
// ****************************************************************** // ******************************************************************
@ -491,9 +518,20 @@ XBSYSAPI EXPORTNUM(78) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoRemoveShareAccess
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(79) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSetIoCompletion XBSYSAPI EXPORTNUM(79) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSetIoCompletion
( (
IN PKQUEUE IoCompletion,
IN PVOID KeyContext,
IN PVOID ApcContext,
IN NTSTATUS IoStatus,
IN ULONG IoStatusInformation
) )
{ {
LOG_FUNC(); LOG_FUNC_BEGIN
LOG_FUNC_ARG(IoCompletion)
LOG_FUNC_ARG(KeyContext)
LOG_FUNC_ARG(ApcContext)
LOG_FUNC_ARG(IoStatus)
LOG_FUNC_ARG(IoStatusInformation)
LOG_FUNC_END;
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
@ -503,57 +541,75 @@ XBSYSAPI EXPORTNUM(79) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSetIoCompletion
// ****************************************************************** // ******************************************************************
// * 0x0050 - IoSetShareAccess() // * 0x0050 - IoSetShareAccess()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(80) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSetShareAccess XBSYSAPI EXPORTNUM(80) xboxkrnl::CCHAR NTAPI xboxkrnl::IoSetShareAccess
( (
IN ULONG DesiredAccess,
IN ULONG DesiredShareAccess,
IN PFILE_OBJECT FileObject,
OUT PSHARE_ACCESS ShareAccess
) )
{ {
LOG_FUNC(); LOG_FUNC_BEGIN
LOG_FUNC_ARG(DesiredAccess)
LOG_FUNC_ARG(DesiredShareAccess)
LOG_FUNC_ARG(FileObject)
LOG_FUNC_ARG_OUT(ShareAccess)
LOG_FUNC_END;
xboxkrnl::CCHAR ret = 0; // ShareAccess->OpenCount;
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
RETURN(S_OK); RETURN(ret);
} }
// ****************************************************************** // ******************************************************************
// * 0x0051 - IoStartNextPacket() // * 0x0051 - IoStartNextPacket()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(81) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoStartNextPacket XBSYSAPI EXPORTNUM(81) xboxkrnl::VOID NTAPI xboxkrnl::IoStartNextPacket
( (
IN PDEVICE_OBJECT DeviceObject
) )
{ {
LOG_FUNC(); LOG_FUNC_ONE_ARG(DeviceObject);
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
RETURN(S_OK);
} }
// ****************************************************************** // ******************************************************************
// * 0x0052 - IoStartNextPacketByKey() // * 0x0052 - IoStartNextPacketByKey()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(82) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoStartNextPacketByKey XBSYSAPI EXPORTNUM(82) xboxkrnl::VOID NTAPI xboxkrnl::IoStartNextPacketByKey
( (
IN PDEVICE_OBJECT DeviceObject,
IN ULONG Key
) )
{ {
LOG_FUNC(); LOG_FUNC_BEGIN
LOG_FUNC_ARG(DeviceObject)
LOG_FUNC_ARG(Key)
LOG_FUNC_END;
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
RETURN(S_OK);
} }
// ****************************************************************** // ******************************************************************
// * 0x0053 - IoStartPacket() // * 0x0053 - IoStartPacket()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(83) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoStartPacket XBSYSAPI EXPORTNUM(83) xboxkrnl::VOID NTAPI xboxkrnl::IoStartPacket
( (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
OUT PULONG Key OPTIONAL
) )
{ {
LOG_FUNC(); LOG_FUNC_BEGIN
LOG_FUNC_ARG(DeviceObject)
LOG_FUNC_ARG(Irp)
LOG_FUNC_ARG_OUT(Key)
LOG_FUNC_END;
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
RETURN(S_OK);
} }
// ****************************************************************** // ******************************************************************
@ -566,14 +622,14 @@ XBSYSAPI EXPORTNUM(83) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoStartPacket
// New to the XBOX. // New to the XBOX.
XBSYSAPI EXPORTNUM(84) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSynchronousDeviceIoControlRequest XBSYSAPI EXPORTNUM(84) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSynchronousDeviceIoControlRequest
( (
ULONG IoControlCode, IN ULONG IoControlCode,
PDEVICE_OBJECT DeviceObject, IN PDEVICE_OBJECT DeviceObject,
PVOID InputBuffer OPTIONAL, IN PVOID InputBuffer OPTIONAL,
ULONG InputBufferLength, IN ULONG InputBufferLength,
PVOID OutputBuffer OPTIONAL, OUT PVOID OutputBuffer OPTIONAL,
ULONG OutputBufferLength, IN ULONG OutputBufferLength,
PDWORD unknown_use_zero OPTIONAL, OUT PULONG ReturnedOutputBufferLength OPTIONAL,
BOOLEAN InternalDeviceIoControl IN BOOLEAN InternalDeviceIoControl
) )
{ {
LOG_FUNC_BEGIN LOG_FUNC_BEGIN
@ -581,9 +637,9 @@ XBSYSAPI EXPORTNUM(84) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSynchronousDeviceIoC
LOG_FUNC_ARG(DeviceObject) LOG_FUNC_ARG(DeviceObject)
LOG_FUNC_ARG(InputBuffer) LOG_FUNC_ARG(InputBuffer)
LOG_FUNC_ARG(InputBufferLength) LOG_FUNC_ARG(InputBufferLength)
LOG_FUNC_ARG(OutputBuffer) LOG_FUNC_ARG_OUT(OutputBuffer)
LOG_FUNC_ARG(OutputBufferLength) LOG_FUNC_ARG(OutputBufferLength)
LOG_FUNC_ARG(unknown_use_zero) LOG_FUNC_ARG_OUT(ReturnedOutputBufferLength)
LOG_FUNC_ARG(InternalDeviceIoControl) LOG_FUNC_ARG(InternalDeviceIoControl)
LOG_FUNC_END; LOG_FUNC_END;
@ -597,9 +653,20 @@ XBSYSAPI EXPORTNUM(84) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSynchronousDeviceIoC
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(85) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSynchronousFsdRequest XBSYSAPI EXPORTNUM(85) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSynchronousFsdRequest
( (
IN ULONG MajorFunction,
IN PDEVICE_OBJECT DeviceObject,
OUT PVOID Buffer OPTIONAL,
IN ULONG Length,
IN PLARGE_INTEGER StartingOffset OPTIONAL
) )
{ {
LOG_FUNC(); LOG_FUNC_BEGIN
LOG_FUNC_ARG(MajorFunction)
LOG_FUNC_ARG(DeviceObject)
LOG_FUNC_ARG_OUT(Buffer)
LOG_FUNC_ARG(Length)
LOG_FUNC_ARG(StartingOffset)
LOG_FUNC_END;
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
@ -611,8 +678,8 @@ XBSYSAPI EXPORTNUM(85) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSynchronousFsdReques
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(86) xboxkrnl::NTSTATUS FASTCALL xboxkrnl::IofCallDriver XBSYSAPI EXPORTNUM(86) xboxkrnl::NTSTATUS FASTCALL xboxkrnl::IofCallDriver
( (
PDEVICE_OBJECT DeviceObject, IN PDEVICE_OBJECT DeviceObject,
PIRP Irp IN PIRP Irp
) )
{ {
LOG_FUNC_BEGIN LOG_FUNC_BEGIN
@ -628,10 +695,10 @@ XBSYSAPI EXPORTNUM(86) xboxkrnl::NTSTATUS FASTCALL xboxkrnl::IofCallDriver
// ****************************************************************** // ******************************************************************
// * 0x0057 - IofCompleteRequest() // * 0x0057 - IofCompleteRequest()
// ****************************************************************** // ******************************************************************
XBSYSAPI EXPORTNUM(87) xboxkrnl::NTSTATUS FASTCALL xboxkrnl::IofCompleteRequest XBSYSAPI EXPORTNUM(87) xboxkrnl::VOID FASTCALL xboxkrnl::IofCompleteRequest
( (
PIRP Irp IN PIRP Irp,
CCHAR PriorityBoost IN CCHAR PriorityBoost
) )
{ {
LOG_FUNC_BEGIN LOG_FUNC_BEGIN
@ -641,7 +708,6 @@ XBSYSAPI EXPORTNUM(87) xboxkrnl::NTSTATUS FASTCALL xboxkrnl::IofCompleteRequest
LOG_UNIMPLEMENTED(); LOG_UNIMPLEMENTED();
} }
*/
// ****************************************************************** // ******************************************************************
// * 0x005A - IoDismountVolume() // * 0x005A - IoDismountVolume()
@ -678,3 +744,19 @@ XBSYSAPI EXPORTNUM(91) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoDismountVolumeByName
RETURN(ret); RETURN(ret);
} }
// ******************************************************************
// * 0x0167 - IoMarkIrpMustComplete()
// ******************************************************************
XBSYSAPI EXPORTNUM(359) xboxkrnl::CCHAR NTAPI xboxkrnl::IoMarkIrpMustComplete
(
IN PIRP Irp
)
{
LOG_FUNC_ONE_ARG(Irp);
xboxkrnl::CCHAR ret = 0; // ShareAccess->OpenCount;
LOG_UNIMPLEMENTED();
RETURN(ret);
}

View File

@ -126,35 +126,35 @@ extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379] =
(uint32)FUNC(&xboxkrnl::KRNL(InterlockedFlushSList)), // 0x0038 (56) (uint32)FUNC(&xboxkrnl::KRNL(InterlockedFlushSList)), // 0x0038 (56)
(uint32)FUNC(&xboxkrnl::KRNL(InterlockedPopEntrySList)), // 0x0039 (57) (uint32)FUNC(&xboxkrnl::KRNL(InterlockedPopEntrySList)), // 0x0039 (57)
(uint32)FUNC(&xboxkrnl::KRNL(InterlockedPushEntrySList)), // 0x003A (58) (uint32)FUNC(&xboxkrnl::KRNL(InterlockedPushEntrySList)), // 0x003A (58)
(uint32)PANIC(0x003B), // 0x003B (59) IoAllocateIrp (uint32)FUNC(&xboxkrnl::IoAllocateIrp), // 0x003B (59)
(uint32)PANIC(0x003C), // 0x003C (60) IoBuildAsynchronousFsdRequest (uint32)FUNC(&xboxkrnl::IoBuildAsynchronousFsdRequest), // 0x003C (60)
(uint32)PANIC(0x003D), // 0x003D (61) IoBuildDeviceIoControlRequest (uint32)FUNC(&xboxkrnl::IoBuildDeviceIoControlRequest), // 0x003D (61)
(uint32)PANIC(0x003E), // 0x003E (62) IoBuildSynchronousFsdRequest (uint32)FUNC(&xboxkrnl::IoBuildSynchronousFsdRequest), // 0x003E (62)
(uint32)PANIC(0x003F), // 0x003F (63) IoCheckShareAccess (uint32)FUNC(&xboxkrnl::IoCheckShareAccess), // 0x003F (63)
(uint32)VARIABLE(&xboxkrnl::IoCompletionObjectType), // 0x0040 (64) (uint32)VARIABLE(&xboxkrnl::IoCompletionObjectType), // 0x0040 (64)
(uint32)FUNC(&xboxkrnl::IoCreateDevice), // 0x0041 (65) (uint32)FUNC(&xboxkrnl::IoCreateDevice), // 0x0041 (65)
(uint32)FUNC(&xboxkrnl::IoCreateFile), // 0x0042 (66) (uint32)FUNC(&xboxkrnl::IoCreateFile), // 0x0042 (66)
(uint32)FUNC(&xboxkrnl::IoCreateSymbolicLink), // 0x0043 (67) (uint32)FUNC(&xboxkrnl::IoCreateSymbolicLink), // 0x0043 (67)
(uint32)PANIC(0x0044), // 0x0044 (68) IoDeleteDevice (uint32)FUNC(&xboxkrnl::IoDeleteDevice), // 0x0044 (68)
(uint32)FUNC(&xboxkrnl::IoDeleteSymbolicLink), // 0x0045 (69) (uint32)FUNC(&xboxkrnl::IoDeleteSymbolicLink), // 0x0045 (69)
(uint32)VARIABLE(&xboxkrnl::IoDeviceObjectType), // 0x0046 (70) (uint32)VARIABLE(&xboxkrnl::IoDeviceObjectType), // 0x0046 (70)
(uint32)VARIABLE(&xboxkrnl::IoFileObjectType), // 0x0047 (71) (uint32)VARIABLE(&xboxkrnl::IoFileObjectType), // 0x0047 (71)
(uint32)PANIC(0x0048), // 0x0048 (72) IoFreeIrp (uint32)FUNC(&xboxkrnl::IoFreeIrp), // 0x0048 (72)
(uint32)PANIC(0x0049), // 0x0049 (73) IoInitializeIrp (uint32)FUNC(&xboxkrnl::IoInitializeIrp), // 0x0049 (73)
(uint32)PANIC(0x004A), // 0x004A (74) IoInvalidDeviceRequest (uint32)FUNC(&xboxkrnl::IoInvalidDeviceRequest), // 0x004A (74)
(uint32)PANIC(0x004B), // 0x004B (75) IoQueryFileInformation (uint32)FUNC(&xboxkrnl::IoQueryFileInformation), // 0x004B (75)
(uint32)PANIC(0x004C), // 0x004C (76) IoQueryVolumeInformation (uint32)FUNC(&xboxkrnl::IoQueryVolumeInformation), // 0x004C (76)
(uint32)PANIC(0x004D), // 0x004D (77) IoQueueThreadIrp (uint32)FUNC(&xboxkrnl::IoQueueThreadIrp), // 0x004D (77)
(uint32)PANIC(0x004E), // 0x004E (78) IoRemoveShareAccess (uint32)FUNC(&xboxkrnl::IoRemoveShareAccess), // 0x004E (78)
(uint32)PANIC(0x004F), // 0x004F (79) IoSetIoCompletion (uint32)FUNC(&xboxkrnl::IoSetIoCompletion), // 0x004F (79)
(uint32)PANIC(0x0050), // 0x0050 (80) IoSetShareAccess (uint32)FUNC(&xboxkrnl::IoSetShareAccess), // 0x0050 (80)
(uint32)PANIC(0x0051), // 0x0051 (81) IoStartNextPacket (uint32)FUNC(&xboxkrnl::IoStartNextPacket), // 0x0051 (81)
(uint32)PANIC(0x0052), // 0x0052 (82) IoStartNextPacketByKey (uint32)FUNC(&xboxkrnl::IoStartNextPacketByKey), // 0x0052 (82)
(uint32)PANIC(0x0053), // 0x0053 (83) IoStartPacket (uint32)FUNC(&xboxkrnl::IoStartPacket), // 0x0053 (83)
(uint32)PANIC(0x0054), // 0x0054 (84) IoSynchronousDeviceIoControlRequest (uint32)FUNC(&xboxkrnl::IoSynchronousDeviceIoControlRequest), // 0x0054 (84)
(uint32)PANIC(0x0055), // 0x0055 (85) IoSynchronousFsdRequest (uint32)FUNC(&xboxkrnl::IoSynchronousFsdRequest), // 0x0055 (85)
(uint32)PANIC(0x0056), // 0x0056 (86) IofCallDriver (uint32)FUNC(&xboxkrnl::IofCallDriver), // 0x0056 (86)
(uint32)PANIC(0x0057), // 0x0057 (87) IofCompleteRequest (uint32)FUNC(&xboxkrnl::IofCompleteRequest), // 0x0057 (87)
(uint32)VARIABLE(&xboxkrnl::KdDebuggerEnabled), // 0x0058 (88) (uint32)VARIABLE(&xboxkrnl::KdDebuggerEnabled), // 0x0058 (88)
(uint32)VARIABLE(&xboxkrnl::KdDebuggerNotPresent), // 0x0059 (89) (uint32)VARIABLE(&xboxkrnl::KdDebuggerNotPresent), // 0x0059 (89)
(uint32)FUNC(&xboxkrnl::IoDismountVolume), // 0x005A (90) (uint32)FUNC(&xboxkrnl::IoDismountVolume), // 0x005A (90)
@ -426,7 +426,7 @@ extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379] =
(uint32)VARIABLE(&xboxkrnl::HalBootSMCVideoMode), // 0x0164 (356) (uint32)VARIABLE(&xboxkrnl::HalBootSMCVideoMode), // 0x0164 (356)
(uint32)VARIABLE(&xboxkrnl::IdexChannelObject), // 0x0165 (357) (uint32)VARIABLE(&xboxkrnl::IdexChannelObject), // 0x0165 (357)
(uint32)FUNC(&xboxkrnl::HalIsResetOrShutdownPending), // 0x0166 (358) (uint32)FUNC(&xboxkrnl::HalIsResetOrShutdownPending), // 0x0166 (358)
(uint32)PANIC(0x0167), // 0x0167 (359) IoMarkIrpMustComplete (uint32)FUNC(&xboxkrnl::IoMarkIrpMustComplete), // 0x0167 (359)
(uint32)FUNC(&xboxkrnl::HalInitiateShutdown), // 0x0168 (360) (uint32)FUNC(&xboxkrnl::HalInitiateShutdown), // 0x0168 (360)
(uint32)PANIC(0x0169), // 0x0169 (361) KRNL(_snprintf) (uint32)PANIC(0x0169), // 0x0169 (361) KRNL(_snprintf)
(uint32)PANIC(0x016A), // 0x016A (362) KRNL(_sprintf) (uint32)PANIC(0x016A), // 0x016A (362) KRNL(_sprintf)