есть работающий драйвер ndis im filter driver + inf files + инсталлятор. все работает под х86.
пересобрал драйвер под x64, переделал *.inf – драйвер устанавливается и работает на XP64, если устанавливать ручками через network properties – install. однако через инсталлятор не хочет.
технические подробности инсталлятора:
берется IID_INetCfgLock, дергается AcquireWriteLock, отрабатывает.
далее вызываю INetCfgClassSetup::Install, который возвращает SPAPI_E_NO_DRIVER_SELECTED (0x800F0203). не могу понять, что ей надо? что изменилось в x64 по сравнению с 32bit ? код вызова ниже
OBO_TOKEN OboToken;
INetCfgClassSetup* pncClassSetup;
INetCfgComponent* pncc;
ZeroMemory (&OboToken, sizeof(OboToken));
OboToken.Type = OBO_USER;
hResult = pNetConfigurator->QueryNetCfgClass( &GUID_DEVCLASS_NETSERVICE, IID_INetCfgClassSetup, (void**)&pncClassSetup);
if (SUCCEEDED(hResult))
{
hResult = pncClassSetup->Install( L"mydriver", &OboToken, NSF_POSTSYSINSTALL, 0,
NULL, NULL, &pncc);
// skipped
}