0

我正在尝试使用 Windows API 获取频道。到目前为止,我已经尝试将 wlan_intf_opcode_channel_number 与 WlanQueryInterface 函数一起使用。我不太确定该线程上的回复意味着什么,希望有人能澄清一下。

ULONG channel = 0;
DWORD dwSizeChannel = sizeof(channel);

dwResult = WlanQueryInterface(
    hClient, 
    InterfaceGuid, 
    wlan_intf_opcode_channel_number, 
    NULL, 
    &dwSizeChannel, 
    (PVOID*)&channel, 
    NULL);

我不知道在这里之后该怎么做。任何帮助,将不胜感激!检查后我发现我总是得到与通道相同的值,因为调用 WlanQueryInterface

4

2 回答 2

1

操作码的 MS文档似乎是错误的。如果你在这里尝试类似的东西:

超长*通道=空;
DWORD dwSizeChannel = sizeof(*channel);

DWORD rc = WlanQueryInterface (
  hClient、InterfaceGuid、
  wlan_intf_opcode_channel_number,
  NULL, &dwSizeChannel, &channel, NULL);

if (rc == ERROR_SUCCESS && 频道) {
  printf ("频道: %lu\n", *频道):
  WlanFreeMemory(通道);
}

我确实得到了预期

频道:5
.

wlan_intf_opcode_current_operation_mode和其他可能只是ULONG的操作码也是如此

于 2015-11-23T22:38:10.463 回答
0

我使用文档中的输入尝试了 WlanQueryInterface: https ://msdn.microsoft.com/en-us/library/windows/desktop/ms706765(v=vs.85).aspx

当触发基于“wlan_intf_opcode_channel_number”的查询时,我得到的数据为“13”。从以下维基百科链接提供的 WLAN 信息中,频率可以确定为 2472Mhz: https ://en.wikipedia.org/wiki/List_of_WLAN_channels

希望这可以帮助。

于 2015-07-26T14:31:02.370 回答