2016-05-27 9 views
1

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で見つけようとしていますが、わかりません。私が何か重要なことを逃したら? 誰かが私に好意を与えることができますか?誰かが私に有用な提案を与えることができれば本当に感謝しています!ありがとう!

答えて

0

同様の問題がありました。我々のケースでは、IWcnDevice::GetIntegerAttributeを呼び出すときにクラッシュ(64ビットOSで32ビットアプリケーション)またはエラーRPC_X_BAD_STUB_DATA(64ビットOSで64ビットアプリケーション)が発生しました。私たちの問題はSDKヘッダーファイルが壊れていることが原因であることが判明しましたWcnDevice.hファイルはSDK 8.1とSDK 10の間で変更されました。新しい仮想メソッドSetNFCPasswordParamsSetPasswordConnectメソッドの間に挿入されました。IWcnDeviceインターフェイスです。これにより、一致しないSDKヘッダーとwcnapi.dllIWcnDeviceを実装する)を使用すると、不正なCOMメソッドディスパッチが発生する可能性が高くなります。意図した仮想メソッドの代わりに、別の仮想メソッドが呼び出されます。

SDK 8.1のWcnDevice.hを使用した場合のこの問題は修正されました。試してみてください。

関連する問題