Windows WCNフレームワークを使用して、Windows 10のWPS(Wireless Protected Setup)機能を実現しようとしています。そして、誰かが同様の質問に遭遇したことがわかりました。ここにはthe linkWCN(Windows Connect Now)フレームワークがWin10で動作しない
私はアクセスポイントの情報を正常に検出しました。それから私はWSC 2.0プロトコルでそれと通信しようとする必要があります。私は以下の手順でそれを行います:
1、IWCNConnectNotifyを実装するオブジェクトを作成します。私はそれをWCNConnectNotifyと呼びます。
2、プロファイルファイルを設定する関数IWCNDevice::SetNetworkProfile()
を呼び出します。
3、WPSのモードを設定する関数IWCNDevice::SetPassword()
を呼び出します。
4、IWCNDevice::Connect()
は、WSC 2.0プロトコルでAPと通信しようとする機能です。
しかし、一方で、APと接続するためにPIN_STAモード(ネットワークアダプタにAPのPINコードを入力)を使用しようとすると、IWCNDevice::SetPassword()
関数はE_INVALIDARG
を返します。関数が間違っている!しかし、サンプルプログラムは、Win7、 Win8とWin8.1上で正常に実行できます。さらに、私は引数をファイルに出力して何も間違っていないことを発見しました。このようなサンプルコード:一方
//pDevice is a pointer of IWCNDevice class, pWcnConnectNotify is a pointer of WcnConnectNotify class.
WCN_PASSWORD_TYPE cfgType = WCN_PASSWORD_TYPE_PIN;
DWORD dwPinLen = 8;
UCHAR ucPin[8];
CopyMemory(ucPin, "12345670", 8);
hr = pDevice->SetPassword(cfgType, dwPinLen, ucPin);
if (hr != S_OK)
{
printf("{%s} SetPassword() Failed! hr = 0x%x\n", __FUNCTION__, hr);
continue;
}
printf("{%s} SetPassword function success, now begin Connect Function.\n", __FUNCTION__);
hr = pDevice->Connect(pWcnConnectNotify);
、私はPBCモード、成功しIWCNDevice::SetPassword()
関数の戻りS_OK
(もちろん、それに渡された引数がPIN_STAモードと異なる場合)、およびそれを使用してみてくださいIWCNDevice::Connect()
機能を実行できますが、前もって(10秒を設定して)AP と通信することはできません。
最も混乱しているのは、同じコードがWin7、Win8、およびWin8.1では正常に実行できるが、Win10では正常に実行できないということです。私はWindowsConnectNowのサンプルコードをWin10で見つけようとしていますが、わかりません。私が何か重要なことを逃したら? 誰かが私に好意を与えることができますか?誰かが私に有用な提案を与えることができれば本当に感謝しています!ありがとう!