Advertisement
Guest User

Kernel

a guest
May 23rd, 2017
998
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 16.41 KB | None | 0 0
  1. #ifndef _KERNEL_H
  2. #define _KERNEL_H
  3.  
  4. // Edited immensely by imGol2den
  5. #include "types.h"
  6.  
  7. #define Module_XAM "xam.xex"
  8.  
  9. // an intrinsic that was left out...
  10. #define __isync()       __emit(0x4C00012C)
  11.  
  12. // debug serial port register
  13. #define DBG_SERIAL_RCV      (DWORD volatile*)0x7FEA1010
  14. #define DBG_SERIAL_XMIT     (DWORD volatile*)0x7FEA1014
  15. #define DBG_SERIAL_STS      (DWORD volatile*)0x7FEA1018
  16. #define DBG_SERIAL_CNTRL    (DWORD volatile*)0x7FEA101C
  17.  
  18. // byte[1] of HalGetPowerUpCause response
  19. #define PWR_REAS_PWRBTN     0x11 // power button pushed
  20. #define PWR_REAS_EJECT      0x12 // eject button pushed
  21. #define PWR_REAS_ALARM      0x15 // guess ~ should be the wake alarm ~
  22. #define PWR_REAS_REMOPWR    0x20 // power button on 3rd party remote/ xbox universal remote
  23. #define PWR_REAS_REMOX      0x22 // xbox universal media remote X button
  24. #define PWR_REAS_WINBTN     0x24 // windows button pushed IR remote
  25. #define PWR_REAS_RESET      0x30 // HalReturnToFirmware(1 or 2 or 3) = hard reset by smc
  26. #define PWR_REAS_WIRELESS   0x55 // wireless controller middle button/start button pushed to power on controller and console
  27. #define PWR_REAS_WIRED      0x5A // wired controller guide button pushed (attached to back usb port)
  28.  
  29. #define CONSTANT_OBJECT_STRING(s)   { strlen( s ) / sizeof( OCHAR ), (strlen( s ) / sizeof( OCHAR ))+1, s }
  30. #define MAKE_STRING(s)   {(USHORT)(strlen(s)), (USHORT)((strlen(s))+1), (PCHAR)s}
  31. #define EXPORTNUM(x) // Just for documentation, thx XBMC!
  32.  
  33. #define STATUS_SUCCESS  0
  34. #define NT_EXTRACT_ST(Status)           ((((ULONG)(Status)) >> 30)& 0x3)
  35. #define NT_SUCCESS(Status)              (((NTSTATUS)(Status)) >= 0)
  36. #define NT_INFORMATION(Status)          (NT_EXTRACT_ST(Status) == 1)
  37. #define NT_WARNING(Status)              (NT_EXTRACT_ST(Status) == 2)
  38. #define NT_ERROR(Status)                (NT_EXTRACT_ST(Status) == 3)
  39.  
  40. #define NEG_ONE_AS_DWORD                ((DWORD)-1)
  41.  
  42. #define STATUS_SUCCESS  0
  43. #define FILE_SYNCHRONOUS_IO_NONALERT    0x20
  44. #define OBJ_CASE_INSENSITIVE            0x40
  45.  
  46. // for KeGetCurrentProcessType()
  47. #define IDLE_PROC   0
  48. #define USER_PROC   1
  49. #define SYSTEM_PROC 2
  50.  
  51. typedef long            NTSTATUS;
  52. typedef ULONG           ACCESS_MASK;
  53.  
  54. typedef struct _STRING {
  55.     USHORT Length;
  56.     USHORT MaximumLength;
  57.     PCHAR Buffer;
  58. } STRING, *PSTRING;
  59.  
  60. typedef struct _CSTRING {
  61.     USHORT Length;
  62.     USHORT MaximumLength;
  63.     CONST char *Buffer;
  64. } CSTRING, *PCSTRING;
  65.  
  66. typedef struct _UNICODE_STRING {
  67.     USHORT Length;
  68.     USHORT MaximumLength;
  69.     PWSTR  Buffer;
  70. } UNICODE_STRING, *PUNICODE_STRING;
  71.  
  72. typedef STRING          OBJECT_STRING;
  73. typedef CSTRING         COBJECT_STRING;
  74. typedef PSTRING         POBJECT_STRING;
  75. typedef PCSTRING        PCOBJECT_STRING;
  76. typedef STRING          OEM_STRING;
  77. typedef PSTRING         POEM_STRING;
  78. typedef CHAR            OCHAR;
  79. typedef CHAR*           POCHAR;
  80. typedef PSTR            POSTR;
  81. typedef PCSTR           PCOSTR;
  82. typedef CHAR*           PSZ;
  83. typedef CONST CHAR*     PCSZ;
  84. typedef STRING          ANSI_STRING;
  85. typedef PSTRING         PANSI_STRING;
  86. typedef CSTRING         CANSI_STRING;
  87. typedef PCSTRING        PCANSI_STRING;
  88. #define ANSI_NULL       ((CHAR)0)     // winnt
  89. typedef CONST UNICODE_STRING*   PCUNICODE_STRING;
  90. #define UNICODE_NULL            ((WCHAR)0) // winnt
  91.  
  92. #define OTEXT(quote) __OTEXT(quote)
  93.  
  94. typedef struct _IO_STATUS_BLOCK {
  95.     union {
  96.         NTSTATUS Status;
  97.         PVOID Pointer;
  98.     } st;
  99.     ULONG_PTR Information;
  100. } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
  101.  
  102. typedef VOID(NTAPI *PIO_APC_ROUTINE) (
  103.     IN PVOID ApcContext,
  104.     IN PIO_STATUS_BLOCK IoStatusBlock,
  105.     IN ULONG Reserved
  106.     );
  107.  
  108. typedef struct _OBJECT_ATTRIBUTES {
  109.     HANDLE RootDirectory;
  110.     POBJECT_STRING ObjectName;
  111.     ULONG Attributes;
  112. } OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
  113.  
  114. // VOID InitializeObjectAttributes(
  115. //     OUT POBJECT_ATTRIBUTES p,
  116. //     IN STRING n,
  117. //     IN ULONG a,
  118. //     IN HANDLE r)
  119. #define InitializeObjectAttributes( p, name, attrib, root){     \
  120.     (p)->RootDirectory = root;                            \
  121.     (p)->Attributes = attrib;                             \
  122.     (p)->ObjectName = name;                               \
  123. }
  124.  
  125. // returned by a call to 'NtQueryInformationFile' with 0x22 = FileNetworkOpenInformation
  126. typedef struct _FILE_NETWORK_OPEN_INFORMATION {
  127.     LARGE_INTEGER  CreationTime;
  128.     LARGE_INTEGER  LastAccessTime;
  129.     LARGE_INTEGER  LastWriteTime;
  130.     LARGE_INTEGER  ChangeTime;
  131.     LARGE_INTEGER  AllocationSize;
  132.     LARGE_INTEGER  EndOfFile;
  133.     ULONG  FileAttributes;
  134. } FILE_NETWORK_OPEN_INFORMATION, *PFILE_NETWORK_OPEN_INFORMATION;
  135.  
  136. /* description about xex exe headers in memory */
  137. typedef struct _XBOX_HARDWARE_INFO {
  138.     DWORD Flags;
  139.     unsigned char NumberOfProcessors;
  140.     unsigned char PCIBridgeRevisionID;
  141.     unsigned char Reserved[6];
  142.     unsigned short BldrMagic;
  143.     unsigned short BldrFlags;
  144. } XBOX_HARDWARE_INFO, *PXBOX_HARDWARE_INFO;
  145.  
  146. typedef struct _XEX_IMPORT_TABLE_ENT {
  147.     DWORD ImportDestAddr;
  148.     DWORD ImportStubAddr;
  149. } XEX_IMPORT_TABLE_ENT, *PXEX_IMPORT_TABLE_ENT;
  150.  
  151. typedef struct _XEX_IMPORT_TABLE {
  152.     DWORD TableSize;
  153.     BYTE NextImportDigest[20];
  154.     DWORD ModuleNumber;
  155.     DWORD Version[2];
  156.     BYTE Unused;
  157.     BYTE ModuleIndex;
  158.     WORD ImportCount;
  159.     DWORD ImportStubAddr[1];
  160. } XEX_IMPORT_TABLE, *PXEX_IMPORT_TABLE;
  161.  
  162. typedef struct _XEX_IMPORT_DESCRIPTOR {
  163.     DWORD Size;
  164.     DWORD NameTableSize;
  165.     DWORD ModuleCount;
  166.     // nametable is here of nametable size
  167.     // followed by modulecount number of xex import tables
  168. } XEX_IMPORT_DESCRIPTOR, *PXEX_IMPORT_DESCRIPTOR;
  169.  
  170. typedef struct _IMAGE_EXPORT_ADDRESS_TABLE {
  171.     DWORD Magic[3]; // 48 00 00 00 00 48 56 45 48 00 00 00
  172.     DWORD ModuleNumber[2];
  173.     DWORD Version[3];
  174.     DWORD ImageBaseAddress; // must be <<16 to be accurate
  175.     DWORD Count;
  176.     DWORD Base;
  177.     DWORD ordOffset[1]; // ordOffset[0]+ (ImageBaseAddress<<8) = function offset of ordinal 1
  178. } IMAGE_EXPORT_ADDRESS_TABLE, *PIMAGE_EXPORT_ADDRESS_TABLE;
  179.  
  180. typedef struct _XEX_SECURITY_INFO {
  181.     unsigned long Size;
  182.     DWORD ImageSize;
  183.     BYTE Signature[256];
  184.     DWORD InfoSize;
  185.     DWORD ImageFlags;
  186.     DWORD LoadAddress;
  187.     BYTE ImageHash[20];
  188.     DWORD ImportTableCount;
  189.     BYTE ImportDigest[20];
  190.     BYTE MediaID[16];
  191.     BYTE ImageKey[16];
  192.     PIMAGE_EXPORT_ADDRESS_TABLE ExportTableAddress;
  193.     BYTE HeaderHash[20];
  194.     DWORD GameRegion;
  195.     DWORD AllowedMediaTypes;
  196.     DWORD PageDescriptorCount;
  197. } XEX_SECURITY_INFO, *PXEX_SECURITY_INFO;
  198.  
  199. typedef struct _XEX_HEADER_STRING {
  200.     ULONG Size;
  201.     UCHAR Data[1];
  202. } XEX_HEADER_STRING, *PXEX_HEADER_STRING;
  203.  
  204. typedef struct _IMAGE_XEX_HEADER {
  205.     DWORD Magic;
  206.     DWORD ModuleFlags;
  207.     DWORD SizeOfHeaders;
  208.     DWORD SizeOfDiscardableHeaders;
  209.     PXEX_SECURITY_INFO SecurityInfo;
  210.     DWORD HeaderDirectoryEntryCount;
  211. } IMAGE_XEX_HEADER, *PIMAGE_XEX_HEADER;
  212.  
  213. typedef struct _LDR_DATA_TABLE_ENTRY {
  214.     LIST_ENTRY InLoadOrderLinks;
  215.     LIST_ENTRY InClosureOrderLinks;
  216.     LIST_ENTRY InInitializationOrderLinks;
  217.     PVOID NtHeadersBase;
  218.     PVOID ImageBase;
  219.     DWORD SizeOfNtImage;
  220.     UNICODE_STRING FullDllName;
  221.     UNICODE_STRING BaseDllName;
  222.     DWORD Flags;
  223.     DWORD SizeOfFullImage;
  224.     PVOID EntryPoint;
  225.     WORD LoadCount;
  226.     WORD ModuleIndex;
  227.     PVOID DllBaseOriginal;
  228.     DWORD CheckSum;
  229.     DWORD ModuleLoadFlags;
  230.     DWORD TimeDateStamp;
  231.     PVOID LoadedImports;
  232.     PVOID XexHeaderBase;
  233.     union {
  234.         STRING LoadFileName;
  235.         struct {
  236.             PVOID ClosureRoot; // LDR_DATA_TABLE_ENTRY
  237.             PVOID TraversalParent; // LDR_DATA_TABLE_ENTRY
  238.         } asEntry;
  239.     } inf;
  240. } LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
  241.  
  242. typedef struct _HV_IMAGE_IMPORT_TABLE
  243. {
  244.     BYTE NextImportDigest[0x14];
  245.     DWORD ModuleNumber;
  246.     DWORD Version[2];
  247.     BYTE Unused;
  248.     BYTE ModuleIndex;
  249.     WORD ImportCount;
  250. } HV_IMAGE_IMPORT_TABLE, *PHV_IMAGE_IMPORT_TABLE;
  251.  
  252. typedef struct _XEX_IMPORT_TABLE_ORG
  253. {
  254.     DWORD TableSize;
  255.     HV_IMAGE_IMPORT_TABLE ImportTable;
  256. } XEX_IMPORT_TABLE_ORG, *PXEX_IMPORT_TABLE_ORG;
  257.  
  258. typedef struct _XEX_EXECUTION_ID {
  259.     DWORD        MediaID;
  260.     DWORD        Version;
  261.     DWORD        BaseVersion;
  262.     union {
  263.         struct {
  264.             WORD PublisherID;
  265.             WORD GameID;
  266.         };
  267.         DWORD    TitleID;
  268.     };
  269.     BYTE         Platform;
  270.     BYTE         ExecutableType;
  271.     BYTE         DiscNum;
  272.     BYTE         DiscsInSet;
  273.     DWORD        SaveGameID;
  274. } XEX_EXECUTION_ID, *PXEX_EXECUTION_ID;
  275.  
  276. typedef struct _XBOX_KRNL_VERSION {
  277.     USHORT Major; // for 360 this is always 2
  278.     USHORT Minor; // usually 0
  279.     USHORT Build; // current version, for example 9199
  280.     USHORT Qfe;
  281. } XBOX_KRNL_VERSION, *PXBOX_KRNL_VERSION;
  282.  
  283. typedef enum _POOL_TYPE {
  284.     NonPagedPool = 0,
  285.     PagedPool = 1,
  286.     NonPagedPoolMustSucceed = 2,
  287.     DontUseThisType = 3,
  288.     NonPagedPoolCacheAligned = 4,
  289.     PagedPoolCacheAligned = 5,
  290.     NonPagedPoolCacheAlignedMustS = 6
  291. } POOL_TYPE;
  292.  
  293. typedef enum { // effects on jtag noted in comment
  294.     HalHaltRoutine = 0x0, // hard poweroff (used by hotplug HDD) HalpPowerDownSystemNow
  295.     HalRebootRoutine = 0x1, // hard reset (video error) HalpRebootSystem
  296.     HalKdRebootRoutine = 0x2, // hard reset (used for dumpwritedump/frozen processor) HalpRebootSystem
  297.     HalFatalErrorRebootRoutine = 0x3, // hard reset HalpRebootSystem
  298.     HalResetSMCRoutine = 0x4, // power off (hard) HalpRebootSystem
  299.     HalPowerDownRoutine = 0x5, // power off (nice) HalpPowerDownSystem
  300.     HalRebootQuiesceRoutine = 0x6, // E79 (lost settings) HalpRebootQuiesceSystem
  301.     HalForceShutdownRoutine = 0x7, // frozen console HalpRequestPowerDownDpc
  302.     HalPowerCycleQuiesceRoutine = 0x8,
  303.     HalMaximumRoutine = 0x9,
  304. } FIRMWARE_REENTRY;
  305.  
  306. #ifdef __cplusplus
  307. extern "C" {
  308. #endif
  309.  
  310.     //EXPORTNUM(0x1BE)
  311.     //  extern IDirect3DDevice9* VdGlobalDevice;
  312.  
  313.     //EXPORTNUM(447)
  314.     //  extern IDirect3DDevice9* VdGlobalXamDevice;
  315.  
  316.     //NTSYSAPI EXPORTNUM(447) void* NTAPI VdGlobalXamDevice(void);
  317.     // SDK library function
  318.     VOID XapiThreadStartup(
  319.         IN      VOID(__cdecl *StartRoutine)(VOID *),
  320.         IN      PVOID StartContext,
  321.         IN      DWORD dwExitCode
  322.     );
  323.  
  324.     NTSYSAPI
  325.         EXPORTNUM(3)
  326.         void
  327.         NTAPI
  328.         DbgPrint(
  329.             const char* s,
  330.             ...
  331.         );
  332.  
  333.     NTSYSAPI
  334.         EXPORTNUM(9)
  335.         PVOID
  336.         NTAPI
  337.         ExAllocatePool(
  338.             IN  DWORD NumberOfBytes
  339.         );
  340.  
  341.     // uses POOL_TYPE NonPagedPool
  342.     NTSYSAPI
  343.         EXPORTNUM(10)
  344.         PVOID
  345.         NTAPI
  346.         ExAllocatePoolWithTag(
  347.             IN  DWORD NumberOfBytes,
  348.             IN  DWORD Tag
  349.         );
  350.  
  351.     NTSYSAPI
  352.         EXPORTNUM(11)
  353.         PVOID
  354.         NTAPI
  355.         ExAllocatePoolTypeWithTag(
  356.             IN  DWORD NumberOfBytes,
  357.             IN  DWORD Tag,
  358.             IN  POOL_TYPE PoolType
  359.         );
  360.  
  361.     EXPORTNUM(12)
  362.         extern PDWORD ExConsoleGameRegion;
  363.  
  364.     NTSYSAPI
  365.         EXPORTNUM(13)
  366.         DWORD
  367.         NTAPI
  368.         ExCreateThread(
  369.             IN      PHANDLE pHandle,
  370.             IN      DWORD dwStackSize,
  371.             IN      LPDWORD lpThreadId,
  372.             IN      PVOID apiThreadStartup,
  373.             IN      LPTHREAD_START_ROUTINE lpStartAddress,
  374.             IN      LPVOID lpParameter,
  375.             IN      DWORD dwCreationFlagsMod
  376.         );
  377.  
  378.     NTSYSAPI
  379.         EXPORTNUM(15)
  380.         VOID
  381.         NTAPI
  382.         ExFreePool(
  383.             IN PVOID  pPool
  384.         );
  385.  
  386.     NTSYSAPI
  387.         EXPORTNUM(16)
  388.         NTSTATUS
  389.         NTAPI
  390.         ExGetXConfigSetting(
  391.             IN      WORD dwCategory,
  392.             IN      WORD dwSetting,
  393.             OUT     PVOID pBuffer,
  394.             IN      WORD cbBuffer,
  395.             OUT     PWORD szSetting
  396.         );
  397.  
  398.     NTSYSAPI
  399.         EXPORTNUM(24)
  400.         NTSTATUS
  401.         NTAPI
  402.         ExSetXConfigSetting(
  403.             IN      WORD dwCategory,
  404.             IN      WORD dwSetting,
  405.             IN      PVOID pBuffer,
  406.             IN      WORD szSetting
  407.         );
  408.  
  409.     NTSYSAPI
  410.         EXPORTNUM(25)
  411.         VOID
  412.         NTAPI
  413.         ExTerminateThread(
  414.             IN DWORD  exitCode
  415.         );
  416.  
  417.     // tested on 9199 rebooter/freeboot
  418.     // 0 hard poweroff (used by hotplug HDD) HalpPowerDownSystemNow
  419.     // 1 hard reset (video error) HalpRebootSystem
  420.     // 2 hard reset (used for dumpwritedump/frozen processor) HalpRebootSystem
  421.     // 3 hard reset HalpRebootSystem
  422.     // 4 power off (hard) HalpRebootSystem
  423.     // 5 power off (nice) HalpPowerDownSystem
  424.     // 6 E79 (lost settings) HalpRebootQuiesceSystem
  425.     // 7 frozen console HalpRequestPowerDownDpc
  426.     NTSYSAPI
  427.         EXPORTNUM(40)
  428.         VOID
  429.         NTAPI
  430.         HalReturnToFirmware(
  431.             IN      DWORD dwPowerDownMode
  432.         );
  433.  
  434.     NTSYSAPI
  435.         EXPORTNUM(77)
  436.         VOID
  437.         NTAPI
  438.         KeAcquireSpinLockAtRaisedIrql(
  439.             IN OUT  PDWORD spinVar
  440.         );
  441.  
  442.     NTSYSAPI
  443.         UCHAR
  444.         EXPORTNUM(102)
  445.         NTAPI
  446.         KeGetCurrentProcessType(
  447.             VOID
  448.         );
  449.  
  450.     NTSYSAPI
  451.         EXPORTNUM(132)
  452.         NTSTATUS
  453.         NTAPI
  454.         KeQuerySystemTime(
  455.             OUT     PFILETIME CurrentTime // LARGE_INTEGER
  456.         );
  457.  
  458.     NTSYSAPI
  459.         EXPORTNUM(137)
  460.         VOID
  461.         NTAPI
  462.         KeReleaseSpinLockFromRaisedIrql(
  463.             IN OUT  PDWORD spinVar
  464.         );
  465.  
  466.     NTSYSAPI
  467.         EXPORTNUM(157)
  468.         HRESULT
  469.         NTAPI
  470.         KeSetEvent(
  471.             IN      HANDLE  Event,
  472.             IN      DWORD  Increment,
  473.             IN      BOOL  Wait
  474.         );
  475.  
  476.     NTSYSAPI
  477.         EXPORTNUM(168)
  478.         BYTE
  479.         NTAPI
  480.         KeStallExecutionProcessor(
  481.             IN      DWORD period
  482.         );
  483.  
  484.     NTSYSAPI
  485.         EXPORTNUM(177)
  486.         BYTE
  487.         NTAPI
  488.         KfAcquireSpinLock(
  489.             IN OUT  PDWORD spinVar
  490.         );
  491.  
  492.     NTSYSAPI
  493.         EXPORTNUM(178)
  494.         BYTE
  495.         NTAPI
  496.         KfRaiseIrql(
  497.             IN      BYTE irql
  498.         );
  499.  
  500.     NTSYSAPI
  501.         EXPORTNUM(180)
  502.         VOID
  503.         NTAPI
  504.         KfReleaseSpinLock(
  505.             IN OUT  PDWORD spinVar,
  506.             IN      BYTE oldIrql
  507.         );
  508.  
  509.     NTSYSAPI
  510.         EXPORTNUM(179)
  511.         VOID
  512.         NTAPI
  513.         KfLowerIrql(
  514.             IN      BYTE irql
  515.         );
  516.  
  517.     NTSYSAPI
  518.         EXPORTNUM(190)
  519.         PVOID
  520.         NTAPI
  521.         MmGetPhysicalAddress(
  522.             IN      PVOID Address
  523.         );
  524.  
  525.     NTSYSAPI
  526.         EXPORTNUM(224)
  527.         NTSTATUS
  528.         NTAPI
  529.         NtOpenSymbolicLinkObject(
  530.             OUT     PHANDLE LinkHandle,
  531.             IN      POBJECT_ATTRIBUTES ObjectAttributes
  532.         );
  533.  
  534.     NTSYSAPI
  535.         EXPORTNUM(227)
  536.         NTSTATUS
  537.         NTAPI
  538.         NtQueueApcThread(
  539.             IN      HANDLE ThreadHandle,
  540.             IN      PIO_APC_ROUTINE ApcRoutine,
  541.             IN      PVOID ApcRoutineContext OPTIONAL,
  542.             IN      PIO_STATUS_BLOCK ApcStatusBlock OPTIONAL,
  543.             IN      DWORD ApcReserved OPTIONAL
  544.         );
  545.  
  546.     NTSYSAPI
  547.         EXPORTNUM(231)
  548.         NTSTATUS
  549.         NTAPI
  550.         NtQueryFullAttributesFile(
  551.             IN      POBJECT_ATTRIBUTES ObjectAttributes,
  552.             OUT     PFILE_NETWORK_OPEN_INFORMATION Attributes
  553.         );
  554.  
  555.     NTSYSAPI
  556.         EXPORTNUM(236)
  557.         NTSTATUS
  558.         NTAPI
  559.         NtQuerySymbolicLinkObject(
  560.             IN      HANDLE LinkHandle,
  561.             IN OUT  PSTRING LinkTarget,
  562.             OUT     PULONG ReturnedLength OPTIONAL
  563.         );
  564.  
  565.     NTSYSAPI
  566.         EXPORTNUM(259)
  567.         HRESULT
  568.         NTAPI
  569.         ObCreateSymbolicLink(
  570.             IN      PSTRING SymbolicLinkName,
  571.             IN      PSTRING DeviceName
  572.         );
  573.  
  574.     NTSYSAPI
  575.         EXPORTNUM(260)
  576.         HRESULT
  577.         NTAPI
  578.         ObDeleteSymbolicLink(
  579.             IN      PSTRING SymbolicLinkName
  580.         );
  581.  
  582.     NTSYSAPI
  583.         EXPORTNUM(261)
  584.         VOID
  585.         NTAPI
  586.         ObDereferenceObject(
  587.             IN      PVOID Object
  588.         );
  589.  
  590.     NTSYSAPI
  591.         EXPORTNUM(299)
  592.         PVOID
  593.         NTAPI
  594.         RtlImageXexHeaderField(
  595.             IN      PVOID XexHeaderBase,
  596.             IN      DWORD ImageField
  597.         );
  598.  
  599.     NTSYSAPI
  600.         EXPORTNUM(300)
  601.         VOID
  602.         NTAPI
  603.         RtlInitAnsiString(
  604.             IN OUT  PANSI_STRING DestinationString,
  605.             IN      PCSZ  SourceString
  606.         );
  607.  
  608.     EXPORTNUM(342)
  609.         extern PXBOX_HARDWARE_INFO XboxHardwareInfo;
  610.  
  611.     EXPORTNUM(344)
  612.         extern PXBOX_KRNL_VERSION XboxKrnlVersion;
  613.  
  614.     NTSYSAPI
  615.         EXPORTNUM(394)
  616.         VOID
  617.         NTAPI
  618.         XeCryptRandom(
  619.             IN OUT  BYTE * pb,
  620.             IN      DWORD cb
  621.         );
  622.  
  623.     NTSYSAPI
  624.         EXPORTNUM(404)
  625.         BOOL
  626.         NTAPI
  627.         XexCheckExecutablePrivilege(
  628.             IN      DWORD priviledge
  629.         );
  630.  
  631.     EXPORTNUM(403)
  632.         extern PLDR_DATA_TABLE_ENTRY* XexExecutableModuleHandle;
  633.  
  634.     NTSYSAPI
  635.         EXPORTNUM(405)
  636.         NTSTATUS
  637.         NTAPI
  638.         XexGetModuleHandle(
  639.             IN      PSZ moduleName,
  640.             IN OUT  PHANDLE hand
  641.         );
  642.  
  643.     NTSYSAPI
  644.         EXPORTNUM(407)
  645.         DWORD
  646.         NTAPI
  647.         XexGetProcedureAddress(
  648.             IN      HANDLE hand,
  649.             IN      DWORD dwOrdinal,
  650.             IN      PVOID Address
  651.         );
  652.  
  653.     NTSYSAPI
  654.         EXPORTNUM(408)
  655.         DWORD
  656.         NTAPI
  657.         XexLoadExecutable(
  658.             IN      PCHAR xexName,
  659.             IN OUT  PHANDLE handle,
  660.             IN      DWORD typeInfo,
  661.             IN      DWORD ver
  662.         );
  663.  
  664.     NTSYSAPI
  665.         EXPORTNUM(409)
  666.         DWORD
  667.         NTAPI
  668.         XexLoadImage(
  669.             IN      LPCSTR xexName,
  670.             IN      DWORD typeInfo,
  671.             IN      DWORD ver,
  672.             IN OUT  PHANDLE modHandle
  673.         );
  674.  
  675.     NTSYSAPI
  676.         EXPORTNUM(410)
  677.         NTSTATUS
  678.         NTAPI
  679.         XexLoadImageFromMemory(
  680.             IN      PVOID pvXexBuffer,
  681.             IN      DWORD dwSize,
  682.             IN      LPCSTR szXexName,
  683.             IN      DWORD dwModuleTypeFlags,
  684.             IN      DWORD dwMinimumVersion,
  685.             IN OUT  PHANDLE pHandle
  686.         );
  687.  
  688.     NTSYSAPI
  689.         EXPORTNUM(412)
  690.         PVOID // returns pointer to NT header
  691.         NTAPI
  692.         XexPcToFileHeader(
  693.             IN      PVOID address,
  694.             OUT     PLDR_DATA_TABLE_ENTRY* ldatOut // puts pointer to LDR_DATA_TABLE_ENTRY in the address pointer here
  695.         );
  696.  
  697.     NTSYSAPI
  698.         EXPORTNUM(486)
  699.         NTSTATUS
  700.         NTAPI
  701.         XInputdReadState(
  702.             IN      PDWORD DeviceContext,
  703.             OUT     PDWORD pdwPacketNumber,
  704.             OUT     PXINPUT_GAMEPAD pInputData
  705.         );
  706.  
  707.     NTSYSAPI
  708.         EXPORTNUM(579)
  709.         NTSTATUS
  710.         NTAPI
  711.         XeKeysGenerateRandomKey(
  712.             IN      WORD KeyID,
  713.             OUT     PBYTE pbKey
  714.         );
  715.  
  716.     NTSYSAPI
  717.         EXPORTNUM(585)
  718.         BOOL
  719.         NTAPI
  720.         XeKeysHmacSha(
  721.             IN      DWORD keySel,
  722.             IN      CONST PBYTE pbInp1,
  723.             IN      DWORD cbInp1,
  724.             IN      CONST PBYTE pbInp2,
  725.             IN      DWORD cbInp2,
  726.             IN      CONST PBYTE pbInp3,
  727.             IN      DWORD cbInp3,
  728.             OUT     PBYTE pbOut,
  729.             IN      DWORD cbOut
  730.         );
  731.  
  732.     NTSYSAPI
  733.         EXPORTNUM(607)
  734.         DWORD
  735.         NTAPI
  736.         XeKeysExecute(
  737.             IN      PVOID pbBuffer,
  738.             IN      DWORD cbBuffer,
  739.             IN OUT  PVOID Arg1,
  740.             IN OUT  PVOID Arg2,
  741.             IN OUT  PVOID Arg3,
  742.             IN OUT  PVOID Arg4
  743.         );
  744.  
  745.     NTSYSAPI
  746.         EXPORTNUM(611)
  747.         VOID
  748.         NTAPI
  749.         AniTerminateAnimation(
  750.             VOID
  751.         );
  752.  
  753.     NTSYSAPI
  754.         EXPORTNUM(620)
  755.         VOID
  756.         NTAPI
  757.         HalGetPowerUpCause(
  758.             PBYTE reply
  759.         );
  760.  
  761. #ifdef __cplusplus
  762. }
  763. #endif
  764.  
  765.  
  766. #endif  //_KERNEL_DEFINES_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement