WLAN services: Difference between revisions
No edit summary |
|||
(22 intermediate revisions by 3 users not shown) | |||
Line 24: | Line 24: | ||
| 7 || [[#Disconnect|Disconnect]] | | 7 || [[#Disconnect|Disconnect]] | ||
|- | |- | ||
| 8 || [[# | | 8 || [[#GetConnectionEvent|GetConnectionEvent]] | ||
|- | |- | ||
| 9 || [[#GetConnectionStatus|GetConnectionStatus]] | | 9 || [[#GetConnectionStatus|GetConnectionStatus]] | ||
Line 44: | Line 44: | ||
| 17 || [[#ConnectWithWps|ConnectWithWps]] | | 17 || [[#ConnectWithWps|ConnectWithWps]] | ||
|- | |- | ||
| 18 || [3.0.0+] | | 18 || [3.0.0+] [[#GetWakeupReason|GetWakeupReason]] | ||
|- | |- | ||
| 19 || [3.0.0+] | | 19 || [3.0.0+] [[#SetTcpSessionInformation|SetTcpSessionInformation]] | ||
|- | |- | ||
| 20 || [3.0.0+] | | 20 || [3.0.0+] [[#RemoveTcpSessionInformation|RemoveTcpSessionInformation]] | ||
|- | |- | ||
| 21 || [3.0.0+] | | 21 || [3.0.0+] [[#GetWakeupReasonRaw|GetWakeupReasonRaw]] | ||
|- | |- | ||
| 22 || [3.0.0+] | | 22 || [3.0.0+] [[#SetWakeupReasonRaw|SetWakeupReasonRaw]] | ||
|- | |- | ||
| 23 || [3.0.0+] | | 23 || [3.0.0+] [[#EnableWowlFeatures|EnableWowlFeatures]] | ||
|- | |- | ||
| 24 || [3.0.0+] | | 24 || [3.0.0+] [[#GetWowlStats|GetWowlStats]] | ||
|- | |- | ||
| 25 || [3.0.0+] | | 25 || [3.0.0+] [[#ClearWowlStats|ClearWowlStats]] | ||
|- | |- | ||
| 26 || [4.0.0+] | | 26 || [4.0.0+] [[#EmulateDriverInitFail|EmulateDriverInitFail]] | ||
|- | |- | ||
| 27 || [4.0.0+] | | 27 || [4.0.0+] [[#GetAllowedChannels|GetAllowedChannels]] | ||
|- | |- | ||
| 28 || [5.0.0+] [[#InitializeWlan|InitializeWlan]] | | 28 || [5.0.0+] [[#InitializeWlan|InitializeWlan]] | ||
Line 70: | Line 70: | ||
| 30 || [8.0.0+] [[#SetWowlDelayedWakeTime|SetWowlDelayedWakeTime]] | | 30 || [8.0.0+] [[#SetWowlDelayedWakeTime|SetWowlDelayedWakeTime]] | ||
|- | |- | ||
| 31 || [11.0.0+] | | 31 || [11.0.0+] [[#StartConcurrentCommunication|StartConcurrentCommunication]] | ||
|- | |- | ||
| 32 || [11.0.0+] | | 32 || [11.0.0+] [[#StopConcurrentCommunication|StopConcurrentCommunication]] | ||
|- | |- | ||
| 33 || [11.0.0+] | | 33 || [11.0.0+] [[#SendConcurrentData|SendConcurrentData]] | ||
|- | |- | ||
| 34 || [11.0.0+] | | 34 || [11.0.0+] [[#RecvConcurrentData|RecvConcurrentData]] | ||
|- | |- | ||
| 35 || [11.0.0+] | | 35 || [11.0.0+] [[#CancelRecvConcurrentData|CancelRecvConcurrentData]] | ||
|- | |- | ||
| 36 || [11.0.0+] | | 36 || [11.0.0+] [[#SetConcurrentCycle|SetConcurrentCycle]] | ||
|- | |- | ||
| 37 || [11.0.0+] | | 37 || [11.0.0+] [[#SetConcurrentDataRate|SetConcurrentDataRate]] | ||
|- | |- | ||
| 38 || [13.0.0+] [[# | | 38 || [13.0.0+] [[#SetPowerSaveMode|SetPowerSaveMode]] | ||
|} | |} | ||
== OpenMode == | == OpenMode == | ||
Line 132: | Line 126: | ||
== Connect == | == Connect == | ||
Takes an input [[#ConnectParam]]. No output. | Takes an input [[#ConnectParam]]. No output. | ||
[4.0.0+] Now takes an additional 4-bytes of input. | |||
Sends command messages 0xA (SetWlanInterfaceUpDown), 0x11 (SetBeaconLostTimeout) and 0x20 (JoinNetworkSta) to the state machine. | Sends command messages 0xA (SetWlanInterfaceUpDown), 0x11 (SetBeaconLostTimeout) and 0x20 (JoinNetworkSta) to the state machine. | ||
Line 151: | Line 147: | ||
This is used by [[Network_Interface_services|nifm]]. | This is used by [[Network_Interface_services|nifm]]. | ||
== | == GetConnectionEvent == | ||
Takes an input u32 '''SystemEventType'''. Returns an output Event handle. | Takes an input u32 '''SystemEventType'''. Returns an output Event handle. | ||
Line 204: | Line 200: | ||
== RequestSleep == | == RequestSleep == | ||
No input/output. | No input/output. | ||
[15.0.0+] This had various changes. | |||
Sends command messages 0x24 (DisconnectRequest), 0x34 (RequestSleep), 0x3D and 0x3E to the state machine. | Sends command messages 0x24 (DisconnectRequest), 0x34 (RequestSleep), 0x3D and 0x3E to the state machine. | ||
Line 224: | Line 222: | ||
== RequestWakeUp == | == RequestWakeUp == | ||
No input/output. | No input/output. | ||
[15.0.0+] This had various changes. | |||
Sends command messages 0x1 (InitalizeWlanDriver), 0x24 (DisconnectRequest), 0x35 (RequestWakeUp), 0x3E, 0x80 (GetState) and 0x81 (GetStateBeforeSleep) to the state machine. | Sends command messages 0x1 (InitalizeWlanDriver), 0x24 (DisconnectRequest), 0x35 (RequestWakeUp), 0x3E, 0x80 (GetState) and 0x81 (GetStateBeforeSleep) to the state machine. | ||
Line 242: | Line 242: | ||
This is not used on retail. | This is not used on retail. | ||
== | == GetWakeupReason == | ||
No input | No input. Returns an output u32. | ||
Sends command message 0x80 (GetState) to the state machine, to check current state. Sends command message 0x36 to the state machine to get a value from state, which is then passed to a vfunc call. That func checks bits in the input to determine what value to return, which is then written to the output u32. | Sends command message 0x80 (GetState) to the state machine, to check current state. Sends command message 0x36 to the state machine to get a value from state, which is then passed to a vfunc call. That func checks bits in the input to determine what value to return, which is then written to the output u32. | ||
Line 249: | Line 249: | ||
This is not used on retail. | This is not used on retail. | ||
== | == SetTcpSessionInformation == | ||
Takes an input [[#MacAddress]], three input u16s '''SrcPort''', '''DstPort''' and '''Unk0''', and three input u32s '''SrcIp''', '''DstIp''' and '''Unk1'''. No output. | Takes an input [[#MacAddress]], three input u16s '''SrcPort''', '''DstPort''' and '''Unk0''', and three input u32s '''SrcIp''', '''DstIp''' and '''Unk1'''. No output. | ||
Line 258: | Line 258: | ||
This is used by [[Network_Interface_services|nifm]]. | This is used by [[Network_Interface_services|nifm]]. | ||
== | [20.0.0+] Now takes a total of 0x40-bytes of input. | ||
== RemoveTcpSessionInformation == | |||
No input/output. | No input/output. | ||
This clears the state set by [[# | This clears the state set by [[#SetTcpSessionInformation]]. | ||
This is not used on retail. | This is not used on retail. | ||
== | == GetWakeupReasonRaw == | ||
No input | No input. Returns an output u32. | ||
Same as [[# | Same as [[#GetWakeupReason]] except the value from the request is returned directly, without calling the vfunc. | ||
This is not used on retail. | This is not used on retail. | ||
== | == SetWakeupReasonRaw == | ||
Takes an input u32 | Takes an input u32. No output. | ||
Same as [[# | Same as [[#GetWakeupReasonRaw]] except this uses message 0x37 with the input u32. This is handled by writing the u32 into a global field (default value is 0xBC), which is used during configuration for [[#SetTcpSessionInformation|"wowl"]]. | ||
This is not used on retail. | This is not used on retail. | ||
== | == EnableWowlFeatures == | ||
Takes an input u32 | Takes an input u32. No output. | ||
Sends command message 0x38 to the state machine. This is handled by writing the input value into a global flags field. The default value is 0x3 (all flag bits set). These flag bits are checked during the RequestSleep code handling the state for [[# | Sends command message 0x38 to the state machine. This is handled by writing the input value into a global flags field. The default value is 0x3 (all flag bits set). These flag bits are checked during the RequestSleep code handling the state for [[#SetTcpSessionInformation]]. | ||
This is not used on retail. | This is not used on retail. | ||
== | == GetWowlStats == | ||
No input | No input. Returns a [[#WakeUpStats]] and a [[#SleepStats]]. | ||
[5.0.0+] Now returns a total of 0x58-bytes of output instead of 0x5C-bytes. | |||
Sends command message 0x39 to the state machine, with 0x20-bytes from the output being copied to the first output struct. Sends command message 0x3A to the state machine, with 0x38-bytes from the output being copied to the second output struct. | Sends command message 0x39 to the state machine, with 0x20-bytes from the output being copied to the first output struct. Sends command message 0x3A to the state machine, with 0x38-bytes from the output being copied to the second output struct. | ||
Line 295: | Line 299: | ||
This is not used on retail. | This is not used on retail. | ||
== | == ClearWowlStats == | ||
Takes two input bools | Takes two input bools. No output. | ||
When the first bool flag is set, sends command message 0x3B to the state machine. When the second bool flag is set, sends command message 0x3C to the state machine. Then 0 is returned. | When the first bool flag is set, sends command message 0x3B to the state machine. When the second bool flag is set, sends command message 0x3C to the state machine. Then 0 is returned. | ||
Both requests are handled by clearing various data in state. The first request clears the first state struct returned by [[# | Both requests are handled by clearing various data in state. The first request clears the first state struct returned by [[#GetWowlStats]], likewise with the second request and the second state struct from [[#GetWowlStats]]. | ||
This is not used on retail. | This is not used on retail. | ||
== | == EmulateDriverInitFail == | ||
No input/output. | No input/output. | ||
Line 313: | Line 317: | ||
This is not used on retail. | This is not used on retail. | ||
== | == GetAllowedChannels == | ||
Takes a type-0xA output buffer containing an array of 2-byte entries | Takes a type-0xA output buffer containing an array of 2-byte entries. Returns an output u32 total_out. | ||
This memcpys data from state into the output buffer, clamped to a maximum of 0x40 entries (nifm hard-codes the count to 0x26). | This memcpys data from state into the output buffer, clamped to a maximum of 0x40 entries (nifm hard-codes the count to 0x26). | ||
Line 335: | Line 339: | ||
== SetWowlDelayedWakeTime == | == SetWowlDelayedWakeTime == | ||
Takes an input s32 '''WowlDelayedWakeTime'''. No output. | Takes an input s32 '''WowlDelayedWakeTime'''. No output. | ||
'''WowlDelayedWakeTime''' must be <=0xE10 (3600) and >= -1. This value is written into state (last field in the state struct also used by [[# | '''WowlDelayedWakeTime''' must be <=0xE10 (3600) and >= -1. This value is written into state (last field in the state struct also used by [[#SetTcpSessionInformation]], which [[#SetTcpSessionInformation]] doesn't write), then this returns 0. | ||
The user-process code using this cmd also has the above bounds check. | The user-process code using this cmd also has the above bounds check. | ||
This is used by wlan during RequestSleep from the same code using the state set by [[# | This is used by wlan during RequestSleep from the same code using the state set by [[#SetTcpSessionInformation]]. | ||
This cmd is used by [[Network_Interface_services|nifm]] with a value from state, prior to using RequestSleep. | This cmd is used by [[Network_Interface_services|nifm]] with a value from state, prior to using RequestSleep. | ||
If wificore gets to the point of actually using this for TCP-keep-alive, then it does the following: | If wificore gets to the point of actually using this for TCP-keep-alive, then it does the following: | ||
* This is only used when the [[# | * This is only used when the [[#SetTcpSessionInformation|TCP]] connection is RST. | ||
** '''WowlDelayedWakeTime''' is the time in seconds to schedule a timer which will wake the system. 0 will schedule it for immediately. | ** '''WowlDelayedWakeTime''' is the time in seconds to schedule a timer which will wake the system. 0 will schedule it for immediately. | ||
** -1 will skip scheduling that timer, hence waking the system is disabled when RST is received. | ** -1 will skip scheduling that timer, hence waking the system is disabled when RST is received. | ||
Line 354: | Line 356: | ||
* Frames where the TCP flags do not match ACK will immediately wake the system, + other wake cause(s). | * Frames where the TCP flags do not match ACK will immediately wake the system, + other wake cause(s). | ||
== | == StartConcurrentCommunication == | ||
No input/output. | No input/output. | ||
Line 361: | Line 363: | ||
This is not used on retail. | This is not used on retail. | ||
== | == StopConcurrentCommunication == | ||
No input/output. | No input/output. | ||
Line 368: | Line 370: | ||
This is not used on retail. | This is not used on retail. | ||
== | == SendConcurrentData == | ||
Takes an input [[#MacAddress]] and a type-0x5 input buffer | Takes an input [[#MacAddress]] and a type-0x5 input buffer. No output. | ||
Stubbed, just returns an error. | Stubbed, just returns an error. | ||
Line 375: | Line 377: | ||
This is not used on retail. | This is not used on retail. | ||
== | == RecvConcurrentData == | ||
Takes a type-0x6 output buffer | Takes a type-0x6 output buffer. Returns a total of 0x10-bytes. | ||
Stubbed, just returns an error. | Stubbed, just returns an error. | ||
Line 382: | Line 384: | ||
This is not used on retail. | This is not used on retail. | ||
== | == CancelRecvConcurrentData == | ||
No input/output. | No input/output. | ||
Line 389: | Line 391: | ||
This is not used on retail. | This is not used on retail. | ||
== | == SetConcurrentCycle == | ||
Takes two input u64s | Takes two input u64s. No output. | ||
Stubbed, just returns an error. | Stubbed, just returns an error. | ||
Line 396: | Line 398: | ||
This is not used on retail. | This is not used on retail. | ||
== | == SetConcurrentDataRate == | ||
Takes an input u32 | Takes an input u32. No output. | ||
Stubbed, just returns an error. | Stubbed, just returns an error. | ||
Line 403: | Line 405: | ||
This is not used on retail. | This is not used on retail. | ||
== | == SetPowerSaveMode == | ||
Takes an input u32 '''Mode'''. No output. | Takes an input u32 '''Mode'''. No output. | ||
Line 561: | Line 561: | ||
|} | |} | ||
[5.0.0+] GetAllowedChannels now returns a total of 4-bytes of output instead of 0x50, and now takes a type-0xA output buffer. | [5.0.0+] GetAllowedChannels now returns a total of 4-bytes of output instead of 0x50-bytes, and now takes a type-0xA output buffer. | ||
[10.0.0+] Cmd46 now takes a total of 1-byte of input instead of 6-bytes, while cmd47 now takes a total of 6-bytes of input instead of 1-byte. | [10.0.0+] Cmd46 now takes a total of 1-byte of input instead of 6-bytes, while cmd47 now takes a total of 6-bytes of input instead of 1-byte. | ||
Line 858: | Line 858: | ||
| 11 || [[#EnableSharedMemory|EnableSharedMemory]] | | 11 || [[#EnableSharedMemory|EnableSharedMemory]] | ||
|- | |- | ||
| 12 || [6.0.0+] [[# | | 12 || [6.0.0+] [[#SetMulticastFilter|SetMulticastFilter]] | ||
|} | |} | ||
Line 911: | Line 911: | ||
[15.0.0+] Stubbed. Returns 0. | [15.0.0+] Stubbed. Returns 0. | ||
== | == SetMulticastFilter == | ||
Takes an input [[#MulticastList]]. No output. | Takes an input [[#MulticastList]]. No output. | ||
Line 999: | Line 997: | ||
== CreateWirelessCommunicationService == | == CreateWirelessCommunicationService == | ||
No input. Returns an [[#IWirelessCommunicationService]]. | No input. Returns an [[#IWirelessCommunicationService]]. | ||
Line 1,012: | Line 1,008: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || | | 0 || OpenCommunication | ||
|- | |- | ||
| 1 || | | 1 || CloseCommunication | ||
|- | |- | ||
| 10 || | | 10 || PutActionFrame | ||
|- | |- | ||
| 11 || | | 11 || GetActionFrame | ||
|- | |- | ||
| 12 || | | 12 || CancelGetActionFrame | ||
|- | |- | ||
| 13 || | | 13 || CreateRxEntryForActionFrame | ||
|- | |- | ||
| 14 || | | 14 || DeleteRxEntryForActionFrame | ||
|- | |- | ||
| 20 || | | 20 || SetActionFrameBssidFilter | ||
|- | |- | ||
| 21 || | | 21 || DeleteActionFrameBssidFilter | ||
|- | |- | ||
| 30 || | | 30 || GetState | ||
|- | |- | ||
| 31 || | | 31 || GetCommunicationSetting | ||
|- | |- | ||
| 32 || | | 32 || GetStationStatus | ||
|- | |- | ||
| 33 || [[#GetMacAddress|GetMacAddress]] | | 33 || [[#GetMacAddress|GetMacAddress]] | ||
|- | |- | ||
| 40 || | | 40 || PutFrame | ||
|- | |- | ||
| 41 || | | 41 || GetFrame | ||
|- | |- | ||
| 42 || | | 42 || CancelGetFrame | ||
|- | |- | ||
| 43 || [[#CreateRxEntry|CreateRxEntry]] | | 43 || [[#CreateRxEntry|CreateRxEntry]] | ||
Line 1,054: | Line 1,050: | ||
| 47 || [[#AddMatchingDataToRxEntry|AddMatchingDataToRxEntry]] | | 47 || [[#AddMatchingDataToRxEntry|AddMatchingDataToRxEntry]] | ||
|- | |- | ||
| 48 || | | 48 || DeleteMatchingDataFromRxEntry | ||
|- | |- | ||
| 50 || | | 50 || AddVendorSpecificIe | ||
|- | |- | ||
| 51 || | | 51 || DeleteVendorSpecificIe | ||
|- | |- | ||
| 60 || | | 60 || Scan | ||
|- | |- | ||
| 61 || | | 61 || StopScan | ||
|- | |- | ||
| 62 || | | 62 || GetScanCompleteEvent | ||
|- | |- | ||
| 63 || | | 63 || GetScanResults | ||
|- | |- | ||
| 70 || [[#RegisterSharedMemory|RegisterSharedMemory]] | | 70 || [[#RegisterSharedMemory|RegisterSharedMemory]] | ||
Line 1,074: | Line 1,070: | ||
| 72 || [[#EnableSharedMemory|EnableSharedMemory]] | | 72 || [[#EnableSharedMemory|EnableSharedMemory]] | ||
|- | |- | ||
| 80 || | | 80 || [[#RequestSleep|RequestSleep]] | ||
|- | |- | ||
| 81 || | | 81 || [[#RequestWakeUp|RequestWakeUp]] | ||
|- | |- | ||
| 90 || | | 90 || [[#CreateBss|CreateBss]] | ||
|- | |- | ||
| 91 || | | 91 || DestroyBss | ||
|- | |- | ||
| 92 || | | 92 || Deauthenticate | ||
|- | |- | ||
| 93 || | | 93 || GetStationConnectionEvent | ||
|- | |- | ||
| 94 || | | 94 || GetAllowedChannels | ||
|- | |- | ||
| 95 || [[#SetActionFrameWithBeacon|SetActionFrameWithBeacon]] | | 95 || [[#SetActionFrameWithBeacon|SetActionFrameWithBeacon]] | ||
|- | |- | ||
| 96 || | | 96 || StopActionFrameWithBeacon | ||
|- | |- | ||
| 97 || [[#SetMaxAssociationNumber|SetMaxAssociationNumber]] | | 97 || [[#SetMaxAssociationNumber|SetMaxAssociationNumber]] | ||
|- | |- | ||
| 98 || | | 98 || SetShortGiSupport | ||
|- | |- | ||
| 100 || | | 100 || [[#Connect|Connect]] | ||
|- | |- | ||
| 101 || | | 101 || GetConnectionEvent | ||
|- | |- | ||
| 102 || | | 102 || CancelConnect | ||
|- | |- | ||
| 103 || | | 103 || Disconnect | ||
|- | |- | ||
| 104 || | | 104 || GetConnectionCompleteEvent | ||
|- | |- | ||
| 105 || | | 105 || GetConnectionStatus | ||
|- | |- | ||
| 106 || | | 106 || GetRssiAndSignalLevel | ||
|- | |- | ||
| 107 || [[# | | 107 || [[#SetMulticastFilter|SetMulticastFilter]] | ||
|- | |- | ||
| 108 || [[# | | 108 || [[#SetPowerSaveMode|SetPowerSaveMode]] | ||
|- | |- | ||
| | | 109 || [19.0.0+] | ||
|- | |- | ||
| | | 110 || GetWakeupReason | ||
|- | |- | ||
| | | 111 || [[#SetTcpSessionInformation|SetTcpSessionInformation]] | ||
|- | |- | ||
| 113 || | | 112 || RemoveTcpSessionInformation | ||
|- | |||
| 113 || SetWowlDelayedWakeTime | |||
|- | |||
| 120 || [19.0.0+] | |||
|- | |||
| 130 || [20.0.0+] | |||
|- | |||
| 140 || [20.0.0+] | |||
|- | |||
| 200 || [17.0.0+] SetTxPower | |||
|- | |||
| 201 || [17.0.0+] ResetTxPower | |||
|- | |||
| 202 || [17.0.0+] GetTxPower | |||
|- | |||
| 203 || [17.0.0+] RequestIfUpDown | |||
|- | |||
| 204 || [19.0.0+] | |||
|- | |||
| 900 || [20.0.0+] | |||
|} | |} | ||
[20.0.0+] Cmd120 now returns a total of 0x28-bytes of output instead of 0x18-bytes. | |||
[20.1.0+] Cmd120 now returns a total of 0x2C-bytes of output instead of 0x28-bytes. | |||
=== CreateBss === | |||
Takes a type-0x19 input buffer containing a 0x84-byte struct. Returns a total of 0x32-bytes of output. | |||
[19.0.0+] The struct size is now 0x80-bytes. | |||
=== Connect === | |||
Takes a total of 0x80-bytes of input. No output. | |||
[19.0.0+] Takes a total of 0x7C-bytes of input. No output. | |||
= wlan:p = | = wlan:p = | ||
Line 1,127: | Line 1,157: | ||
This was added with [15.0.0+]. | This was added with [15.0.0+]. | ||
As of [15.0.0] nothing has access to this service on retail (and hence [[#IPrivateWirelessCommunicationService]] isn't usable either). | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,138: | Line 1,170: | ||
== CreatePrivateWirelessCommunicationService == | == CreatePrivateWirelessCommunicationService == | ||
No input. Returns an [[#IPrivateWirelessCommunicationService]]. | No input. Returns an [[#IPrivateWirelessCommunicationService]]. | ||
Line 1,153: | Line 1,183: | ||
| 0 || [[#GetFwVersion|GetFwVersion]] | | 0 || [[#GetFwVersion|GetFwVersion]] | ||
|- | |- | ||
| 1 || [[#ChangeRxAntenna|ChangeRxAntenna]] | | 1 || [15.0.0-16.1.0] [[#ChangeRxAntenna|ChangeRxAntenna]] | ||
|- | |- | ||
| 2 || | | 2 || [[#ScanWithScanTime|ScanWithScanTime]] | ||
|- | |- | ||
| 3 || | | 3 || GetWakeupReasonRaw | ||
|- | |- | ||
| 4 || | | 4 || SetWakeupReasonRaw | ||
|- | |- | ||
| 5 || | | 5 || EnableWowlFeatures | ||
|- | |- | ||
| 6 || | | 6 || [[#GetWowlStats|GetWowlStats]] | ||
|- | |- | ||
| 7 || | | 7 || ClearWowlStats | ||
|- | |- | ||
| 8 || | | 8 || [15.0.0-19.0.1] EmulateDriverInitFail | ||
|- | |- | ||
| 9 || | | 9 || GetChannelStats | ||
|- | |- | ||
| 10 || | | 10 || SetCalibrationTriggerOnScan | ||
|- | |- | ||
| 11 || | | 11 || SetMacAddress | ||
|- | |- | ||
| 12 || | | 12 || [[#CreateBssNoChannelLimit|CreateBssNoChannelLimit]] | ||
|- | |- | ||
| 13 || | | 13 || EnableTsfTimerFunction | ||
|- | |- | ||
| 14 || | | 14 || DisableTsfTimerFunction | ||
|- | |- | ||
| 15 || [[#GetDeltaTimeBetweenSystemAndTsf|GetDeltaTimeBetweenSystemAndTsf]] | | 15 || [[#GetDeltaTimeBetweenSystemAndTsf|GetDeltaTimeBetweenSystemAndTsf]] | ||
|- | |- | ||
| 16 || | | 16 || InitializeWlanProcess | ||
|- | |- | ||
| 17 || | | 17 || FinalizeWlanProcess | ||
|- | |- | ||
| 18 || | | 18 || ExecWpaCommand | ||
|- | |- | ||
| 19 || | | 19 || SwitchWlanDevice | ||
|- | |- | ||
| 20 || | | 20 || [15.0.0-16.1.0] | ||
|- | |- | ||
| 21 || | | 21 || [15.0.0-16.1.0] | ||
|- | |- | ||
| 22 || | | 22 || [15.0.0-16.1.0] | ||
|} | |} | ||
=== ScanWithScanTime === | |||
Takes 4-bytes of input and a type-0x19 input buffer containing a 0x1F8-byte struct. No output. | |||
[19.0.0+] The struct size is now 0x9A-bytes. | |||
=== GetWowlStats === | |||
[20.0.0+] Now returns a total of 0x5C-bytes of output instead of 0x58-bytes. | |||
=== CreateBssNoChannelLimit === | |||
Takes a type-0x19 input buffer containing a 0x84-byte struct. Returns a total of 0x32-bytes of output. | |||
[19.0.0+] The struct size is now 0x80-bytes. | |||
= wlan:nd = | = wlan:nd = | ||
Line 1,211: | Line 1,254: | ||
== CreateDriverService == | == CreateDriverService == | ||
No input. Returns an [[#ISfDriverService]]. | No input. Returns an [[#ISfDriverService]]. | ||
Line 1,224: | Line 1,265: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || [[# | | 0 || [[#OpenNetworkInterface]] | ||
|- | |- | ||
| 128 || | | 128 || GetDriverInfo | ||
|- | |- | ||
| 129 || | | 129 || GetNetworkInterfaceList | ||
|- | |- | ||
| 130 || | | 130 || GetStateChangedEvent | ||
|- | |- | ||
| 131 || | | 131 || GetNetworkInterfaceListUpdatedEvent | ||
|- | |- | ||
| 384 || | | 384 || Ioctl | ||
|- | |- | ||
| 385 || | | 385 || IoctlRead | ||
|- | |- | ||
| 386 || | | 386 || IoctlWrite | ||
|- | |- | ||
| 387 || | | 387 || IoctlReadWrite | ||
|- | |- | ||
| 388 || | | 388 || IoctlSetHandle | ||
|- | |- | ||
| 389 || | | 389 || IoctlGetHandle | ||
|} | |} | ||
=== | === OpenNetworkInterface === | ||
Takes a type-0x21 input buffer. Returns an [[#ISfNetworkInterfaceService]]. | Takes a type-0x21 input buffer. Returns an [[#ISfNetworkInterfaceService]]. | ||
Line 1,261: | Line 1,300: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || | | 0 || Duplicate | ||
|- | |- | ||
| 1 || | | 1 || BringUp | ||
|- | |- | ||
| 2 || | | 2 || BringDown | ||
|- | |- | ||
| 3 || | | 3 || StartCommunication | ||
|- | |- | ||
| 4 || | | 4 || StopCommunication | ||
|- | |- | ||
| 5 || | | 5 || CreateSharedMemory | ||
|- | |- | ||
| 6 || | | 6 || DestroySharedMemory | ||
|- | |- | ||
| 128 || | | 128 || GetNetworkInterfaceInfo | ||
|- | |- | ||
| 129 || | | 129 || GetStateChangedEvent | ||
|- | |- | ||
| 130 || | | 130 || GetRxQueue | ||
|- | |- | ||
| 131 || | | 131 || GetTxQueue | ||
|- | |- | ||
| 256 || | | 256 || SetMacAddress | ||
|- | |- | ||
| 257 || | | 257 || SetMru | ||
|- | |- | ||
| 258 || | | 258 || SetMtu | ||
|- | |- | ||
| 259 || | | 259 || SetFeatures | ||
|- | |- | ||
| 260 || | | 260 || SetMulticastFilter | ||
|- | |- | ||
| 261 || | | 261 || SetRxBufferSize | ||
|- | |- | ||
| 262 || | | 262 || SetTxBufferSize | ||
|- | |- | ||
| 384 || | | 384 || Ioctl | ||
|- | |- | ||
| 385 || | | 385 || IoctlRead | ||
|- | |- | ||
| 386 || | | 386 || IoctlWrite | ||
|- | |- | ||
| 387 || | | 387 || IoctlReadWrite | ||
|- | |- | ||
| 388 || | | 388 || IoctlSetHandle | ||
|- | |- | ||
| 389 || | | 389 || IoctlGetHandle | ||
|} | |} | ||
Line 1,396: | Line 1,435: | ||
= ScanRequest = | = ScanRequest = | ||
This is a 0x1B8-byte struct. | This is a 0x1B8-byte struct. | ||
[19.0.0+] This is a 0x9A-byte struct (previously 0x1F8-bytes). | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,635: | Line 1,676: | ||
| [12.0.0-13.0.0] || 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-clm_4356a3_ntd-noclminc-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe-tcpkaoe-aloe Version: 7.35.252.104 (r728022) CRC: f0b454ec Date: Wed 2021-02-24 04:39:25 PST Ucode Ver: 1020.228 FWID 01-fbba058 | | [12.0.0-13.0.0] || 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-clm_4356a3_ntd-noclminc-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe-tcpkaoe-aloe Version: 7.35.252.104 (r728022) CRC: f0b454ec Date: Wed 2021-02-24 04:39:25 PST Ucode Ver: 1020.228 FWID 01-fbba058 | ||
|- | |- | ||
| [14.0.0- | | [14.0.0-20.1.0] || 4356a3-roml/pcie-ag-msgbuf-splitrx-pktctx-keepalive-sr-proptxstatus-ampduhostreorder-dlystat-rxdesens-clm_4356a3_ntd-noclminc-ntdds3-btcdyn-trfmgmt-pspretend-btafh-pktfilter-wowlpf-gtkoe-aoe-tcpkaoe-aloe Version: 7.35.252.108 (c216b7c) CRC: 1be69227 Date: Sun 2021-08-29 19:24:39 PDT Ucode Ver: 1020.228 FWID 01-65333037 | ||
|} | |} | ||