Filesystem services: Difference between revisions

 
(13 intermediate revisions by 2 users not shown)
Line 659: Line 659:
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]].


Web-applet loads the [[#FileSystemProxyType]] (which must be '''Manual''') from u32_table[inparam].
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 1,113: Line 1,113:
| 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,139:
| 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,212:
|-
|-
| 501 || [6.0.0+] [[#ClearDeviceSimulationEvent]]
| 501 || [6.0.0+] [[#ClearDeviceSimulationEvent]]
|-
| 800 || [S2] [[#OpenStorageDeviceManager]]
|}
|}


Line 1,367: Line 1,369:
== 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,890: Line 1,895:


= 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,901:
! Cmd || Name
! Cmd || Name
|-
|-
| N/A || IsInserted
| 0 || IsInserted
|-
| 1 || IsHandleValid
|-
|-
| N/A || IsHandleValid
| 2 || [[#OpenDetectionEvent]]
|-
|-
| N/A || OpenDetectionEvent
| 3 || Returns an [[#IEventNotifier]].
|-
|-
| N/A || OpenOperator
| 10 || [[#OpenOperator]]
|-
|-
| N/A || OpenDevice
| 20 || [[#OpenDevice]]
|-
|-
| N/A || OpenStorage
| 21 || [[#OpenStorage]]
|-
|-
| N/A || Invalidate
| 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,936:
! Cmd || Name
! Cmd || Name
|-
|-
| N/A || Operate
| 0 || Operate
|-
|-
| N/A || OperateIn
| 1 || OperateIn
|-
|-
| N/A || OperateOut
| 10 || OperateOut
|-
|-
| N/A || OperateOut2
| 11 || OperateOut2
|-
|-
| N/A || OperateInOut
| 20 || OperateInOut
|-
|-
| N/A || OperateIn2Out
| 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,956:
! Cmd || Name
! Cmd || Name
|-
|-
| N/A || GetHandle
| 0 || GetHandle
|-
|-
| N/A || IsHandleValid
| 1 || IsHandleValid
|-
|-
| N/A || OpenOperator
| 10 || OpenOperator
|-
|-
| N/A || Read
| 20 || Read
|-
|-
| N/A || Write
| 21 || Write
|-
|-
| N/A || Flush
| 22 || Flush
|-
|-
| N/A || SetSize
| 23 || SetSize
|-
|-
| N/A || GetSize
| 24 || GetSize
|-
|-
| N/A || OperateRange
| 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,029:
|-
|-
| 0 || None
| 0 || None
|-
| 1 || [S2]
|-
|-
| 15 || All
| 15 || All