/************************************************************************ * * * Xbox.h -- This module defines the Xbox APIs * * * * Copyright (c) 2000 - 2001 Microsoft Corp. All rights reserved. * * * ************************************************************************/ #ifndef _XBOX_ #define _XBOX_ // // Define API decoration for direct importing of DLL references. // #define XBOXAPI #ifdef __cplusplus extern "C" { #endif XBOXAPI PVOID WINAPI XLoadSectionA( IN LPCSTR pSectionName ); #define XLoadSection XLoadSectionA XBOXAPI BOOL WINAPI XFreeSectionA( IN LPCSTR pSectionName ); #define XFreeSection XFreeSectionA XBOXAPI HANDLE WINAPI XGetSectionHandleA( IN LPCSTR pSectionName ); #define XGetSectionHandle XGetSectionHandleA XBOXAPI PVOID WINAPI XLoadSectionByHandle( IN HANDLE hSection ); XBOXAPI BOOL WINAPI XFreeSectionByHandle( HANDLE hSection ); XBOXAPI DWORD WINAPI XGetSectionSize( HANDLE hSection ); #define MAX_DISPLAY_BLOCKS 50001 XBOXAPI DWORD WINAPI XGetDisplayBlocks( IN LPCSTR lpPathName ); #define XSAVEGAME_NOCOPY 1 XBOXAPI DWORD WINAPI XCreateSaveGame( IN LPCSTR lpRootPathName, IN LPCWSTR lpSaveGameName, IN DWORD dwCreationDisposition, IN DWORD dwCreateFlags, OUT LPSTR lpPathBuffer, IN UINT uSize ); XBOXAPI DWORD WINAPI XDeleteSaveGame( IN LPCSTR lpRootPathName, IN LPCWSTR lpSaveGameName ); #define MAX_GAMENAME 128 typedef struct _XGAME_FIND_DATA { WIN32_FIND_DATAA wfd; CHAR szSaveGameDirectory[MAX_PATH]; WCHAR szSaveGameName[MAX_GAMENAME]; } XGAME_FIND_DATA, *PXGAME_FIND_DATA; XBOXAPI HANDLE WINAPI XFindFirstSaveGame( IN LPCSTR lpRootPathName, OUT PXGAME_FIND_DATA pFindGameData ); XBOXAPI BOOL WINAPI XFindNextSaveGame( IN HANDLE hFindGame, OUT PXGAME_FIND_DATA pFindGameData ); XBOXAPI BOOL WINAPI XFindClose( IN HANDLE hFind ); #define MAX_NICKNAME 32 XBOXAPI BOOL WINAPI XSetNicknameW( IN LPCWSTR lpNickname, IN BOOL fPreserveCase ); #define XSetNickname XSetNicknameW XBOXAPI HANDLE WINAPI XFindFirstNicknameW( IN BOOL fThisTitleOnly, OUT LPWSTR lpNickname, IN UINT uSize ); #define XFindFirstNickname XFindFirstNicknameW XBOXAPI BOOL WINAPI XFindNextNicknameW( IN HANDLE hFindNickname, OUT LPWSTR lpNickname, IN UINT uSize ); #define XFindNextNickname XFindNextNicknameW #define MAX_CONTENT_DISPLAY_NAME 128 typedef struct _XCONTENT_FIND_DATA { WIN32_FIND_DATAA wfd; DWORD dwOfferingId; DWORD dwFlags; CHAR szContentDirectory[MAX_PATH]; WCHAR szDisplayName[MAX_CONTENT_DISPLAY_NAME]; } XCONTENT_FIND_DATA, *PXCONTENT_FIND_DATA; XBOXAPI HANDLE WINAPI XFindFirstContent( IN LPCSTR lpRootPathName, IN DWORD dwFlagFilter, OUT PXCONTENT_FIND_DATA pFindContentData ); XBOXAPI BOOL WINAPI XFindNextContent( IN HANDLE hFindContent, OUT PXCONTENT_FIND_DATA pFindContentData ); #define MAX_SONG_NAME 32 #define MAX_SOUNDTRACK_NAME 32 #define MAX_SOUNDTRACKS 100 #define MAX_SONGS_IN_SNDTRK 500 typedef struct _XSOUNDTRACK_DATA { UINT uSoundtrackId; UINT uSongCount; UINT uSoundtrackLength; WCHAR szName[MAX_SOUNDTRACK_NAME]; } XSOUNDTRACK_DATA, *PXSOUNDTRACK_DATA; XBOXAPI HANDLE WINAPI XFindFirstSoundtrack( OUT PXSOUNDTRACK_DATA pSoundtrackData ); XBOXAPI BOOL WINAPI XFindNextSoundtrack( IN HANDLE hFindHandle, OUT PXSOUNDTRACK_DATA pSoundtrackData ); XBOXAPI HANDLE WINAPI XOpenSoundtrackSong( IN DWORD dwSongId, IN BOOL fAsyncMode ); XBOXAPI BOOL WINAPI XGetSoundtrackSongInfo( IN DWORD dwSoundtrackId, IN UINT uIndex, OUT PDWORD pdwSongId, OUT PDWORD pdwSongLength, OUT OPTIONAL PWSTR szNameBuffer, IN UINT uBufferSize ); #define XC_LANGUAGE_ENGLISH 1 #define XC_LANGUAGE_JAPANESE 2 #define XC_LANGUAGE_GERMAN 3 #define XC_LANGUAGE_FRENCH 4 #define XC_LANGUAGE_SPANISH 5 #define XC_LANGUAGE_ITALIAN 6 XBOXAPI DWORD WINAPI XGetLanguage( VOID ); #define XC_AV_PACK_SCART 0 #define XC_AV_PACK_HDTV 1 #define XC_AV_PACK_VGA 2 #define XC_AV_PACK_RFU 3 #define XC_AV_PACK_SVIDEO 4 #define XC_AV_PACK_STANDARD 6 XBOXAPI DWORD WINAPI XGetAVPack( VOID ); #define XC_VIDEO_STANDARD_NTSC_M 1 #define XC_VIDEO_STANDARD_NTSC_J 2 #define XC_VIDEO_STANDARD_PAL_I 3 XBOXAPI DWORD WINAPI XGetVideoStandard( VOID ); #define XC_VIDEO_FLAGS_WIDESCREEN 0x00000001 #define XC_VIDEO_FLAGS_HDTV_720p 0x00000002 #define XC_VIDEO_FLAGS_HDTV_1080i 0x00000004 #define XC_VIDEO_FLAGS_HDTV_480p 0x00000008 #define XC_VIDEO_FLAGS_LETTERBOX 0x00000010 #define XC_VIDEO_FLAGS_PAL_60Hz 0x00000040 XBOXAPI DWORD WINAPI XGetVideoFlags( VOID ); #define XC_AUDIO_FLAGS_STEREO 0x00000000 #define XC_AUDIO_FLAGS_MONO 0x00000001 #define XC_AUDIO_FLAGS_SURROUND 0x00000002 #define XC_AUDIO_FLAGS_ENABLE_AC3 0x00010000 #define XC_AUDIO_FLAGS_ENABLE_DTS 0x00020000 #define XC_AUDIO_FLAGS_BASICMASK 0x0000FFFF #define XC_AUDIO_FLAGS_ENCODEDMASK 0xFFFF0000 #define XC_AUDIO_FLAGS_BASIC(c) ((DWORD)(c) & XC_AUDIO_FLAGS_BASICMASK) #define XC_AUDIO_FLAGS_ENCODED(c) ((DWORD)(c) & XC_AUDIO_FLAGS_ENCODEDMASK) #define XC_AUDIO_FLAGS_COMBINED(b,e) (XC_AUDIO_FLAGS_BASIC(b) | XC_AUDIO_FLAGS_ENCODED(e)) XBOXAPI DWORD WINAPI XGetAudioFlags( VOID ); #define XC_PC_ESRB_ALL 0 #define XC_PC_ESRB_ADULT 1 #define XC_PC_ESRB_MATURE 2 #define XC_PC_ESRB_TEEN 3 #define XC_PC_ESRB_EVERYONE 4 #define XC_PC_ESRB_KIDS_TO_ADULTS 5 #define XC_PC_ESRB_EARLY_CHILDHOOD 6 XBOXAPI DWORD WINAPI XGetParentalControlSetting( VOID ); #define XC_GAME_REGION_NA 0x00000001 #define XC_GAME_REGION_JAPAN 0x00000002 #define XC_GAME_REGION_RESTOFWORLD 0x00000004 #define XC_GAME_REGION_MANUFACTURING 0x80000000 XBOXAPI DWORD WINAPI XGetGameRegion( VOID ); typedef struct _XPP_DEVICE_TYPE { ULONG Reserved[3]; } XPP_DEVICE_TYPE, *PXPP_DEVICE_TYPE; extern XPP_DEVICE_TYPE XDEVICE_TYPE_GAMEPAD_TABLE; extern XPP_DEVICE_TYPE XDEVICE_TYPE_MEMORY_UNIT_TABLE; extern XPP_DEVICE_TYPE XDEVICE_TYPE_VOICE_MICROPHONE_TABLE; extern XPP_DEVICE_TYPE XDEVICE_TYPE_VOICE_HEADPHONE_TABLE; #define XDEVICE_TYPE_GAMEPAD (&XDEVICE_TYPE_GAMEPAD_TABLE) #define XDEVICE_TYPE_MEMORY_UNIT (&XDEVICE_TYPE_MEMORY_UNIT_TABLE) #define XDEVICE_TYPE_VOICE_MICROPHONE (&XDEVICE_TYPE_VOICE_MICROPHONE_TABLE) #define XDEVICE_TYPE_VOICE_HEADPHONE (&XDEVICE_TYPE_VOICE_HEADPHONE_TABLE) #ifdef DEBUG_KEYBOARD #include #endif #define XDEVICE_PORT0 0 #define XDEVICE_PORT1 1 #define XDEVICE_PORT2 2 #define XDEVICE_PORT3 3 #define XDEVICE_NO_SLOT 0 #define XDEVICE_TOP_SLOT 0 #define XDEVICE_BOTTOM_SLOT 1 #define XDEVICE_PORT0_MASK (1 << XDEVICE_PORT0) #define XDEVICE_PORT1_MASK (1 << XDEVICE_PORT1) #define XDEVICE_PORT2_MASK (1 << XDEVICE_PORT2) #define XDEVICE_PORT3_MASK (1 << XDEVICE_PORT3) #define XDEVICE_PORT0_TOP_MASK (1 << XDEVICE_PORT0) #define XDEVICE_PORT1_TOP_MASK (1 << XDEVICE_PORT1) #define XDEVICE_PORT2_TOP_MASK (1 << XDEVICE_PORT2) #define XDEVICE_PORT3_TOP_MASK (1 << XDEVICE_PORT3) #define XDEVICE_PORT0_BOTTOM_MASK (1 << (XDEVICE_PORT0 + 16)) #define XDEVICE_PORT1_BOTTOM_MASK (1 << (XDEVICE_PORT1 + 16)) #define XDEVICE_PORT2_BOTTOM_MASK (1 << (XDEVICE_PORT2 + 16)) #define XDEVICE_PORT3_BOTTOM_MASK (1 << (XDEVICE_PORT3 + 16)) typedef struct _XDEVICE_PREALLOC_TYPE { PXPP_DEVICE_TYPE DeviceType; DWORD dwPreallocCount; } XDEVICE_PREALLOC_TYPE, *PXDEVICE_PREALLOC_TYPE; #define XGetPortCount() 4 XBOXAPI VOID WINAPI XInitDevices( DWORD dwPreallocTypeCount, PXDEVICE_PREALLOC_TYPE PreallocTypes ); XBOXAPI DWORD WINAPI XGetDevices( IN PXPP_DEVICE_TYPE DeviceType ); XBOXAPI BOOL WINAPI XGetDeviceChanges( IN PXPP_DEVICE_TYPE DeviceType, OUT PDWORD pdwInsertions, OUT PDWORD pdwRemovals ); #include typedef struct _XINPUT_GAMEPAD { WORD wButtons; BYTE bAnalogButtons[8]; SHORT sThumbLX; SHORT sThumbLY; SHORT sThumbRX; SHORT sThumbRY; } XINPUT_GAMEPAD, *PXINPUT_GAMEPAD; #define XINPUT_GAMEPAD_DPAD_UP 0x00000001 #define XINPUT_GAMEPAD_DPAD_DOWN 0x00000002 #define XINPUT_GAMEPAD_DPAD_LEFT 0x00000004 #define XINPUT_GAMEPAD_DPAD_RIGHT 0x00000008 #define XINPUT_GAMEPAD_START 0x00000010 #define XINPUT_GAMEPAD_BACK 0x00000020 #define XINPUT_GAMEPAD_LEFT_THUMB 0x00000040 #define XINPUT_GAMEPAD_RIGHT_THUMB 0x00000080 #define XINPUT_GAMEPAD_A 0 #define XINPUT_GAMEPAD_B 1 #define XINPUT_GAMEPAD_X 2 #define XINPUT_GAMEPAD_Y 3 #define XINPUT_GAMEPAD_BLACK 4 #define XINPUT_GAMEPAD_WHITE 5 #define XINPUT_GAMEPAD_LEFT_TRIGGER 6 #define XINPUT_GAMEPAD_RIGHT_TRIGGER 7 #define XINPUT_GAMEPAD_MAX_CROSSTALK 30 typedef struct _XINPUT_RUMBLE { WORD wLeftMotorSpeed; WORD wRightMotorSpeed; } XINPUT_RUMBLE, *PXINPUT_RUMBLE; typedef struct _XINPUT_STATE { DWORD dwPacketNumber; union { XINPUT_GAMEPAD Gamepad; }; } XINPUT_STATE, *PXINPUT_STATE; #define XINPUT_FEEDBACK_HEADER_INTERNAL_SIZE 58 typedef struct _XINPUT_FEEDBACK_HEADER { DWORD dwStatus; HANDLE OPTIONAL hEvent; BYTE Reserved[XINPUT_FEEDBACK_HEADER_INTERNAL_SIZE]; } XINPUT_FEEDBACK_HEADER, *PXINPUT_FEEDBACK_HEADER; typedef struct _XINPUT_FEEDBACK { XINPUT_FEEDBACK_HEADER Header; union { XINPUT_RUMBLE Rumble; }; } XINPUT_FEEDBACK, *PXINPUT_FEEDBACK; typedef struct _XINPUT_CAPABILITIES { BYTE SubType; WORD Reserved; union { XINPUT_GAMEPAD Gamepad; } In; union { XINPUT_RUMBLE Rumble; } Out; } XINPUT_CAPABILITIES, *PXINPUT_CAPABILITIES; #include #define XINPUT_DEVSUBTYPE_GC_GAMEPAD 0x01 #define XINPUT_DEVSUBTYPE_GC_GAMEPAD_ALT 0x02 #define XINPUT_DEVSUBTYPE_GC_WHEEL 0x10 #define XINPUT_DEVSUBTYPE_GC_ARCADE_STICK 0x20 #define XINPUT_DEVSUBTYPE_GC_DIGITAL_ARCADE_STICK 0x21 #define XINPUT_DEVSUBTYPE_GC_FLIGHT_STICK 0x30 #define XINPUT_DEVSUBTYPE_GC_SNOWBOARD 0x40 typedef struct _XINPUT_POLLING_PARAMETERS { BYTE fAutoPoll:1; BYTE fInterruptOut:1; BYTE ReservedMBZ1:6; BYTE bInputInterval; BYTE bOutputInterval; BYTE ReservedMBZ2; } XINPUT_POLLING_PARAMETERS, *PXINPUT_POLLING_PARAMETERS; XBOXAPI HANDLE WINAPI XInputOpen( IN PXPP_DEVICE_TYPE DeviceType, IN DWORD dwPort, IN DWORD dwSlot, IN PXINPUT_POLLING_PARAMETERS pPollingParameters OPTIONAL ); XBOXAPI VOID WINAPI XInputClose( IN HANDLE hDevice ); XBOXAPI DWORD WINAPI XInputGetState( IN HANDLE hDevice, OUT PXINPUT_STATE pState ); XBOXAPI DWORD WINAPI XInputPoll( IN HANDLE hDevice ); XBOXAPI DWORD WINAPI XInputSetState( IN HANDLE hDevice, IN OUT PXINPUT_FEEDBACK pFeedback ); XBOXAPI DWORD WINAPI XInputGetCapabilities( IN HANDLE hDevice, OUT PXINPUT_CAPABILITIES pCapabilities ); XBOXAPI DWORD WINAPI XMountMUA( IN DWORD dwPort, IN DWORD dwSlot, OUT PCHAR pchDrive ); #define XMountMU XMountMUA XBOXAPI DWORD WINAPI XUnmountMU( IN DWORD dwPort, IN DWORD dwSlot ); XBOXAPI DWORD WINAPI XMUPortFromDriveLetterA( IN CHAR chDrive ); #define XMUPortFromDriveLetter XMUPortFromDriveLetterA XBOXAPI DWORD WINAPI XMUSlotFromDriveLetterA( IN CHAR chDrive ); #define XMUSlotFromDriveLetter XMUSlotFromDriveLetterA #define MAX_MUNAME 32 XBOXAPI DWORD WINAPI XMUNameFromDriveLetter( IN CHAR chDrive, OUT LPWSTR lpName, IN UINT cchName ); #define XINIT_MOUNT_UTILITY_DRIVE 0x00000001 #define XINIT_FORMAT_UTILITY_DRIVE 0x00000002 #define XINIT_LIMIT_DEVKIT_MEMORY 0x00000004 #define XINIT_DONT_MODIFY_HARD_DISK 0x00000010 XBOXAPI BOOL WINAPI XMountUtilityDrive( IN BOOL fFormatClean ); XBOXAPI BOOL WINAPI XFormatUtilityDrive( VOID ); XBOXAPI DWORD WINAPI XMountAlternateTitleA( IN LPCSTR lpRootPath, IN DWORD dwAltTitleId, OUT PCHAR pchDrive ); #define XMountAlternateTitle XMountAlternateTitleA XBOXAPI DWORD WINAPI XUnmountAlternateTitleA( IN CHAR chDrive ); #define XUnmountAlternateTitle XUnmountAlternateTitleA XBOXAPI DWORD WINAPI XGetDiskSectorSizeA( IN LPCSTR lpRootPathName ); #define XGetDiskSectorSize XGetDiskSectorSizeA XBOXAPI DWORD WINAPI XGetDiskClusterSizeA( IN LPCSTR lpRootPathName ); #define XGetDiskClusterSize XGetDiskClusterSizeA #define MAX_LAUNCH_DATA_SIZE 3072 typedef struct _LAUNCH_DATA { BYTE Data[MAX_LAUNCH_DATA_SIZE]; } LAUNCH_DATA, *PLAUNCH_DATA; typedef struct _LD_LAUNCH_DASHBOARD { DWORD dwReason; DWORD dwContext; DWORD dwParameter1; DWORD dwParameter2; BYTE Reserved[MAX_LAUNCH_DATA_SIZE - 16]; } LD_LAUNCH_DASHBOARD, *PLD_LAUNCH_DASHBOARD; #define XLD_LAUNCH_DASHBOARD_MAIN_MENU 0 // Does not return to application #define XLD_LAUNCH_DASHBOARD_ERROR 1 // Does not return to application #define XLD_LAUNCH_DASHBOARD_MEMORY 2 #define XLD_LAUNCH_DASHBOARD_SETTINGS 3 #define XLD_LAUNCH_DASHBOARD_MUSIC 4 // // When XDash is launched with XLD_LAUNCH_DASHBOARD_ERROR, // LD_LAUNCH_DASHBOARD.dwParameter1 field contains one of // the following error codes. // #define XLD_ERROR_INVALID_XBE 1 #define XLD_ERROR_INVALID_HARD_DISK 2 #define XLD_ERROR_XBE_REGION 3 #define XLD_ERROR_XBE_PARENTAL_CONTROL 4 #define XLD_ERROR_XBE_MEDIA_TYPE 5 // // When the dwReason is XLD_LAUNCH_DASHBOARD_SETTINGS, // LD_LAUNCH_DASHBOARD.dwParameter1 will have 0 or more // of the following flags set. // #define XLD_SETTINGS_CLOCK 0x01 // Does not return to application with context #define XLD_SETTINGS_TIMEZONE 0x02 // Does not return to application with context #define XLD_SETTINGS_LANGUAGE 0x04 // Does not return to application with context #define XLD_SETTINGS_VIDEO 0x08 #define XLD_SETTINGS_AUDIO 0x10 typedef struct _LD_FROM_DASHBOARD { DWORD dwContext; BYTE Reserved[MAX_LAUNCH_DATA_SIZE - 4]; } LD_FROM_DASHBOARD, *PLD_FROM_DASHBOARD; typedef struct _LD_FROM_DEBUGGER_CMDLINE { CHAR szCmdLine[MAX_LAUNCH_DATA_SIZE]; } LD_FROM_DEBUGGER_CMDLINE, *PLD_FROM_DEBUGGER_CMDLINE; #define XLDEMO_RUNMODE_KIOSKMODE 0x01 #define XLDEMO_RUNMODE_USERSELECTED 0x02 typedef struct _LD_DEMO // Required for launching into and out of demos, data type is LDT_TITLE { DWORD dwID; DWORD dwRunmode; DWORD dwTimeout; CHAR szLauncherXBE[64]; CHAR szLaunchedXBE[64]; BYTE Reserved[MAX_LAUNCH_DATA_SIZE - 140]; } LD_DEMO, *PLD_DEMO; XBOXAPI DWORD WINAPI XLaunchNewImageA( IN LPCSTR lpImagePath, IN PLAUNCH_DATA pLaunchData ); #define XLaunchNewImage XLaunchNewImageA #define LDT_TITLE 0 #define LDT_FROM_DASHBOARD 2 #define LDT_FROM_DEBUGGER_CMDLINE 3 XBOXAPI DWORD WINAPI XGetLaunchInfo( OUT PDWORD pdwLaunchDataType, OUT PLAUNCH_DATA pLaunchData ); typedef VOID (WINAPI *XTHREAD_NOTIFY_PROC)(BOOL fCreate); typedef struct _XTHREAD_NOTIFICATION { LIST_ENTRY ListEntry; XTHREAD_NOTIFY_PROC pfnNotifyRoutine; } XTHREAD_NOTIFICATION, *PXTHREAD_NOTIFICATION; XBOXAPI VOID WINAPI XRegisterThreadNotifyRoutine( IN OUT PXTHREAD_NOTIFICATION pThreadNotification, IN BOOL fRegister ); XBOXAPI VOID WINAPI XSetProcessQuantumLength( IN DWORD dwMilliseconds ); XBOXAPI DWORD WINAPI XGetProcessQuantumLength( VOID ); XBOXAPI BOOL WINAPI XSetFileCacheSize( IN SIZE_T dwCacheSize ); XBOXAPI SIZE_T WINAPI XGetFileCacheSize( VOID ); XBOXAPI LPVOID WINAPI XPhysicalAlloc( IN SIZE_T dwSize, IN ULONG_PTR ulPhysicalAddress, IN ULONG_PTR ulAlignment, IN DWORD flProtect ); XBOXAPI SIZE_T WINAPI XPhysicalSize( IN LPVOID lpAddress ); XBOXAPI VOID WINAPI XPhysicalProtect( IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD flNewProtect ); XBOXAPI VOID WINAPI XPhysicalFree( IN LPVOID lpAddress ); XBOXAPI DWORD WINAPI XQueryMemoryProtect( IN LPVOID lpAddress ); #ifdef _DEBUG #define XVER_DEVKIT 1 #define XVER_RETAIL 2 XBOXAPI DWORD WINAPI XDebugGetSystemVersionA( OUT LPSTR pszVersionString, IN UINT cchVersionString ); #define XDebugGetSystemVersion XDebugGetSystemVersionA XBOXAPI DWORD WINAPI XDebugGetXTLVersionA( OUT LPSTR pszVersionString, IN UINT cchVersionString ); #define XDebugGetXTLVersion XDebugGetXTLVersionA #endif // _DEBUG #define XCALCSIG_SIGNATURE_SIZE 20 typedef struct _XCALCSIG_SIGNATURE { BYTE Signature[XCALCSIG_SIGNATURE_SIZE]; } XCALCSIG_SIGNATURE, *PXCALCSIG_SIGNATURE; #define XCALCSIG_FLAG_NON_ROAMABLE (0x00000001) XBOXAPI HANDLE WINAPI XCalculateSignatureBegin( IN DWORD dwFlags ); XBOXAPI HANDLE WINAPI XCalculateSignatureBeginEx( IN DWORD dwFlags, IN DWORD dwAltTitleId ); XBOXAPI DWORD WINAPI XCalculateSignatureUpdate( IN HANDLE hCalcSig, IN const BYTE *pbData, IN ULONG cbData ); XBOXAPI DWORD WINAPI XCalculateSignatureEnd( IN HANDLE hCalcSig, OUT PXCALCSIG_SIGNATURE pSignature ); XBOXAPI ULONG WINAPI XAutoPowerDownTimeRemaining(); #ifdef __cplusplus } #endif #endif // _XBOX_