Line 8: |
Line 8: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
− | ! Cmd || Name || Notes | + | ! Cmd || Name |
| |- | | |- |
− | | 4 || [[#CreateGeneralServiceOld]] ([1.0.0-2.3.0] CreateGeneralService) || | + | | 4 || [[#CreateGeneralServiceOld]] ([1.0.0-2.3.0] CreateGeneralService) |
| |- | | |- |
− | | 5 || [3.0.0+] [[#CreateGeneralService]] || | + | | 5 || [3.0.0+] [[#CreateGeneralService]] |
| |} | | |} |
| | | |
Line 26: |
Line 26: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
− | ! Cmd || Name || Notes | + | ! Cmd || Name |
| + | |- |
| + | | 1 || [[#GetClientId]] |
| + | |- |
| + | | 2 || [[#CreateScanRequest]] |
| + | |- |
| + | | 4 || [[#CreateRequest]] |
| + | |- |
| + | | 5 || [[#GetCurrentNetworkProfile]] |
| + | |- |
| + | | 6 || EnumerateNetworkInterfaces |
| + | |- |
| + | | 7 || EnumerateNetworkProfiles |
| + | |- |
| + | | 8 || [[#GetNetworkProfile]] |
| |- | | |- |
− | | 1 || [[#GetClientId]] || | + | | 9 || [[#SetNetworkProfile]] |
| |- | | |- |
− | | 2 || CreateScanRequest || Returns an [[#IScanRequest]]. | + | | 10 || RemoveNetworkProfile |
| |- | | |- |
− | | 4 || CreateRequest || Returns an [[#IRequest]]. | + | | 11 || GetScanDataOld ([1.0.0-3.0.2] GetScanData) |
| |- | | |- |
− | | 5 || [[#GetCurrentNetworkProfile]] || | + | | 12 || [[#GetCurrentIpAddress]] |
| |- | | |- |
− | | 6 || EnumerateNetworkInterfaces || | + | | 13 || GetCurrentAccessPointOld ([1.0.0-3.0.2] GetCurrentAccessPoint) |
| |- | | |- |
− | | 7 || EnumerateNetworkProfiles || | + | | 14 || [[#CreateTemporaryNetworkProfile]] |
| |- | | |- |
− | | 8 || GetNetworkProfile || | + | | 15 || [[#GetCurrentIpConfigInfo]] |
| |- | | |- |
− | | 9 || SetNetworkProfile || | + | | 16 || SetWirelessCommunicationEnabled |
| |- | | |- |
− | | 10 || RemoveNetworkProfile || | + | | 17 || IsWirelessCommunicationEnabled |
| |- | | |- |
− | | 11 || GetScanDataOld ([1.0.0-3.0.2] GetScanData) || | + | | 18 || GetInternetConnectionStatus |
| |- | | |- |
− | | 12 || GetCurrentIpAddress || | + | | 19 || SetEthernetCommunicationEnabled |
| |- | | |- |
− | | 13 || GetCurrentAccessPointOld ([1.0.0-3.0.2] GetCurrentAccessPoint) || | + | | 20 || IsEthernetCommunicationEnabled |
| |- | | |- |
− | | 14 || CreateTemporaryNetworkProfile || Returns an [[#INetworkProfile]]. | + | | 21 || [[#IsAnyInternetRequestAccepted]] |
| |- | | |- |
− | | 15 || GetCurrentIpConfigInfo || | + | | 22 || IsAnyForegroundRequestAccepted |
| |- | | |- |
− | | 16 || SetWirelessCommunicationEnabled || | + | | 23 || PutToSleep |
| |- | | |- |
− | | 17 || IsWirelessCommunicationEnabled || | + | | 24 || WakeUp |
| |- | | |- |
− | | 18 || GetInternetConnectionStatus || | + | | 25 || GetSsidListVersion |
| |- | | |- |
− | | 19 || SetEthernetCommunicationEnabled || | + | | 26 || SetExclusiveClient |
| |- | | |- |
− | | 20 || IsEthernetCommunicationEnabled || | + | | 27 || GetDefaultIpSetting |
| |- | | |- |
− | | 21 || [[#IsAnyInternetRequestAccepted]] || | + | | 28 || SetDefaultIpSetting |
| |- | | |- |
− | | 22 || IsAnyForegroundRequestAccepted || | + | | 29 || SetWirelessCommunicationEnabledForTest |
| |- | | |- |
− | | 23 || PutToSleep || | + | | 30 || SetEthernetCommunicationEnabledForTest |
| |- | | |- |
− | | 24 || WakeUp || | + | | 31 || [2.0.0+] GetTelemetorySystemEventReadableHandle |
| |- | | |- |
− | | 25 || GetSsidListVersion || | + | | 32 || [2.0.0+] GetTelemetryInfo |
| |- | | |- |
− | | 26 || SetExclusiveClient || | + | | 33 || [2.0.0+] ConfirmSystemAvailability |
| |- | | |- |
− | | 27 || GetDefaultIpSetting || | + | | 34 || [4.0.0+] SetBackgroundRequestEnabled |
| |- | | |- |
− | | 28 || SetDefaultIpSetting || | + | | 35 || [4.0.0+] GetScanData |
| |- | | |- |
− | | 29 || SetWirelessCommunicationEnabledForTest || | + | | 36 || [4.0.0+] GetCurrentAccessPoint |
| |- | | |- |
− | | 30 || SetEthernetCommunicationEnabledForTest || | + | | 37 || [4.0.0+] Shutdown |
| |- | | |- |
− | | 31 || [2.0.0+] GetTelemetorySystemEventReadableHandle || | + | | 38 || [6.0.0+] GetAllowedChannels |
| |- | | |- |
− | | 32 || [2.0.0+] GetTelemetryInfo || | + | | 39 || [8.0.0+] NotifyApplicationSuspended |
| |- | | |- |
− | | 33 || [2.0.0+] ConfirmSystemAvailability || | + | | 40 || [8.0.0+] SetAcceptableNetworkTypeFlag |
| |- | | |- |
− | | 34 || [4.0.0+] SetBackgroundRequestEnabled || | + | | 41 || [8.0.0+] GetAcceptableNetworkTypeFlag |
| |- | | |- |
− | | 35 || [4.0.0+] GetScanData || | + | | 42 || [8.0.0+] NotifyConnectionStateChanged |
| |- | | |- |
− | | 36 || [4.0.0+] GetCurrentAccessPoint || | + | | 43 || [9.0.0+] [[#SetWowlDelayedWakeTime]] |
| |- | | |- |
− | | 37 || [4.0.0+] Shutdown || | + | | 44 || [18.0.0+] IsWiredConnectionAvailable |
| |- | | |- |
− | | 38 || [6.0.0+] GetAllowedChannels || | + | | 45 || [18.0.0+] IsNetworkEmulationFeatureEnabled |
| |- | | |- |
− | | 39 || [8.0.0+] NotifyApplicationSuspended || | + | | 46 || [18.0.0+] SelectActiveNetworkEmulationProfileIdForDebug |
| |- | | |- |
− | | 40 || [8.0.0+] SetAcceptableNetworkTypeFlag || | + | | 49 || [18.0.0+] GetActiveNetworkEmulationProfileId |
| |- | | |- |
− | | 41 || [8.0.0+] GetAcceptableNetworkTypeFlag || | + | | 50 || [18.0.0+] IsRewriteFeatureEnabled |
| |- | | |- |
− | | 42 || [8.0.0+] NotifyConnectionStateChanged || | + | | 51 || [18.0.0+] CreateRewriteRule |
| |- | | |- |
− | | 43 || [9.0.0+] SetWowlDelayedWakeTime || | + | | 52 || [18.0.0+] DestroyRewriteRule |
| |} | | |} |
| | | |
Line 117: |
Line 131: |
| | | |
| The wrapper for this with official sw will return 0 when any errors occur (wrapper returns [[#ClientId]] not Result). | | The wrapper for this with official sw will return 0 when any errors occur (wrapper returns [[#ClientId]] not Result). |
| + | |
| + | === CreateScanRequest === |
| + | No input, returns an output [[#IScanRequest]]. |
| + | |
| + | === CreateRequest === |
| + | Takes an input s32 "nn::nifm::RequirementPreset", returns an output [[#IRequest]]. |
| + | |
| + | sdknso loads the s32 from "nn::nifm::RequestParameters", which has hard-coded value 0x2. |
| | | |
| === GetCurrentNetworkProfile === | | === GetCurrentNetworkProfile === |
Line 122: |
Line 144: |
| | | |
| sdknso converts the output to [[#NetworkProfileData]]. | | sdknso converts the output to [[#NetworkProfileData]]. |
| + | |
| + | === GetNetworkProfile === |
| + | Takes an input "nn::util::Uuid" (same Uuid from [[#SfNetworkProfileData]]) and a type-0x1A output buffer containing a [[#SfNetworkProfileData]]. |
| + | |
| + | sdknso converts the output to [[#NetworkProfileData]]. |
| + | |
| + | === SetNetworkProfile === |
| + | Takes a type-0x19 input buffer containing a [[#SfNetworkProfileData]] and returns an output "nn::util::Uuid". |
| + | |
| + | sdknso converts the input to [[#SfNetworkProfileData]], which is then passed to the cmd. |
| + | |
| + | This is only available with nifm:a. |
| + | |
| + | === GetCurrentIpAddress === |
| + | No input, returns an output [[#IpV4Address]]. |
| + | |
| + | === CreateTemporaryNetworkProfile === |
| + | Returns an [[#INetworkProfile]]. |
| + | |
| + | === GetCurrentIpConfigInfo === |
| + | No input, returns an output [[#IpAddressSetting]] and a [[#DnsSetting]]. |
| | | |
| === IsAnyInternetRequestAccepted === | | === IsAnyInternetRequestAccepted === |
Line 127: |
Line 170: |
| | | |
| The wrapper for this with official sw will return 0 when any errors occur (wrapper returns bool not Result). | | The wrapper for this with official sw will return 0 when any errors occur (wrapper returns bool not Result). |
| + | |
| + | === SetWowlDelayedWakeTime === |
| + | Takes an input s32, no output. |
| + | |
| + | This requires nifm:a/nifm:s. |
| + | |
| + | This goes through a list of objects to call a vfunc with the input value, that func then writes the input into the object state. The default value is 0. This field in state is later used for [[WLAN_services|wlaninf]] cmd30. |
| | | |
| === IScanRequest === | | === IScanRequest === |
Line 147: |
Line 197: |
| | | |
| === IRequest === | | === IRequest === |
− | This is "nn::nifm::detail::IRequest". This represents an application or sysmodule's request to bring a network up. | + | This is "nn::nifm::detail::IRequest". |
| + | |
| + | This represents an application or sysmodule's request to bring a network up. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 193: |
Line 245: |
| | 20 || GetRevision | | | 20 || GetRevision |
| |- | | |- |
− | | 21 || GetAppletInfo | + | | 21 || [[#GetAppletInfo]] |
| |- | | |- |
| | 22 || GetAdditionalInfo | | | 22 || GetAdditionalInfo |
| |- | | |- |
− | | 23 || [3.0.0+] SetKeptInSleep | + | | 23 || [3.0.0+] [[#SetKeptInSleep]] |
| |- | | |- |
− | | 24 || [3.0.0+] RegisterSocketDescriptor | + | | 24 || [3.0.0+] [[#RegisterSocketDescriptor]] |
| |- | | |- |
− | | 25 || [3.0.0+] UnregisterSocketDescriptor | + | | 25 || [3.0.0+] [[#UnregisterSocketDescriptor]] |
| |} | | |} |
| | | |
| ==== GetRequestState ==== | | ==== GetRequestState ==== |
− | {| class="wikitable" border="1"
| + | No input. Returns an output [[#RequestState]]. |
− | |-
| |
− | ! Number || Description
| |
− | |-
| |
− | | 1 || Not yet submitted or error
| |
− | |-
| |
− | | 2 || Pending (sdk calls this OnHold)
| |
− | |-
| |
− | | 3 || Connected
| |
− | |}
| |
| | | |
| ==== GetResult ==== | | ==== GetResult ==== |
| + | No input/output. |
| + | |
| If the request enters state 1, this command can be used to determine why. It responds with the nice networking error codes that there are support pages for. | | If the request enters state 1, this command can be used to determine why. It responds with the nice networking error codes that there are support pages for. |
| | | |
| ==== GetSystemEventReadableHandles ==== | | ==== GetSystemEventReadableHandles ==== |
− | Returns two event handles. The first one signals when the RequestState changes.
| + | No input, returns two Event handles. The first one signals when the RequestState changes. |
| + | |
| + | This is used immediately after [[#CreateRequest]]. |
| + | |
| + | sdknso uses EventClearMode=1 for the first Event, for the second Event this can be user-specified or a default value of 1. |
| | | |
| ==== Cancel ==== | | ==== Cancel ==== |
| + | No input/output. |
| + | |
| Cancels the request to bring the network up. | | Cancels the request to bring the network up. |
| | | |
| ==== Submit ==== | | ==== Submit ==== |
| + | No input/output. |
| + | |
| Submits the request to bring the network up. Call this after configuring the request. | | Submits the request to bring the network up. Call this after configuring the request. |
| | | |
Line 234: |
Line 287: |
| | | |
| ==== SetConnectionConfirmationOption ==== | | ==== SetConnectionConfirmationOption ==== |
− | Set how to verify the internet connection.
| + | Takes an input [[#ConnectionConfirmationOption]]. No output. |
− | | |
− | {| class="wikitable" border="1"
| |
− | |-
| |
− | ! Option || Description
| |
− | |-
| |
− | | 0 ||
| |
− | |-
| |
− | | 1 ||
| |
− | |-
| |
− | | 2 || "Local" network (does not check for working DNS)
| |
− | |-
| |
− | | 3 ||
| |
− | |-
| |
− | | 4 || Default
| |
− | |-
| |
− | | 5 ||
| |
− | |-
| |
− | |}
| |
| | | |
| ==== SetPersistent ==== | | ==== SetPersistent ==== |
Line 261: |
Line 296: |
| | | |
| [3.0.0+] Returns an additional 4-bytes of output. | | [3.0.0+] Returns an additional 4-bytes of output. |
| + | |
| + | ==== GetAppletInfo ==== |
| + | Takes an input u32, a type-0x6 output buffer, and 3 output u32s. |
| + | |
| + | sdknso uses the output from this to launch a LibraryApplet. |
| + | |
| + | The input u32 is set to the output from <code>nn::applet::GetExpectedThemeColorForSystem()</code>. |
| + | |
| + | The output u32s are: [[Applet_Manager_services#AppletId|AppletId]], [[Applet_Manager_services#LibraryAppletMode|LibraryAppletMode]], out_size. |
| + | |
| + | sdknso uses size 0x1000 for the buffer. |
| + | |
| + | The out_size is the total data size written to the output buffer. The buffer contains an array of: {s32 size} {data with the specified size}, with size==-1 indicating that the end of the array was reached. The data from here is pushed as applet input storage. |
| + | |
| + | The returned AppletId is one of the following: error, wifiWebAuth, or netConnect. |
| + | |
| + | ==== SetKeptInSleep ==== |
| + | Takes an input bool, no output. |
| + | |
| + | [[#GetRequestState|RequestState]] must be value 1. This sets a flag in state. |
| + | |
| + | ==== RegisterSocketDescriptor ==== |
| + | Takes an input s32 sockfd, no output. |
| + | |
| + | [[#GetRequestState|RequestState]] must be value 3. Only 1 socket can be registered at a time per IRequest. The specified sockfd is written into state. |
| + | |
| + | During sleep-entry, [[WLAN_services|wlan:inf]] cmd19 is eventually used with data from currently-open IRequest objects' registered-sockets. Note however, the wlaninf cmd only supports a single set of data, hence if there's more than 1 IRequest with a registered socket only the last object in the list will actually get used during wlan:inf RequestSleep. |
| + | |
| + | ==== UnregisterSocketDescriptor ==== |
| + | Takes an input s32 sockfd, no output. |
| + | |
| + | [[#GetRequestState|RequestState]] must be value 3. The input sockfd must match the one previously registered with [[#RegisterSocketDescriptor]]. |
| | | |
| === INetworkProfile === | | === INetworkProfile === |
Line 277: |
Line 344: |
| | | |
| = ClientId = | | = ClientId = |
− | This is "nn::nifm::ClientId". This contains an u32. | + | This is "nn::nifm::ClientId". This is a 0x4-byte struct. |
| | | |
| = SfNetworkProfileData = | | = SfNetworkProfileData = |
| This is "nn::nifm::detail::sf::NetworkProfileData". This is a 0x17C-byte struct. This is converted to/from [[#NetworkProfileData]] by sdknso. | | This is "nn::nifm::detail::sf::NetworkProfileData". This is a 0x17C-byte struct. This is converted to/from [[#NetworkProfileData]] by sdknso. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0xC2 || [[#IpSettingData|IpSetting]] |
| + | |- |
| + | | 0xC2 || 0x10 || Id |
| + | |- |
| + | | 0xD2 || 0x40 || Name (NUL-terminated Network Name string) |
| + | |- |
| + | | 0x112 || 0x1 || |
| + | |- |
| + | | 0x113 || 0x1 || |
| + | |- |
| + | | 0x114 || 0x1 || |
| + | |- |
| + | | 0x115 || 0x1 || |
| + | |- |
| + | | 0x116 || 0x65 || [[#SfWirelessSettingData|SfWirelessSettingData]] |
| + | |- |
| + | | 0x17B || 0x1 || Reserved |
| + | |} |
| | | |
| = NetworkProfileData = | | = NetworkProfileData = |
− | This is "nn::nifm::NetworkProfileData". This is a 0x18E-byte struct. This is converted from/to [[#SfNetworkProfileData]] by sdknso. | + | This is "nn::nifm::NetworkProfileData". This is converted from/to [[#SfNetworkProfileData]] by sdknso. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x10 || Id |
| + | |- |
| + | | 0x10 || 0x40 || Name (NUL-terminated Network Name string) |
| + | |- |
| + | | 0x50 || 0x4 || [[#NetworkProfileType|NetworkProfileType]] |
| + | |- |
| + | | 0x54 || 0x4 || [[#NetworkInterfaceType|NetworkInterfaceType]] |
| + | |- |
| + | | 0x58 || 0x1 || IsAutoConnect |
| + | |- |
| + | | 0x59 || 0x1 || IsLargeCapacity |
| + | |- |
| + | | 0x5A || 0x2 || Reserved |
| + | |- |
| + | | 0x5C || 0x70 || [[#WirelessSettingData|WirelessSetting]] |
| + | |- |
| + | | 0xCC || 0xC2 || [[#IpSettingData|IpSetting]] |
| + | |} |
| + | |
| + | = NetworkProfileType = |
| + | This is "nn::nifm::NetworkProfileType". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Bits |
| + | ! Description |
| + | |- |
| + | | 0 || User |
| + | |- |
| + | | 1 || SsidList |
| + | |- |
| + | | 2 || Temporary |
| + | |} |
| + | |
| + | = NetworkInterfaceType = |
| + | This is "nn::nifm::NetworkInterfaceType". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Invalid |
| + | |- |
| + | | 1 || Ieee80211 |
| + | |- |
| + | | 2 || Ethernet |
| + | |} |
| + | |
| + | = SfWirelessSettingData = |
| + | This is a 0x65-byte struct. This is converted to/from [[#WirelessSettingData]] during the [[#NetworkProfileData]] conversion. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 291: |
Line 441: |
| ! Description | | ! Description |
| |- | | |- |
− | | 0x5C || 0x70 || [[#WirelessSettingData]] | + | | 0x0 || 0x21 || [[#Ssid|Ssid]] (length is clamped to 0x20 during [[#NetworkProfileData]] conversion) |
| |- | | |- |
− | | 0xCC || 0xC2 || [[#IpSettingData]] | + | | 0x21 || 0x1 || |
| + | |- |
| + | | 0x22 || 0x1 || |
| + | |- |
| + | | 0x23 || 0x1 || |
| + | |- |
| + | | 0x24 || 0x41 || [[#SharedKey|SharedKey]] |
| |} | | |} |
| | | |
| = WirelessSettingData = | | = WirelessSettingData = |
| This is "nn::nifm::WirelessSettingData". This is a 0x70-byte struct. | | This is "nn::nifm::WirelessSettingData". This is a 0x70-byte struct. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x22 || [[#SsidConfig|SsidConfig]] |
| + | |- |
| + | | 0x23 || 0x2 || Reserved |
| + | |- |
| + | | 0x24 || 0x4C || [[#Security|Security]] |
| + | |} |
| + | |
| + | = SsidConfig = |
| + | This is "nn::nifm::SsidConfig". This is a 0x22-byte struct. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x21 || [[#Ssid|Ssid]] |
| + | |- |
| + | | 0x21 || 0x1 || NonBroadcast |
| + | |} |
| + | |
| + | = Security = |
| + | This is "nn::nifm::Security". This is a 0x4C-byte struct. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x8 || [[#AuthEncryption|AuthEncryption]] |
| + | |- |
| + | | 0x8 || 0x41 || [[#SharedKey|SharedKey]] |
| + | |- |
| + | | 0x49 || 0x3 || Reserved |
| + | |} |
| + | |
| + | = Ssid = |
| + | This is "nn::nifm::Ssid". This is a 0x21-byte struct. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x1 || Length |
| + | |- |
| + | | 0x1 || 0x20 || Hex (NUL-terminated SSID string) |
| + | |} |
| + | |
| + | = AuthEncryption = |
| + | This is "nn::nifm::AuthEncryption". This is a 0x8-byte struct. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x4 || [[#Authentication|Authentication]] |
| + | |- |
| + | | 0x4 || 0x4 || [[#Encryption|Encryption]] |
| + | |} |
| + | |
| + | = SharedKey = |
| + | This is "nn::nifm::SharedKey". This is a 0x41-byte struct. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x1 || Length |
| + | |- |
| + | | 0x1 || 0x40 || KeyMaterial |
| + | |} |
| + | |
| + | = Authentication = |
| + | This is "nn::nifm::Authentication". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Invalid |
| + | |- |
| + | | 1 || Open |
| + | |- |
| + | | 2 || Shared |
| + | |- |
| + | | 3 || Wpa |
| + | |- |
| + | | 4 || WpaPsk |
| + | |- |
| + | | 5 || Wpa2 |
| + | |- |
| + | | 6 || Wpa2Psk |
| + | |- |
| + | | 7 || Unknown |
| + | |} |
| + | |
| + | = Encryption = |
| + | This is "nn::nifm::Encryption". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Invalid |
| + | |- |
| + | | 1 || None |
| + | |- |
| + | | 2 || Wep |
| + | |- |
| + | | 3 || Tkip |
| + | |- |
| + | | 4 || Aes |
| + | |} |
| | | |
| = IpSettingData = | | = IpSettingData = |
Line 308: |
Line 593: |
| ! Description | | ! Description |
| |- | | |- |
− | | 0x0 || 0x16 || | + | | 0x0 || 0xD || [[#IpAddressSetting|Ip]] |
| + | |- |
| + | | 0xD || 0x9 || [[#DnsSetting|Dns]] |
| |- | | |- |
− | | 0x16 || 0xAA || [[#ProxySetting]] | + | | 0x16 || 0xAA || [[#ProxySetting|Proxy]] |
| |- | | |- |
− | | 0xC0 || 0x2 || | + | | 0xC0 || 0x2 || Mtu |
| |} | | |} |
| | | |
| = ProxySetting = | | = ProxySetting = |
| This is "nn::nifm::ProxySetting". This is a 0xAA-byte struct. | | This is "nn::nifm::ProxySetting". This is a 0xAA-byte struct. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x1 || IsEnabled |
| + | |- |
| + | | 0x1 || 0x1 || Reserved |
| + | |- |
| + | | 0x2 || 0x2 || Port |
| + | |- |
| + | | 0x4 || 0x64 || Proxy (server string, NUL-terminated) |
| + | |- |
| + | | 0x68 || 0x41 || [[#AuthenticationSetting|Authentication]] |
| + | |- |
| + | | 0xA9 || 0x1 || Reserved |
| + | |} |
| + | |
| + | = AuthenticationSetting = |
| + | This is "nn::nifm::AuthenticationSetting". This is a 0x41-byte struct. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x1 || IsEnabled |
| + | |- |
| + | | 0x1 || 0x20 || Username (user string, NUL-terminated) |
| + | |- |
| + | | 0x21 || 0x20 || Password (password string, NUL-terminated) |
| + | |} |
| + | |
| + | = IpV4Address = |
| + | This is "nn::nifm::IpV4Address". This is a 0x4-byte struct. |
| + | |
| + | sdknso copies this into <code>struct in_addr</code>. |
| + | |
| + | = IpAddressSetting = |
| + | This is "nn::nifm::IpAddressSetting". This is a 0xD-byte struct. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x1 || IsAuto (Ignored by [[#GetCurrentIpConfigInfo]]) |
| + | |- |
| + | | 0x1 || 0x4 || IpAddress (Copied to an output <code>struct in_addr</code> by sdknso) |
| + | |- |
| + | | 0x5 || 0x4 || SubnetMask (Copied to an output <code>struct in_addr</code> by sdknso) |
| + | |- |
| + | | 0x9 || 0x4 || DefaultGateway (Copied to an output <code>struct in_addr</code> by sdknso) |
| + | |} |
| + | |
| + | = DnsSetting = |
| + | This is "nn::nifm::DnsSetting". This is a 0x9-byte struct. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x1 || IsAuto (Ignored by [[#GetCurrentIpConfigInfo]]) |
| + | |- |
| + | | 0x1 || 0x4 || PreferredDns (Copied to an output <code>struct in_addr</code> by sdknso) |
| + | |- |
| + | | 0x5 || 0x4 || AlternateDns (Copied to an output <code>struct in_addr</code> by sdknso) |
| + | |} |
| + | |
| + | = RequestState = |
| + | This is "nn::nifm::RequestState". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Invalid |
| + | |- |
| + | | 1 || Free |
| + | |- |
| + | | 2 || OnHold |
| + | |- |
| + | | 3 || Accepted |
| + | |- |
| + | | 4 || Blocking |
| + | |} |
| + | |
| + | = ConnectionConfirmationOption = |
| + | This is "nn::nifm::ConnectionConfirmationOption". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Invalid |
| + | |- |
| + | | 1 || Prohibited |
| + | |- |
| + | | 2 || NotRequired |
| + | |- |
| + | | 3 || Preferred |
| + | |- |
| + | | 4 || Required |
| + | |- |
| + | | 5 || Forced |
| + | |} |
| | | |
| [[Category:Services]] | | [[Category:Services]] |