Filesystem services: Difference between revisions
No edit summary |
|||
| (33 intermediate revisions by 4 users not shown) | |||
| Line 133: | Line 133: | ||
|- | |- | ||
| 38 || [20.0.0+] DetachSdCard | | 38 || [20.0.0+] DetachSdCard | ||
|- | |||
| 39 || [21.0.0+] ShutdownStorage | |||
|- | |||
| 40 || [21.0.0+] FixSaveDataCertificate | |||
|- | |- | ||
| 51 || [[#OpenSaveDataFileSystem]] | | 51 || [[#OpenSaveDataFileSystem]] | ||
| Line 183: | Line 187: | ||
|- | |- | ||
| 87 || [11.0.0+] [[#OpenSaveDataTransferManagerForRepair]] | | 87 || [11.0.0+] [[#OpenSaveDataTransferManagerForRepair]] | ||
|- | |||
| 88 || [21.0.0+] OpenSaveDataTransferManagerForSaveDataRepairWithPolicy | |||
|- | |- | ||
| 100 || OpenImageDirectoryFileSystem | | 100 || OpenImageDirectoryFileSystem | ||
| Line 276: | Line 282: | ||
| 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid | | 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid | ||
|- | |- | ||
| 651 || [S2] | | 650 || [S2] RegisterTicketVersionKeys | ||
|- | |||
| 651 || [S2] RegisterCpDeviceUniqueKey | |||
|- | |- | ||
| 660 || [S2] | | 660 || [S2] GetProcessEnvironmentSource | ||
|- | |- | ||
| 700 || [5.0.0+] [[#OpenAccessFailureDetectionEventNotifier]] | | 700 || [5.0.0+] [[#OpenAccessFailureDetectionEventNotifier]] | ||
| Line 290: | Line 298: | ||
| 720 || [5.0.0+] AbandonAccessFailure | | 720 || [5.0.0+] AbandonAccessFailure | ||
|- | |- | ||
| 800 || [2.0.0+] GetAndClearErrorInfo | | 800 || [2.0.0+] [[#GetAndClearErrorInfo]] | ||
|- | |- | ||
| 810 || [7.0.0+] RegisterProgramIndexMapInfo | | 810 || [7.0.0+] RegisterProgramIndexMapInfo | ||
| Line 302: | Line 310: | ||
| 1002 || [[#SetSaveDataRootPath]] | | 1002 || [[#SetSaveDataRootPath]] | ||
|- | |- | ||
| 1003 || DisableAutoSaveDataCreation | | 1003 || [1.0.0-21.2.0] DisableAutoSaveDataCreation | ||
|- | |- | ||
| 1004 || [[#SetGlobalAccessLogMode]] | | 1004 || [[#SetGlobalAccessLogMode]] | ||
| Line 395: | Line 403: | ||
| 0xD || CanMountBisSystem || 0x8000000000008080 || RW || [[#OpenBisFileSystem]] | | 0xD || CanMountBisSystem || 0x8000000000008080 || RW || [[#OpenBisFileSystem]] | ||
|- | |- | ||
| 0xE || CanMountBisSystemProperEncryption || 0x8000000000000080 || RW || [[#OpenBisFileSystem]] | | [21.0.0+] 0xE || CanMountBisUserProperPartition || 0x8000000000008080 || RW || [[#OpenBisFileSystem]] | ||
|- | |||
| [21.0.0+] 0xF || CanMountBisSystemProperEncryption || 0x8000000000000080 || RW || [[#OpenBisFileSystem]] | |||
|- | |||
| [21.0.0+] 0x10 || CanMountBisSystemProperPartition || 0x8000000000008080 || RW || [[#OpenBisFileSystem]] | |||
|- | |- | ||
| | | [21.0.0+] 0x11 ([-20.5.0] 0x10) || CanMountSdCard || 0xC000000000200000 || RW || [[#OpenSdCardFileSystem]] | ||
|- | |- | ||
| | | [21.0.0+] 0x12 ([-20.5.0] 0x11) || CanMountGameCard || 0x8000000000000010 || R- || [[#OpenGameCardFileSystem]] | ||
|- | |- | ||
| | | [21.0.0+] 0x13 ([-20.5.0] 0x12) || CanMountDeviceSaveData || 0x8000000000040020 || RW || [[#OpenSaveDataFileSystem]] | ||
|- | |- | ||
| | | [21.0.0+] 0x14 ([-20.5.0] 0x13) || CanMountSystemSaveData || 0x8000000000000028 || RW || [[#OpenSaveDataFileSystemBySystemSaveDataId]] | ||
|- | |- | ||
| | | [21.0.0+] 0x15 ([-20.5.0] 0x14) || CanMountOthersSaveData || 0x8000000000000020 || RW || [[#OpenSaveDataFileSystem]] | ||
|- | |- | ||
| | | [21.0.0+] 0x16 ([-20.5.0] 0x15) || CanMountOthersSystemSaveData || 0x8000000000000020 || RW || [[#OpenSaveDataFileSystemBySystemSaveDataId]] | ||
|- | |- | ||
| | | [21.0.0+] 0x17 ([-20.5.0] 0x16) || CanOpenBisPartitionBootPartition1Root || 0x8000000000010082 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x18 ([-20.5.0] 0x17) || CanOpenBisPartitionBootPartition2Root || 0x8000000000010080 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x19 ([-20.5.0] 0x18) || CanOpenBisPartitionUserDataRoot || 0x8000000000000080 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x1A ([-20.5.0] 0x19) || CanOpenBisPartitionBootConfigAndPackage2Part1 || 0x8000000000010080 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x1B ([-20.5.0] 0x1A) || CanOpenBisPartitionBootConfigAndPackage2Part2 || 0x8000000000010080 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x1C ([-20.5.0] 0x1B) || CanOpenBisPartitionBootConfigAndPackage2Part3 || 0x8000000000010080 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x1D ([-20.5.0] 0x1C) || CanOpenBisPartitionBootConfigAndPackage2Part4 || 0x8000000000010080 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x1E ([-20.5.0] 0x1D) || CanOpenBisPartitionBootConfigAndPackage2Part5 || 0x8000000000010080 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x1F ([-20.5.0] 0x1E) || CanOpenBisPartitionBootConfigAndPackage2Part6 || 0x8000000000010080 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x20 ([-20.5.0] 0x1F) || CanOpenBisPartitionCalibrationBinary || 0x8000000000000084 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x21 ([-20.5.0] 0x20) || CanOpenBisPartitionCalibrationFile || 0x8000000000000084 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x22 ([-20.5.0] 0x21) || CanOpenBisPartitionSafeMode || 0x8000000000000080 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x23 ([-20.5.0] 0x22) || CanOpenBisPartitionUser || 0x8000000000000080 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x24 ([-20.5.0] 0x23) || CanOpenBisPartitionSystem || 0x8000000000000080 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x25 ([-20.5.0] 0x24) || CanOpenBisPartitionSystemProperEncryption || 0x8000000000000080 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x26 ([-20.5.0] 0x25) || CanOpenBisPartitionSystemProperPartition || 0x8000000000000080 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x27 ([-20.5.0] 0x26) || CanOpenBisPartitionDeviceTreeBlob || 0x8000002000000080 || RW || [[#OpenBisStorage]] | ||
|- | |- | ||
| | | [21.0.0+] 0x28 ([3.0.0-20.5.0] 0x27) || CanOpenSdCardStorage || 0xC000000000200000 || RW || | ||
|- | |- | ||
| [3.0.0 | | [21.0.0+] 0x29 ([3.0.0-20.5.0] 0x28) || CanOpenGameCardStorage || 0x8000000000000100 || RW || [[#OpenGameCardStorage]], [[#EraseGameCard]] (bit1), [[#WriteToGameCardDirectly]] (bit1), [[#GetGameCardErrorInfo]] (bit1), [[#EraseAndWriteParamDirectly]] (bit1), [[#ReadParamDirectly]] (bit1), [[#ForceEraseGameCard]] (bit1) | ||
|- | |- | ||
| [ | | [21.0.0+] 0x2A ([4.0.0-20.5.0] 0x29) || CanMountSystemDataPrivate || 0x8000000000100008 || R- || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]] | ||
|- | |- | ||
| [ | | [21.0.0+] 0x2B || CanMountSystemDataPrivateIdRestricted || 0x8000200000000000 || R- || [[#OpenFileSystem]], [[#OpenDataStorageByDataId]] | ||
|- | |- | ||
| [5.0.0 | | [21.0.0+] 0x2C ([5.0.0-20.5.0] 0x2A) || CanMountHost || 0xC000000000400000 || RW || [[#OpenHostFileSystem]] | ||
|- | |- | ||
| [6.0.0 | | [21.0.0+] 0x2D ([6.0.0-20.5.0] 0x2B) || CanMountRegisteredUpdatePartition || 0x8000000000010000 || R- || [[#OpenRegisteredUpdatePartition]] | ||
|- | |- | ||
| [7.0.0 | | [21.0.0+] 0x2E ([7.0.0-20.5.0] 0x2C) || CanOpenSaveDataInternalStorage || [20.0.0+] 0x8000000000000020 ([-19.0.0] 0x8000000000000000) || RW || [[#OpenSaveDataInternalStorageFileSystem]] | ||
|- | |- | ||
| [7.0.0 | | [21.0.0+] 0x2F ([7.0.0-20.5.0] 0x2D) || CanMountTemporaryDirectory || 0xC000000000000000 || RW || [11.0.0+] OpenBaseFileSystem, [12.0.0+] FormatBaseFileSystem | ||
|- | |- | ||
| [11.0.0 | | [21.0.0+] 0x30 ([11.0.0-20.5.0] 0x2E) || CanMountAllBaseFilesystem || 0x8000000000000000 || RW || OpenBaseFileSystem, [12.0.0+] FormatBaseFileSystem | ||
|- | |- | ||
| [15.0.0 | | [21.0.0+] 0x31 ([15.0.0-20.5.0] 0x2F) || CanNotMount || 0x0000000000000000 || -- || OpenCustomStorageFileSystem | ||
|} | |} | ||
| Line 473: | Line 485: | ||
| 0x1 || CanEraseMmc || 0x8000000000000080 || EraseMmc | | 0x1 || CanEraseMmc || 0x8000000000000080 || EraseMmc | ||
|- | |- | ||
| [20.0.0+] 0x2 || | | [20.0.0+] 0x2 || CanMarkBeforeEraseMmcPartitionUserData || 0x8000100000000080 || | ||
|- | |- | ||
| [ | | [20.0.0+] 0x3 ([-19.0.0] 0x2) || CanGetGameCardDeviceCertificate || 0x8000000000000010 || GetGameCardDeviceCertificate | ||
|- | |- | ||
| [ | | [20.0.0+] 0x4 ([-19.0.0] 0x3) || CanGetGameCardIdSet || 0x8000000000000010 || GetGameCardIdSet | ||
|- | |- | ||
| [ | | [20.0.0+] 0x5 ([-19.0.0] 0x4) || CanFinalizeGameCardDriver || 0x8000000000000200 || FinalizeGameCardDriver | ||
|- | |- | ||
| [ | | [20.0.0+] 0x6 ([-19.0.0] 0x5) || CanGetGameCardAsicInfo || 0x8000000000000200 || GetGameCardAsicInfo | ||
|- | |- | ||
| [ | | [20.0.0+] 0x7 ([-19.0.0] 0x6) || CanGetGameCardAsicCertificate || 0x8000000000000200 || GetGameCardAsicCertificate | ||
|- | |- | ||
| [20.0.0+] 0x8 || | | [20.0.0+] 0x8 || CanGetGameCardCardHeader || 0x8000100000000080 || | ||
|- | |- | ||
| [20.0.0+] 0x9 || | | [20.0.0+] 0x9 || CanGetGameCardApplicationIdList || 0x8000100000000080 || | ||
|- | |- | ||
| [20.0.0+] 0xA || | | [20.0.0+] 0xA || CanGetGameCardDetailedErrorReportInfo || 0x8000080000000000 || | ||
|- | |- | ||
| [20.0.0+] 0xB || | | [20.0.0+] 0xB || CanSetGameCardSessionCreationDelay || 0x8000000000000010 || | ||
|- | |- | ||
| [20.0.0+] 0xC || | | [20.0.0+] 0xC || CanRegisterGameCardConfigurationData || 0x8000100000000080 || | ||
|- | |- | ||
| [ | | [20.0.0+] 0xD ([-19.0.0] 0x7) || CanCreateSaveData || 0x8000000000002020 || [[#CreateSaveDataFileSystem]] | ||
|- | |- | ||
| [ | | [20.0.0+] 0xE ([-19.0.0] 0x8) || CanDeleteSaveData || 0x8000000000000060 || [[#DeleteSaveDataFileSystem]], RegisterSaveDataFileSystemAtomicDeletion | ||
|- | |- | ||
| [ | | [20.0.0+] 0xF ([-19.0.0] 0x9) || CanCreateSystemSaveData || 0x8000000000000028 || CreateSaveDataFileSystemBySystemSaveDataId | ||
|- | |- | ||
| [ | | [20.0.0+] 0x10 ([-19.0.0] 0xA) || CanCreateOthersSystemSaveData || 0x8000000000000020 || CreateSaveDataFileSystemBySystemSaveDataId | ||
|- | |- | ||
| [ | | [20.0.0+] 0x11 ([-19.0.0] 0xB) || CanDeleteSystemSaveData || 0x8000000000004028 || [[#DeleteSaveDataFileSystem]], RegisterSaveDataFileSystemAtomicDeletion | ||
|- | |- | ||
| [ | | [20.0.0+] 0x12 ([-19.0.0] 0xC) || CanOpenSaveDataInfoReader || 0x8000000000000060 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]] | ||
|- | |- | ||
| [ | | [20.0.0+] 0x13 ([-19.0.0] 0xD) || CanOpenSaveDataInfoReaderForSystem || 0x8000000000004020 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]] | ||
|- | |- | ||
| [ | | [20.0.0+] 0x14 ([-19.0.0] 0xE) || CanOpenSaveDataInfoReaderForInternal || 0x8000000000000040 || [[#OpenSaveDataInfoReaderWithFilter]] | ||
|- | |- | ||
| [ | | [20.0.0+] 0x15 ([-19.0.0] 0xF) || CanOpenSaveDataMetaFile || 0x8000000000020000 || OpenSaveDataMetaFile | ||
|- | |- | ||
| [ | | [20.0.0+] 0x16 ([-19.0.0] 0x10) || CanSetCurrentPosixTime || 0x8000000000000400 || SetCurrentPosixTime, SetCurrentPosixTimeWithTimeDifference | ||
|- | |- | ||
| [ | | [20.0.0+] 0x17 ([-19.0.0] 0x11) || CanReadSaveDataFileSystemExtraData || 0x8000000000004060 || [[#ReadSaveDataFileSystemExtraData]] | ||
|- | |- | ||
| [ | | [20.0.0+] 0x18 ([-19.0.0] 0x12) || CanSetGlobalAccessLogMode || 0x8000000000080000 || [[#SetGlobalAccessLogMode]] | ||
|- | |- | ||
| [ | | [20.0.0+] 0x19 ([-19.0.0] 0x13) || CanSetSpeedEmulationMode || 0x8000000000080000 || SetSpeedEmulationMode | ||
|- | |- | ||
| [20.0.0+] 0x1A || | | [20.0.0+] 0x1A || CanSetApplicationStorageSpeed || 0x8000000400080000 || | ||
|- | |- | ||
| [20.0.0+] 0x1B || | | [20.0.0+] 0x1B || CanSetGameCardClockRateForSpeedEmulation || 0x8000000400080000 || | ||
|- | |- | ||
| [ | | [20.0.0+] 0x1C ([-19.0.0] 0x14) || CanDebug || 0xC000000000000000 || | ||
|- | |- | ||
| [ | | [20.0.0+] 0x1D ([-19.0.0] 0x15) || CanFillBis || 0xC000000000800000 || CreatePaddingFile, DeleteAllPaddingFiles | ||
|- | |- | ||
| [2.0.0-19.0.0] 0x16 | | [20.0.0+] 0x1E ([2.0.0-19.0.0] 0x16) || CanCorruptSaveData || 0xC000000001000000 || CorruptSaveDataFileSystem, CorruptSaveDataFileSystemBySaveDataSpaceId | ||
|- | |- | ||
| [2.0.0-19.0.0] 0x17 | | [20.0.0+] 0x1F ([2.0.0-19.0.0] 0x17) || CanCorruptSystemSaveData || 0x8000000001000060 || CorruptSaveDataFileSystem, CorruptSaveDataFileSystemBySaveDataSpaceId | ||
|- | |- | ||
| [2.0.0-19.0.0] 0x18 | | [20.0.0+] 0x20 ([2.0.0-19.0.0] 0x18) || CanVerifySaveData || 0x8000000000000060 || [[#VerifySaveDataFileSystem]], VerifySaveDataFileSystemBySaveDataSpaceId | ||
|- | |- | ||
| [2.0.0-19.0.0] 0x19 | | [20.0.0+] 0x21 ([2.0.0-19.0.0] 0x19) || CanDebugSaveData || 0xC000000002000000 || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]] | ||
|- | |- | ||
| [2.0.0-19.0.0] 0x1A | | [20.0.0+] 0x22 ([2.0.0-19.0.0] 0x1A) || CanFormatSdCard || 0x8000000004000000 || FormatSdCardFileSystem | ||
|- | |- | ||
| [3.0.0-19.0.0] 0x1B | | [20.0.0+] 0x23 ([3.0.0-19.0.0] 0x1B) || CanGetRightsId || 0x8000000008000000 || GetRightsId, GetRightsIdAndKeyGenerationByPath, GetRightsIdByPath | ||
|- | |- | ||
| [3.0.0-19.0.0] 0x1C | | [20.0.0+] 0x24 ([3.0.0-19.0.0] 0x1C) || CanRegisterExternalKey || 0x8000000010000000 || RegisterExternalKey, UnregisterAllExternalKey | ||
|- | |- | ||
| [4.0.0-19.0.0] 0x1D | | [20.0.0+] 0x25 ([4.0.0-19.0.0] 0x1D) || CanSetEncryptionSeed || 0x8000000000000800 || [[#SetSdCardEncryptionSeed]] | ||
|- | |- | ||
| [4.0.0-19.0.0] 0x1E | | [20.0.0+] 0x26 ([4.0.0-19.0.0] 0x1E) || CanWriteSaveDataFileSystemExtraDataTimeStamp || 0x8000000000000020 || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask | ||
|- | |- | ||
| [4.0.0-19.0.0] 0x1F | | [20.0.0+] 0x27 ([4.0.0-19.0.0] 0x1F) || CanWriteSaveDataFileSystemExtraDataFlags || 0x8000000000004020 || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask | ||
|- | |- | ||
| [4.0.0-19.0.0] 0x20 | | [20.0.0+] 0x28 ([4.0.0-19.0.0] 0x20) || CanWriteSaveDataFileSystemExtraDataCommitId || 0x8000000000000020 || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x21 | | [20.0.0+] 0x29 ([5.0.0-19.0.0] 0x21) || CanWriteSaveDataFileSystemExtraDataAll || 0x8000000000000000 || WriteSaveDataFileSystemExtraData, WriteSaveDataFileSystemExtraDataWithMask | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x22 | | [20.0.0+] 0x2A ([5.0.0-19.0.0] 0x22) || CanExtendSaveData || 0x8000000000002020 || ExtendSaveDataFileSystem | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x23 | | [20.0.0+] 0x2B ([5.0.0-19.0.0] 0x23) || CanExtendSystemSaveData || 0x8000000000000028 || ExtendSaveDataFileSystem | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x24 | | [20.0.0+] 0x2C ([5.0.0-19.0.0] 0x24) || CanExtendOthersSystemSaveData || 0x8000000000000020 || ExtendSaveDataFileSystem | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x25 | | [20.0.0+] 0x2D ([5.0.0-19.0.0] 0x25) || CanRegisterUpdatePartition || 0x8000000020000000 || RegisterUpdatePartition | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x26 | | [20.0.0+] 0x2E ([5.0.0-19.0.0] 0x26) || CanOpenSaveDataTransferManager || 0x8000000040000000 || [[#OpenSaveDataTransferManager]] | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x27 | | [20.0.0+] 0x2F ([5.0.0-19.0.0] 0x27) || CanOpenSaveDataTransferManagerVersion2 || 0x8000000200000000 || [[#OpenSaveDataTransferManagerVersion2]] | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x28 | | [20.0.0+] 0x30 ([5.0.0-19.0.0] 0x28) || CanOpenSaveDataTransferManagerForSaveDataRepair || 0x8000000200000000 || OpenSaveDataTransferManagerForSaveDataRepair | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x29 | | [20.0.0+] 0x31 ([5.0.0-19.0.0] 0x29) || CanOpenSaveDataTransferManagerForSaveDataRepairTool || 0x8000000000000000 || OpenSaveDataTransferManagerForSaveDataRepair | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x2A | | [20.0.0+] 0x32 ([5.0.0-19.0.0] 0x2A) || CanOpenOpenSaveDataTransferProhibiter || 0x8000000200002000 || [[#OpenSaveDataTransferProhibiter]] | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x2B | | [20.0.0+] 0x33 ([5.0.0-19.0.0] 0x2B) || CanOpenSaveDataMover || 0x8000001000000000 || [[#OpenSaveDataMover]] | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x2C | | [20.0.0+] 0x34 ([5.0.0-19.0.0] 0x2C) || CanOpenBisWiper || 0x8000000000000800 || [[#OpenBisWiper]] | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x2D | | [20.0.0+] 0x35 ([5.0.0-19.0.0] 0x2D) || CanListAccessibleSaveDataOwnerId || 0x8000000240002000 || [[#ListAccessibleSaveDataOwnerId]] | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x2E | | [20.0.0+] 0x36 ([5.0.0-19.0.0] 0x2E) || CanControlMmcPatrol || 0x8000000000000000 || SuspendMmcPatrol, ResumeMmcPatrol | ||
|- | |- | ||
| [5.0.0-19.0.0] 0x2F | | [20.0.0+] 0x37 ([5.0.0-19.0.0] 0x2F) || CanOverrideSaveDataTransferTokenSignVerificationKey || 0x8000000000000000 || OverrideSaveDataTransferTokenSignVerificationKey | ||
|- | |- | ||
| [5.1.0-19.0.0] 0x30 | | [20.0.0+] 0x38 ([5.1.0-19.0.0] 0x30) || CanOpenSdCardDetectionEventNotifier || 0x8000000080200000 || [[#OpenSdCardDetectionEventNotifier]] | ||
|- | |- | ||
| [20.0.0+] 0x39 || | | [20.0.0+] 0x39 || CanOpenSdCardAwakenReadyEventNotifier || 0x8000000000200000 || | ||
|- | |- | ||
| [6.0.0-19.0.0] 0x31 | | [20.0.0+] 0x3A ([6.0.0-19.0.0] 0x31) || CanOpenGameCardDetectionEventNotifier || 0x8000000080000110 || [[#OpenGameCardDetectionEventNotifier]] | ||
|- | |- | ||
| [20.0.0+] 0x3B || CanOpenGameCardAwakenReadyEventNotifier || 0x8000000080000110 || OpenGameCardAwakenReadyEventNotifier | | [20.0.0+] 0x3B || CanOpenGameCardAwakenReadyEventNotifier || 0x8000000080000110 || OpenGameCardAwakenReadyEventNotifier | ||
|- | |- | ||
| | | [20.0.0+] 0x3C ([6.0.0-19.0.0] 0x32) || CanOpenSystemDataUpdateEventNotifier || 0x8000000000100008 || OpenSystemDataUpdateEventNotifier | ||
|- | |- | ||
| [ | | [20.0.0+] 0x3D ([6.0.0-19.0.0] 0x33) || CanNotifySystemDataUpdateEvent || 0x8000000000010000 || NotifySystemDataUpdateEvent | ||
|- | |- | ||
| [ | | [20.0.0+] 0x3E ([6.0.0-19.0.0] 0x34) || CanOpenAccessFailureDetectionEventNotifier || 0x8000000100000000 || [[#OpenAccessFailureDetectionEventNotifier]] | ||
|- | |- | ||
| [ | | [20.0.0+] 0x3F ([6.0.0-19.0.0] 0x35) || CanGetAccessFailureDetectionEvent || 0x8000000100000000 || GetAccessFailureDetectionEvent | ||
|- | |- | ||
| [ | | [20.0.0+] 0x40 ([6.0.0-19.0.0] 0x36) || CanIsAccessFailureDetected || 0x8000000100000000 || IsAccessFailureDetected | ||
|- | |- | ||
| [ | | [20.0.0+] 0x41 ([6.0.0-19.0.0] 0x37) || CanResolveAccessFailure || 0x8000000100000000 || ResolveAccessFailure | ||
|- | |- | ||
| [ | | [20.0.0+] 0x42 ([6.0.0-19.0.0] 0x38) || CanAbandonAccessFailure || 0x8000000100000000 || AbandonAccessFailure | ||
|- | |- | ||
| [ | | [20.0.0+] 0x43 ([8.0.0-19.0.0] 0x39) || CanQuerySaveDataInternalStorageTotalSize || 0x8000000040000000 || QuerySaveDataInternalStorageTotalSize | ||
|- | |- | ||
| [20.0.0+] | | [20.0.0+] 0x44 ([9.0.0-19.0.0] 0x3A) || CanGetSaveDataCommitId || 0x8000000200000020 || [[#GetSaveDataCommitId]] | ||
|- | |- | ||
| | | [20.0.0+] 0x45 || CanSetSdCardAccessibility || 0x8000000000200000 || SetSdCardAccessibility | ||
|- | |- | ||
| [ | | [20.0.0+] 0x46 ([9.0.0-19.0.0] 0x3B) || CanSimulateDevice || 0x4000000000000000 || SimulateDeviceDetectionEvent, SetSimulationEvent, ClearSimulationEvent | ||
|- | |- | ||
| [ | | [20.0.0+] 0x47 ([9.0.0-19.0.0] 0x3C) || CanCreateSaveDataWithHashSalt || 0x8000000000000000 || [[#CreateSaveDataFileSystem]], [[#CreateSaveDataFileSystemWithHashSalt]] | ||
|- | |- | ||
| [ | | [20.0.0+] 0x48 ([9.0.0-19.0.0] 0x3D) || CanRegisterProgramIndexMapInfo || RegisterProgramIndexMapInfo | ||
|- | |- | ||
| [ | | [20.0.0+] 0x49 ([9.0.0-19.0.0] 0x3E) || CanChallengeCardExistence || 0x8000000000000010 || ChallengeCardExistence | ||
|- | |- | ||
| [ | | [20.0.0+] 0x4A ([9.0.0-19.0.0] 0x3F) || CanCreateOwnSaveData || 0x8000000800000000 || [[#CreateSaveDataFileSystem]], CreateSaveDataFileSystemWithHashSalt | ||
|- | |- | ||
| [ | | [20.0.0+] 0x4B ([9.0.0-19.0.0] 0x40) || CanDeleteOwnSaveData || 0x8000000800000000 || [[#DeleteSaveDataFileSystem]] | ||
|- | |- | ||
| [ | | [20.0.0+] 0x4C ([9.0.0-19.0.0] 0x41) || CanReadOwnSaveDataFileSystemExtraData || 0x8000000800000000 || [[#ReadSaveDataFileSystemExtraData]] | ||
|- | |- | ||
| [ | | [20.0.0+] 0x4D ([10.0.0-19.0.0] 0x42) || CanExtendOwnSaveData || 0x8000000800000000 || ExtendSaveDataFileSystem | ||
|- | |- | ||
| [ | | [20.0.0+] 0x4E ([10.0.0-19.0.0] 0x43) || CanOpenOwnSaveDataTransferProhibiter || 0x8000000800000000 || [[#OpenSaveDataTransferProhibiter]] | ||
|- | |- | ||
| [ | | [20.0.0+] 0x4F ([10.2.0-19.0.0] 0x44) || CanFindOwnSaveDataWithFilter || 0x8000000800000000 || [[#FindSaveDataWithFilter]] | ||
|- | |- | ||
| [ | | [20.0.0+] 0x50 ([11.0.0-19.0.0] 0x45) || CanOpenSaveDataTransferManagerForRepair || 0x8000000000000020 || [[#OpenSaveDataTransferManagerForRepair]] | ||
|- | |- | ||
| [ | | [20.0.0+] 0x51 ([13.0.0-19.0.0] 0x46) || CanSetDebugConfiguration || 0x8000000000000000 || SetDebugOption, UnsetDebugOption | ||
|- | |- | ||
| [ | | [20.0.0+] 0x52 ([13.0.0-19.0.0] 0x47) || CanOpenDataStorageByPath || 0x8000000000000000 || OpenDataStorageByPath | ||
|- | |- | ||
| [ | | [20.0.0+] 0x53 ([15.0.0-19.0.0] 0x48) || CanNotifyErrorContextServiceReady || 0x8000004000000000 || NotifyErrorContextServiceReady | ||
|- | |- | ||
| [17.0.0-19.0.0] | | [20.0.0+] 0x54 ([17.0.0-19.0.0] 0x49) || CanGetProgramId || 0x8000000008000000 || GetProgramId | ||
|- | |- | ||
| [20.0.0+] 0x55 || CanGetContentStorageInfo || 0x8000000000000800 || | | [20.0.0+] 0x55 || CanGetContentStorageInfo || 0x8000000000000800 || | ||
| Line 646: | Line 656: | ||
|- | |- | ||
| [20.0.0+] 0x57 || CanSetSdCardActivationMode || 0x8000000004000000 || | | [20.0.0+] 0x57 || CanSetSdCardActivationMode || 0x8000000004000000 || | ||
|- | |||
| [21.0.0+] 0x58 || CanEnableSdCardMalfunctionSimulation || 0x8000000000080000 || | |||
|- | |||
| [21.0.0+] 0x59 || CanDisableSdCardMalfunctionSimulation || 0x8000000000080000 || | |||
|- | |||
| [22.0.0+] 0x5A || CanShutdownStorage || 0x8000000000000000 || | |||
|} | |} | ||
| Line 659: | Line 675: | ||
Takes an input [[#FileSystemProxyType]] and an input [[NCM_services#ProgramId|ProgramId]]. Returns an [[#IFileSystem]]. | Takes an input [[#FileSystemProxyType]] and an input [[NCM_services#ProgramId|ProgramId]]. Returns an [[#IFileSystem]]. | ||
The [[#FileSystemProxyType]] must be '''Manual'''. | |||
Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as "MountContent", but official nn_sf_sync symbols use "OpenXX" names. | Note: web-applet strings refer to both this cmd and [[#OpenFileSystemWithId]] as "MountContent", but official nn_sf_sync symbols use "OpenXX" names. | ||
| Line 761: | Line 777: | ||
== OpenSaveDataTransferManager == | == OpenSaveDataTransferManager == | ||
No input, returns an [[#ISaveDataTransferManager]]. | No input, returns an [[#ISaveDataTransferManager]]. | ||
[S2] Stubbed, just returns Result 0x177202. | |||
== OpenSaveDataTransferManagerVersion2 == | == OpenSaveDataTransferManagerVersion2 == | ||
| Line 835: | Line 853: | ||
[8.0.0+] Now takes an additional 8-bytes of input. | [8.0.0+] Now takes an additional 8-bytes of input. | ||
== GetAndClearErrorInfo == | |||
[21.0.0+] Now takes a type-0x1A output buffer and no longer returns 0x80-bytes of output. | |||
== SetSaveDataSize == | == SetSaveDataSize == | ||
| Line 1,113: | Line 1,134: | ||
| 7 || [20.0.0+] SetSdCardActivationMode | | 7 || [20.0.0+] SetSdCardActivationMode | ||
|- | |- | ||
| 8 || [20.0.0+] TryGetSdCardInfo | | 8 || [20.0.0+] [S1] TryGetSdCardInfo | ||
|- | |- | ||
| 100 || [[#GetMmcCid]] | | 100 || [[#GetMmcCid]] | ||
| Line 1,139: | Line 1,160: | ||
| 119 || [20.0.0+] CheckAfterEraseMmcPartitionUserData | | 119 || [20.0.0+] CheckAfterEraseMmcPartitionUserData | ||
|- | |- | ||
| 200 || [[#IsGameCardInserted]] | | 200 || [S1] [[#IsGameCardInserted]] | ||
|- | |- | ||
| 201 || [[#EraseGameCard]] | | 201 || [S1] [[#EraseGameCard]] | ||
|- | |- | ||
| 202 || [[#GetGameCardHandle]] | | 202 || [S1] [[#GetGameCardHandle]] | ||
|- | |- | ||
| 203 || [[#GetGameCardUpdatePartitionInfo]] | | 203 || [S1] [[#GetGameCardUpdatePartitionInfo]] | ||
|- | |- | ||
| 204 || [[#FinalizeGameCardDriver]] | | 204 || [S1] [[#FinalizeGameCardDriver]] | ||
|- | |- | ||
| 205 || [[#GetGameCardAttribute]] | | 205 || [S1] [[#GetGameCardAttribute]] | ||
|- | |- | ||
| 206 || [[#GetGameCardDeviceCertificate]] | | 206 || [S1] [[#GetGameCardDeviceCertificate]] | ||
|- | |- | ||
| 207 || [[#GetGameCardAsicInfo]] | | 207 || [S1] [[#GetGameCardAsicInfo]] | ||
|- | |- | ||
| 208 || [[#GetGameCardIdSet]] | | 208 || [S1] [[#GetGameCardIdSet]] | ||
|- | |- | ||
| 209 || [[#WriteToGameCardDirectly]] | | 209 || [S1] [[#WriteToGameCardDirectly]] | ||
|- | |- | ||
| 210 || [[#SetVerifyWriteEnalbleFlag]] | | 210 || [S1] [[#SetVerifyWriteEnalbleFlag]] | ||
|- | |- | ||
| 211 || [[#GetGameCardImageHash]] | | 211 || [S1] [[#GetGameCardImageHash]] | ||
|- | |- | ||
| 212 || [2.0.0+] [[#GetGameCardDeviceIdForProdCard]] | | 212 || [S1] [2.0.0+] [[#GetGameCardDeviceIdForProdCard]] | ||
|- | |- | ||
| 213 || [2.0.0+] [[#EraseAndWriteParamDirectly]] | | 213 || [S1] [2.0.0+] [[#EraseAndWriteParamDirectly]] | ||
|- | |- | ||
| 214 || [2.0.0+] [[#ReadParamDirectly]] | | 214 || [S1] [2.0.0+] [[#ReadParamDirectly]] | ||
|- | |- | ||
| 215 || [2.0.0+] [[#ForceEraseGameCard]] | | 215 || [S1] [2.0.0+] [[#ForceEraseGameCard]] | ||
|- | |- | ||
| 216 || [2.0.0+] [[#GetGameCardErrorInfo]] | | 216 || [S1] [2.0.0+] [[#GetGameCardErrorInfo]] | ||
|- | |- | ||
| 217 || [2.1.0+] [[#GetGameCardErrorReportInfo]] | | 217 || [S1] [2.1.0+] [[#GetGameCardErrorReportInfo]] | ||
|- | |- | ||
| 218 || [3.0.0+] [[#GetGameCardDeviceId]] | | 218 || [S1] [3.0.0+] [[#GetGameCardDeviceId]] | ||
|- | |- | ||
| 219 || [8.0.0+] [[#ChallengeCardExistence]] | | 219 || [S1] [8.0.0+] [[#ChallengeCardExistence]] | ||
|- | |- | ||
| 220 || [9.0.0+] [[#GetGameCardCompatibilityType]] | | 220 || [S1] [9.0.0+] [[#GetGameCardCompatibilityType]] | ||
|- | |- | ||
| 221 || [17.0.0+] [[#GetGameCardAsicCertificate]] | | 221 || [S1] [17.0.0+] [[#GetGameCardAsicCertificate]] | ||
|- | |- | ||
| 222 || [18.0.0+] [[#GetGameCardCardHeader]] | | 222 || [S1] [18.0.0+] [[#GetGameCardCardHeader]] | ||
|- | |- | ||
| 223 || [19.0.0+] [[#SetGameCardSessionCreationDelay]] | | 223 || [S1] [19.0.0+] [[#SetGameCardSessionCreationDelay]] | ||
|- | |- | ||
| 224 || [19.0.0+] [[#GetGameCardApplicationIdList]] | | 224 || [S1] [19.0.0+] [[#GetGameCardApplicationIdList]] | ||
|- | |- | ||
| 225 || [20.0.0+] RegisterGameCardConfigurationData | | 225 || [S1] [20.0.0+] RegisterGameCardConfigurationData | ||
|- | |- | ||
| 226 || [20.0.0+] GetGameCardDetailedErrorReportInfo | | 226 || [S1] [20.0.0+] GetGameCardDetailedErrorReportInfo | ||
|- | |- | ||
| 300 || [[#SetSpeedEmulationMode]] | | 300 || [[#SetSpeedEmulationMode]] | ||
| Line 1,212: | Line 1,233: | ||
|- | |- | ||
| 501 || [6.0.0+] [[#ClearDeviceSimulationEvent]] | | 501 || [6.0.0+] [[#ClearDeviceSimulationEvent]] | ||
|- | |||
| 800 || [S2] [[#OpenStorageDeviceManager]] | |||
|} | |} | ||
| Line 1,367: | Line 1,390: | ||
== ClearDeviceSimulationEvent == | == ClearDeviceSimulationEvent == | ||
Takes a total of 4-bytes of input. No output. | Takes a total of 4-bytes of input. No output. | ||
== OpenStorageDeviceManager == | |||
Takes a byte. Returns an [[#IStorageDeviceManager]]. | |||
= IEventNotifier = | = IEventNotifier = | ||
| Line 1,586: | Line 1,612: | ||
| 16 || [[#SetKeySeedPackage]] | | 16 || [[#SetKeySeedPackage]] | ||
|- | |- | ||
| 17 || [20.0.0+] SetLocalKeySeedPackage | | 17 || [20.0.0+] [[#SetLocalKeySeedPackage|SetLocalKeySeedPackage]] | ||
|- | |- | ||
| 32 || [[#OpenSaveDataExporter]] | | 32 || [[#OpenSaveDataExporter]] | ||
| Line 1,618: | Line 1,644: | ||
== SetKeySeedPackage == | == SetKeySeedPackage == | ||
No input/output, takes a type-0x5 input buffer containing the '''KeySeedPackage'''. | No input/output, takes a type-0x5 input buffer containing the '''KeySeedPackage'''. | ||
== SetLocalKeySeedPackage == | |||
No input/output, takes a type-0x5 input buffer containing a [[#LocalKeySeedPackage|LocalKeySeedPackage]]. | |||
This can only be used after [[#SetKeySeedPackage]], in certain conditions. | |||
== OpenSaveDataExporter == | == OpenSaveDataExporter == | ||
| Line 1,890: | Line 1,921: | ||
= IStorageDeviceManager = | = IStorageDeviceManager = | ||
This is "nn::fssrv::storage::sf::IStorageDeviceManager". | [S2] This is "nn::fssrv::storage::sf::IStorageDeviceManager". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
| Line 1,896: | Line 1,927: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| | | 0 || IsInserted | ||
|- | |||
| 1 || IsHandleValid | |||
|- | |- | ||
| | | 2 || [[#OpenDetectionEvent]] | ||
|- | |- | ||
| | | 3 || Returns an [[#IEventNotifier]]. | ||
|- | |- | ||
| | | 10 || [[#OpenOperator]] | ||
|- | |- | ||
| | | 20 || [[#OpenDevice]] | ||
|- | |- | ||
| | | 21 || [[#OpenStorage]] | ||
|- | |- | ||
| | | 34 || Invalidate | ||
|} | |} | ||
== OpenDetectionEvent == | |||
Returns an [[#IEventNotifier]]. | |||
== OpenOperator == | |||
Returns an [[#IStorageDeviceOperator]]. | |||
== OpenDevice == | |||
Returns an [[#IStorageDevice]]. | |||
== OpenStorage == | |||
Returns an [[#IStorage]]. | |||
= IStorageDeviceOperator = | = IStorageDeviceOperator = | ||
This is "nn::fssrv::storage::sf::IStorageDeviceOperator". | [S2] This is "nn::fssrv::storage::sf::IStorageDeviceOperator". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
| Line 1,918: | Line 1,962: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| | | 0 || Operate | ||
|- | |- | ||
| | | 1 || OperateIn | ||
|- | |- | ||
| | | 10 || OperateOut | ||
|- | |- | ||
| | | 11 || OperateOut2 | ||
|- | |- | ||
| | | 20 || OperateInOut | ||
|- | |- | ||
| | | 21 || OperateIn2Out | ||
|} | |} | ||
= IStorageDevice = | = IStorageDevice = | ||
This is "nn::fssrv::storage::sf::IStorageDevice". | [S2] This is "nn::fssrv::storage::sf::IStorageDevice". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
| Line 1,938: | Line 1,982: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| | | 0 || GetHandle | ||
|- | |- | ||
| | | 1 || IsHandleValid | ||
|- | |- | ||
| | | 10 || OpenOperator | ||
|- | |- | ||
| | | 20 || Read | ||
|- | |- | ||
| | | 21 || Write | ||
|- | |- | ||
| | | 22 || Flush | ||
|- | |- | ||
| | | 23 || SetSize | ||
|- | |- | ||
| | | 24 || GetSize | ||
|- | |- | ||
| | | 25 || OperateRange | ||
|} | |} | ||
= FileSystemProxyType = | = FileSystemProxyType = | ||
This is "nn::fs::FileSystemProxyType". | This is "nn::fs::FileSystemProxyType". | ||
sdknso converts the input [[#ContentType|ContentType]] to a FileSystemProxyType, for use with the cmd input. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
| Line 2,009: | Line 2,055: | ||
|- | |- | ||
| 0 || None | | 0 || None | ||
|- | |||
| 1 || [S2] | |||
|- | |- | ||
| 15 || All | | 15 || All | ||
| Line 2,049: | Line 2,097: | ||
|- | |- | ||
| 101 || [3.0.0+] SafeMode | | 101 || [3.0.0+] SafeMode | ||
|- | |||
| 102 || [?+] ProperUser | |||
|} | |} | ||
| Line 2,272: | Line 2,322: | ||
| 33 || SystemProperPartition | | 33 || SystemProperPartition | ||
|- | |- | ||
| 34 || SignedSystemPartitionOnSafeMode | | 34 || [-?] SignedSystemPartitionOnSafeMode | ||
|- | |- | ||
| 35 || [16.0.0+] DeviceTreeBlob | | 35 || [16.0.0+] DeviceTreeBlob | ||
|- | |- | ||
| 36 || [16.0.0+] System0 | | 36 || [16.0.0+] System0 | ||
|- | |||
| 37 || System2 | |||
|- | |||
| 38 || [?+] System3 | |||
|- | |||
| 39 || [21.0.0+] UserProperPartition | |||
|} | |} | ||
System2 is not supported by FS, perhaps removed at some point? | |||
= SdCardSpeedMode = | = SdCardSpeedMode = | ||
| Line 3,186: | Line 3,244: | ||
= InitialDataVersion2 = | = InitialDataVersion2 = | ||
This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]]. | This is a 0x8210-byte struct used by [[#ISaveDataTransferManagerWithDivision]]. | ||
= LocalKeySeedPackage = | |||
This is "nn::fs::LocalKeySeedPackage". | |||
This is a 0x200-byte ([S2] 0x280-byte) struct. | |||
= FsAccessControlRestrictionMode = | = FsAccessControlRestrictionMode = | ||