# WMScanExParam

## Definitions

  `#include <nitro/wm.h>`

      typedef struct WMScanExParam
      {
      WMBssDesc*  scanBuf;
      u16         scanBufSize;
      u16         channelList;
      u16         maxChannelTime;
      u8          bssid[ 6 ];
      u16         scanType;
      u16         ssidLength;
      u8              ssid[32];
      u16         ssidMatchLength;

      } WMScanExParam;

## Elements

scanBuf | Designates a pointer to the buffer that stores the information about the parent devices discovered as a result of the search. Be sure to watch the cache, since ARM7 directly writes this data to the buffer.

scanBufSize

Designates the size of the buffer that stores the parent device information. At the very least, there must be a size (of 64 bytes) that can store a single item of parent device information. The maximum size that can be designated is 1024 bytes.
If only a size that can store multiple items of parent device information is designated, a continuous scan will be performed as much as is allowed by that buffer size. Also, since the size of the discovered parent device information can vary from 64 to 192 bytes, every time a parent device is found, its information is stored in the buffer. If the Nintendo DS is the parent device, the size of the parent device information will be 80 bytes + the size of the information inherent to that game.
If the remaining size of the buffer is not fully 64 bytes when the parent device information is stored in the buffer, the scan operations will terminate at that point and the callback will be returned.

channelList | Designates the wireless channel to search as a bit field format. This is the same kind of format as that of the bit field obtained with the `WM_GetAllowedChannel` function. A continuous scan will be performed a `maxChannelTime` number of times on each of the individual channels designated here.
maxChannelTime | Designates the maximum amount of time (in milliseconds) to continuously search on a single channel. Set to a value from 10 through 1,000. Normally, the value obtained in the `WM_GetDispersionScanPeriod function` should be designated here.
bssid | Designates the MAC address of the parent device that is the target of the search. If everything is 0xFF, there will be no extraction via the MAC address, and all parent devices will be the target of the search.
scanType | Designates the scan type. Normally, this designates a passive scan (`WM_SCANTYPE_PASSIVE`). Active scan (`WM_SCANTYPE_ACTIVE`) is used only for special applications--for example, when a connection destination access point is designated in infrastructure mode. `WM_SCANTYPE_PASSIVE_CUSTOM` and `WM_SCANTYPE_ACTIVE_CUSTOM` can be specified to perform partial matching on SSIDs as needed when the SSID for the special access point changes dynamically. Only these four values can be assigned.
ssidLength | Designates the length in bytes of the SSID used to extract the parent device that is the target of the scan. Set to a value from 0 through 32. If a 0 is designated, there will be no extraction via the SSID, and all parent devices will be the target of the search. If a value other than 0 has been specified, more than one parent may be found because SSID is filtered by checking for the length starting from the beginning to the end of the specified length.
ssid | Designates the SSID used to extract the parent device that is the target of the scan. This should be designated when searching only for the access point that is outputting a specially-designated SSID in infrastructure mode. Since the Nintendo DS wireless parent device does not output an SSID beacon, there is no extraction via the SSID.
ssidMatchLength | When `WM_SCANTYPE_PASSIVE_CUSTOM` or `WM_SCANTYPE_ACTIVE_CUSTOM` are specified for scanType, this specifies the length of SSID in bytes for which partial matching is to be performed. The maximum length of the SSID is 32, so a value of 0~32 can be specified. When `WM_SCANTYPE` or `WM_SCANTYPE_ACTIVE` is specified as the `scanType`, this configuration is ignored.

## Description

This is a structure made up of the information that should be configured if performing a detailed control of the scan operation when starting a search for a parent device as a child device.

## Revision History

09/07/2005 Added a description of the scanType ssidMatchLength member.
03/07/2005 Added a description of each structure member.
02/14/2005 Initial version.