Hi All
I'm trying to set SSID for adapter
(Intel(R) PRO/Wireless 2100 LAN 3B Mini PCI Adapter, drivers v 1.6.0.46)
using WMI(see code below).
CoInitializeEx(NULL, COINIT_MULTITHREADED);
CoInitializeSecurity(NULL, -1, NULL, NULL,
RPC_C_AUTHN_LEVEL_CONNECT,
RPC_C_IMP_LEVEL_IMPERSONATE,
NULL, EOAC_NONE, 0);
CComPtr<IWbemLocator> pLocator;
pLocator.CoCreateInstance(__uuidof(WbemLocator));
CComPtr<IWbemServices> pServices;
pLocator->ConnectServer(CComBSTR(TEXT("root\\wmi")),
NULL,
NULL,
NULL,
0,
NULL,
NULL,
&pServices);
char* szSsid = "Test ssid";
CComBSTR bstrPath = L"MSNdis_80211_ServiceSetIdentifier='Intel(R)
PRO/Wireless 2100 LAN 3B Mini PCI Adapter'";
CComPtr<IWbemClassObject> pSsid;
pServices->GetObject(bstrPath,
WBEM_FLAG_RETURN_WBEM_COMPLETE,
NULL,
&pSsid,
NULL);
SAFEARRAY* psa = SafeArrayCreateVector(VT_UI1, 0, 32 + 1);
BYTE* pData;
SafeArrayAccessData(psa, (PVOID*) &pData);
pData[0] = (BYTE) lstrlenA(szSsid);
memcpy(pData + 4, szSsid, min(32 - sizeof(ULONG), lstrlenA(szSsid)));
SafeArrayUnaccessData(psa);
CComVariant vSsid;
vSsid.vt = VT_ARRAY | VT_UI1;
vSsid.parray = psa;
pSsid->Put(TEXT("Ndis80211SsId"), 0, &vSsid, 0);
pServices->PutInstance(pSsid, WBEM_FLAG_UPDATE_ONLY, NULL, NULL);
CoUninitialize();
On Windows XP with SP1 all is ok,
but after installation SP2(v 2138) PutInstance always return
0x8004100C - wbemErrNotSupported.
Could anyone help me ?
|