// ****************************************************************** // * // * proj : OpenXDK // * // * desc : Open Source XBox Development Kit // * // * file : nt.h // * // * note : XBox Kernel *NT* Declarations // * // ****************************************************************** #ifndef XBOXKRNL_NT_H #define XBOXKRNL_NT_H // ****************************************************************** // * NtAllocateVirtualMemory // ****************************************************************** XBSYSAPI EXPORTNUM(184) NTSTATUS NTAPI NtAllocateVirtualMemory ( IN OUT PVOID *BaseAddress, IN ULONG ZeroBits, IN OUT PULONG AllocationSize, IN DWORD AllocationType, IN DWORD Protect ); XBSYSAPI VOID *NtCancelTimer; // ****************************************************************** // * NtClearEvent // ****************************************************************** XBSYSAPI EXPORTNUM(186) NTSTATUS NTAPI NtClearEvent ( IN HANDLE EventHandle ); // ****************************************************************** // * NtClose // ****************************************************************** // * // * Closes an object handle // * // ****************************************************************** XBSYSAPI EXPORTNUM(187) NTSTATUS NTAPI NtClose ( IN HANDLE Handle ); XBSYSAPI EXPORTNUM(188) NTSTATUS NTAPI NtCreateDirectoryObject ( OUT PHANDLE DirectoryHandle, IN POBJECT_ATTRIBUTES ObjectAttributes ); // ****************************************************************** // * NtCreateEvent // ****************************************************************** XBSYSAPI EXPORTNUM(189) NTSTATUS NTAPI NtCreateEvent ( OUT PHANDLE EventHandle, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN EVENT_TYPE EventType, IN BOOLEAN InitialState ); // ****************************************************************** // * NtCreateFile // ****************************************************************** // * // * Causes a new file or directory to be created, or opens and // * existing file, device, directory, or volume, giving the caller // * a handle for the file object. // * // ****************************************************************** XBSYSAPI EXPORTNUM(190) NTSTATUS NTAPI NtCreateFile ( OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize OPTIONAL, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG CreateDisposition, IN ULONG CreateOptions ); XBSYSAPI VOID *NtCreateIoCompletion; // ****************************************************************** // * NtCreateMutant // ****************************************************************** XBSYSAPI EXPORTNUM(192) NTSTATUS NTAPI NtCreateMutant ( OUT PHANDLE MutantHandle, IN POBJECT_ATTRIBUTES ObjectAttributes, IN BOOLEAN InitialOwner ); // ****************************************************************** // * NtCreateSemaphore // ****************************************************************** XBSYSAPI EXPORTNUM(193) NTSTATUS NTAPI NtCreateSemaphore ( OUT PHANDLE SemaphoreHandle, IN POBJECT_ATTRIBUTES ObjectAttributes, IN ULONG InitialCount, IN ULONG MaximumCount ); XBSYSAPI VOID *NtCreateTimer; XBSYSAPI VOID *NtDeleteFile; XBSYSAPI EXPORTNUM(196) NTSTATUS NTAPI NtDeviceIoControlFile( IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG IoControlCode, IN PVOID InputBuffer OPTIONAL, IN ULONG InputBufferLength, OUT PVOID OutputBuffer OPTIONAL, IN ULONG OutputBufferLength ); // ****************************************************************** // * NtDuplicateObject // ****************************************************************** XBSYSAPI EXPORTNUM(197) NTSTATUS NTAPI NtDuplicateObject ( PVOID SourceHandle, PVOID *TargetHandle, DWORD Options ); // ****************************************************************** // * NtFlushBuffersFile // ****************************************************************** XBSYSAPI EXPORTNUM(198) NTSTATUS NTAPI NtFlushBuffersFile ( PVOID FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock ); // ****************************************************************** // * NtFreeVirtualMemory // ****************************************************************** XBSYSAPI EXPORTNUM(199) NTSTATUS NTAPI NtFreeVirtualMemory ( IN OUT PVOID *BaseAddress, IN OUT PULONG FreeSize, IN ULONG FreeType ); XBSYSAPI VOID *NtFsControlFile; XBSYSAPI VOID *NtOpenDirectoryObject; // ****************************************************************** // * NtOpenFile // ****************************************************************** XBSYSAPI EXPORTNUM(202) NTSTATUS NTAPI NtOpenFile ( OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG ShareAccess, IN ULONG OpenOptions ); XBSYSAPI EXPORTNUM(203) NTSTATUS NTAPI NtOpenSymbolicLinkObject( OUT PHANDLE LinkHandle, IN POBJECT_ATTRIBUTES ObjectAttributes ); XBSYSAPI EXPORTNUM(205) NTSTATUS NTAPI NtProtectVirtualMemory( IN OUT PVOID *BaseAddress, IN OUT PSIZE_T RegionSize, IN ULONG NewProtect, OUT PULONG OldProtect ); XBSYSAPI VOID *NtPulseEvent; // ****************************************************************** // * NtQueueApcThread // ****************************************************************** XBSYSAPI EXPORTNUM(206) NTSTATUS NTAPI NtQueueApcThread ( IN HANDLE ThreadHandle, IN PIO_APC_ROUTINE ApcRoutine, IN PVOID ApcRoutineContext OPTIONAL, IN PIO_STATUS_BLOCK ApcStatusBlock OPTIONAL, IN ULONG ApcReserved OPTIONAL ); // ****************************************************************** // * NtQueryDirectoryFile // ****************************************************************** XBSYSAPI EXPORTNUM(207) NTSTATUS NTAPI NtQueryDirectoryFile ( IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PVOID ApcRoutine, // Todo: define this routine's prototype IN PVOID ApcContext, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT FILE_DIRECTORY_INFORMATION *FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInformationClass, IN PSTRING FileMask, IN BOOLEAN RestartScan ); XBSYSAPI VOID *NtQueryDirectoryObject; XBSYSAPI VOID *NtQueryEvent; // ****************************************************************** // * NtQueryFullAttributesFile // ****************************************************************** XBSYSAPI EXPORTNUM(210) NTSTATUS NTAPI NtQueryFullAttributesFile ( IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PVOID Attributes ); // ****************************************************************** // * NtQueryInformationFile // ****************************************************************** // * // * Return various kinds of information about a given file object. // * // ****************************************************************** XBSYSAPI EXPORTNUM(211) NTSTATUS NTAPI NtQueryInformationFile ( IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInfo ); XBSYSAPI VOID *NtQueryIoCompletion; XBSYSAPI VOID *NtQueryMutant; XBSYSAPI VOID *NtQuerySemaphore; XBSYSAPI EXPORTNUM(215) NTSTATUS NTAPI NtQuerySymbolicLinkObject( HANDLE LinkHandle, OUT PSTRING LinkTarget, OUT PULONG ReturnedLength OPTIONAL ); XBSYSAPI VOID *NtQueryTimer; // ****************************************************************** // * NtQueryVirtualMemory // ****************************************************************** XBSYSAPI EXPORTNUM(217) NTSTATUS NTAPI NtQueryVirtualMemory ( IN PVOID BaseAddress, OUT PMEMORY_BASIC_INFORMATION Buffer ); // ****************************************************************** // * NtQueryVolumeInformationFile // ****************************************************************** XBSYSAPI EXPORTNUM(218) NTSTATUS NTAPI NtQueryVolumeInformationFile ( IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PFILE_FS_SIZE_INFORMATION FileInformation, IN ULONG Length, IN FS_INFORMATION_CLASS FileInformationClass ); // ****************************************************************** // * NtReadFile // ****************************************************************** // * // * Read data from an opened file. // * // ****************************************************************** XBSYSAPI EXPORTNUM(219) NTSTATUS NTAPI NtReadFile ( IN HANDLE FileHandle, // TODO: correct paramters IN HANDLE Event OPTIONAL, IN PVOID ApcRoutine OPTIONAL, IN PVOID ApcContext, OUT PVOID IoStatusBlock, OUT PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER ByteOffset OPTIONAL ); XBSYSAPI VOID *NtReadFileScatter; // ****************************************************************** // * NtReleaseMutant // ****************************************************************** XBSYSAPI EXPORTNUM(221) NTSTATUS NTAPI NtReleaseMutant ( IN HANDLE MutantHandle, OUT PLONG PreviousCount ); // ****************************************************************** // * NtReleaseSemaphore // ****************************************************************** XBSYSAPI EXPORTNUM(222) NTSTATUS NTAPI NtReleaseSemaphore ( IN HANDLE SemaphoreHandle, IN ULONG ReleaseCount, OUT PULONG PreviousCount ); XBSYSAPI VOID *NtRemoveIoCompletion; // ****************************************************************** // * NtResumeThread // ****************************************************************** XBSYSAPI EXPORTNUM(224) NTSTATUS NTAPI NtResumeThread ( IN HANDLE ThreadHandle, OUT PULONG PreviousSuspendCount ); // ****************************************************************** // * NtSetEvent // ****************************************************************** XBSYSAPI EXPORTNUM(225) NTSTATUS NTAPI NtSetEvent ( IN HANDLE EventHandle, OUT PLONG PreviousState ); // ****************************************************************** // * NtSetInformationFile // ****************************************************************** // * // * Changes various kinds of information about a given file object. // * // ****************************************************************** XBSYSAPI EXPORTNUM(226) NTSTATUS NTAPI NtSetInformationFile ( IN HANDLE FileHandle, // TODO: correct paramters OUT PVOID IoStatusBlock, IN PVOID FileInformation, IN ULONG Length, IN ULONG FileInformationClass ); XBSYSAPI VOID *NtSetIoCompletion; // ****************************************************************** // * NtSetSystemTime // ****************************************************************** XBSYSAPI EXPORTNUM(228) NTSTATUS NTAPI NtSetSystemTime ( IN PLARGE_INTEGER SystemTime, OUT PLARGE_INTEGER PreviousTime OPTIONAL ); XBSYSAPI VOID *NtSetTimerEx; XBSYSAPI VOID *NtSignalAndWaitForSingleObjectEx; // ****************************************************************** // * NtSuspendThread // ****************************************************************** XBSYSAPI EXPORTNUM(231) NTSTATUS NTAPI NtSuspendThread ( IN HANDLE ThreadHandle, OUT PULONG PreviousSuspendCount OPTIONAL ); // ****************************************************************** // * NtUserIoApcDispatcher // ****************************************************************** XBSYSAPI EXPORTNUM(232) VOID NTAPI NtUserIoApcDispatcher ( PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, ULONG Reserved ); // ****************************************************************** // * NtWaitForSingleObject // ****************************************************************** // * // * Put the current thread into a wait state until the given // * dispatcher object is set to a signaled state or (optionally) // * until the wait times out. // * // ****************************************************************** XBSYSAPI EXPORTNUM(233) NTSTATUS NTAPI NtWaitForSingleObject ( IN HANDLE Handle, IN BOOLEAN Alertable, IN PVOID Timeout ); // ****************************************************************** // * NtWaitForSingleObjectEx // ****************************************************************** XBSYSAPI EXPORTNUM(234) NTSTATUS NTAPI NtWaitForSingleObjectEx ( IN HANDLE Handle, IN CHAR WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout ); // ****************************************************************** // * NtWaitForMultipleObjectsEx // ****************************************************************** XBSYSAPI EXPORTNUM(235) NTSTATUS NTAPI NtWaitForMultipleObjectsEx ( IN ULONG Count, IN HANDLE *Handles, IN WAIT_TYPE WaitType, IN CHAR WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout ); // ****************************************************************** // * NtWriteFile // ****************************************************************** // * // * Write data to an opened file. // * // ****************************************************************** XBSYSAPI EXPORTNUM(236) NTSTATUS NTAPI NtWriteFile ( IN HANDLE FileHandle, // TODO: correct paramters IN PVOID Event, IN PVOID ApcRoutine, IN PVOID ApcContext, OUT PVOID IoStatusBlock, IN PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER ByteOffset ); XBSYSAPI VOID *NtWriteFileGather; // ****************************************************************** // * NtYieldExecution // ****************************************************************** XBSYSAPI EXPORTNUM(238) VOID NTAPI NtYieldExecution(); #endif