2008-08-28 20 views
-1

VistaのWifiサポートは正常ですが、Native Wifi on XPはハーフベークされています。 NDIS 802.11 Wireless LAN Miniport Driversは、あなたをそこに向かわせるだけです(ネットワークスキャンなど)。私が読んだ(そして試した)ものから、XPの802.11 NDISドライバはではなく、ではワイヤレス接続を設定できます。これを行うには、ネイティブWifi APIを使用する必要があります。 (私がここで間違っていれば私を修正してください。)InSSIDerのようなアプリケーションはAPIを理解する助けになりましたが、InSSIDerは単なるスキャナであり、Wifiネットワークを設定するようには設計されていません。XP(SP2/SP3)のWiFi管理

質問:私はXP上でWifiネットワークの設定を処理するいくつかのコード例(C#またはC++)を見つけることができます。プロファイル作成と接続管理

これは、組み込みのWireless Zero Configuration(WZC)を使用できないクローズドシステム上のXP Embeddedアプリケーションであることに注意してください。すべてのWifi管理機能を.NETアプリケーションに組み込む必要があります。

はい、私は自分自身をグーグルにしました。誰かがこの問題の解決策を持っているはずですが、私はそれを見つけることができません。だから私はここで尋ねている。

ありがとうございました。

答えて

1

私たちはXPではWZCを使用し、VistaではネイティブWiFiを使用しますが、ここではVista上で使用するコードはFWIWです。

プロファイルの作成:

// open a handle to the service 
if ((dwError = WlanOpenHandle(
     WLAN_API_VERSION, 
     NULL,    // reserved 
     &dwServiceVersion, 
     &hClient 
     )) != ERROR_SUCCESS) 
{ 
hClient = NULL; 
} 
return dwError; 
dwError=WlanSetProfile(hClient, &guid, 0, profile, NULL, TRUE, NULL, &reason_code); 

接続を行います。接続するための

WLAN_CONNECTION_PARAMETERS conn; 

    conn.wlanConnectionMode=wlan_connection_mode_profile; 
    conn.strProfile=name; 
    conn.pDot11Ssid=NULL; 
    conn.pDesiredBssidList=NULL; 
    conn.dot11BssType=dot11_BSS_type_independent; 
    conn.dwFlags=NULL; 

    dwError = WlanConnect(hClient, &guid, &conn, NULL); 

チェック:

BOOL ret=FALSE; 
    DWORD dwError; 
    DWORD size; 
    void *p=NULL; 
    WLAN_INTERFACE_STATE *ps; 

    dwError = WlanQueryInterface(hClient, &guid, wlan_intf_opcode_interface_state, NULL, &size, &p, NULL); 
    ps=(WLAN_INTERFACE_STATE *)p; 
    if(dwError!=0) 
     ret=FALSE; 
    else 
     if(*ps==wlan_interface_state_connected) 
      ret=TRUE; 
    if(p!=NULL) WlanFreeMemory(p); 
    return ret; 

だけチェックしておく、スレッドを起動、ネットワークに接続されている保つために接続の場合は、必要に応じて再接続します。

編集:このマークアップの内容は不自由です。 farkingものを正しく得るために3つの編集のようになります。

1

フィードバックありがとうございました。プロファイルと接続管理がうまく機能しています。このトリックは、ネイティブWifi APIのどの部分がであり、XPではサポートされていないであるかを調べています。幸いにも、Managed Wifi APIには、XP上で動作する接続/切断通知イベントがあります(NetworkChangeも同様の変更イベントを示します)。

関連する問題