338 lines
11 KiB
C
338 lines
11 KiB
C
// ******************************************************************
|
|
// *
|
|
// * proj : OpenXDK
|
|
// *
|
|
// * desc : Open Source XBox Development Kit
|
|
// *
|
|
// * file : io.h
|
|
// *
|
|
// * note : XBox Kernel *I/O Manager* Declarations
|
|
// *
|
|
// ******************************************************************
|
|
#ifndef XBOXKRNL_IO_H
|
|
#define XBOXKRNL_IO_H
|
|
|
|
// ******************************************************************
|
|
// * 0x003B - IoAllocateIrp()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(59) PVOID NTAPI IoAllocateIrp
|
|
(
|
|
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;
|
|
|
|
// ******************************************************************
|
|
// * 0x0041 - IoCreateDevice()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(65) NTSTATUS NTAPI IoCreateDevice
|
|
(
|
|
IN PDRIVER_OBJECT DriverObject,
|
|
IN ULONG DeviceExtensionSize,
|
|
IN PSTRING DeviceName OPTIONAL,
|
|
IN ULONG DeviceType,
|
|
IN BOOLEAN Exclusive,
|
|
OUT PDEVICE_OBJECT* DeviceObject
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0042 - IoCreateFile()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(66) NTSTATUS NTAPI IoCreateFile
|
|
(
|
|
OUT PHANDLE FileHandle,
|
|
IN ACCESS_MASK DesiredAccess,
|
|
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
|
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
|
IN PLARGE_INTEGER AllocationSize,
|
|
IN ULONG FileAttributes,
|
|
IN ULONG ShareAccess,
|
|
IN ULONG Disposition,
|
|
IN ULONG CreateOptions,
|
|
IN ULONG Options
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0043 - IoCreateSymbolicLink()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(67) NTSTATUS NTAPI IoCreateSymbolicLink
|
|
(
|
|
IN PSTRING SymbolicLinkName,
|
|
IN PSTRING DeviceName
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0044 - IoDeleteDevice()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(68) VOID NTAPI IoDeleteDevice
|
|
(
|
|
IN PDEVICE_OBJECT irql
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0045 - IoDeleteSymbolicLink()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(69) NTSTATUS NTAPI IoDeleteSymbolicLink
|
|
(
|
|
IN PSTRING SymbolicLinkName
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0046 - IoDeviceObjectType
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(70) OBJECT_TYPE IoDeviceObjectType;
|
|
|
|
// ******************************************************************
|
|
// * 0x0047 - IoFileObjectType
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(71) OBJECT_TYPE IoFileObjectType;
|
|
|
|
// ******************************************************************
|
|
// * 0x0048 - IoFreeIrp()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(72) VOID NTAPI IoFreeIrp
|
|
(
|
|
IN PIRP Irp
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 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
|
|
(
|
|
IN PDEVICE_OBJECT DeviceObject
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x005B - IoDismountVolumeByName()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(91) NTSTATUS NTAPI IoDismountVolumeByName
|
|
(
|
|
IN PSTRING VolumeName
|
|
);
|
|
|
|
// ******************************************************************
|
|
// * 0x0167 - IoMarkIrpMustComplete()
|
|
// ******************************************************************
|
|
XBSYSAPI EXPORTNUM(359) CCHAR NTAPI IoMarkIrpMustComplete
|
|
(
|
|
IN PIRP Irp
|
|
);
|
|
|
|
#endif
|
|
|
|
|