我的运行一下应用程序,发现绑定的适配器个数为0,也就是ProtocolBindAdapter 未被调用,各位高手知道是什么原因吗,谢谢!

解决方案 »

  1.   

    我也发现这个问题,经过调试发现是Packet.inf这个文件的配置和程序里面用的不一样,最简单的办法是他例子里面的什么都不要改动,包括配置文件.修改打开服务的一个地方的名称.如下将slNdisProt改为Packet,运行后可得出示例结果
    BOOL ProtoStartService()
    {
    BOOL bRet = FALSE;
    SC_HANDLE hSCM = NULL, hService = NULL;

    char szLinkName[] = "Packet";      //"slNdisProt";<==修改这里 // 打开SCM管理器
    hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
    if(hSCM != NULL)
    {
    hService = ::OpenService(hSCM, (LPCSTR)szLinkName, SERVICE_ALL_ACCESS); int nError = ::GetLastError(); if(hService != NULL)
    {
    if(!::StartService(hService, 0, NULL))
    {
    int nError = ::GetLastError();
    if(nError == ERROR_SERVICE_ALREADY_RUNNING)
    {
    bRet = TRUE;
    }
    }
    else
    {
    bRet = TRUE;
    }
    }
    } if(hService != NULL)
    ::CloseServiceHandle(hService);
    if(hSCM != NULL)
    ::CloseServiceHandle(hSCM); if(bRet)
    ::Sleep(50);
    return bRet;
    }