jakiejia
驱动牛犊
驱动牛犊
  • 注册日期2009-02-28
  • 最后登录2009-11-09
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1237回复:1

很诚恳的问一个问题,希望好心人是给予解答高分相赠

楼主#
更多 发布于:2009-05-16 13:19
我在codeproject下载了一个范例,但是我调试的时候总提示我CreateFile函数返回的句柄是0xffffffff,而且用GetLastError=2 请问是什么错误呢 ?我的FileName是照着微软msdn上写的,难道是我的系统有问题吗??VS2005+XPDDK 我只是做个测试程序然后在扩展 高分相赠代码如下::::
SC_HANDLE hSCManager;
    SC_HANDLE hService;
    SERVICE_STATUS ss;

                      HANDLE hFile;
                      DWORD dwReturn;        
    hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE);

    printf("Load Driver\n");

    if(hSCManager)
    {
        printf("Create Service\n");

        hService = CreateService(hSCManager, _T("Example"), _T("Example"), SERVICE_START | DELETE | SERVICE_STOP, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_IGNORE, _T("..\\example.sys"), NULL, NULL, NULL, NULL, NULL);

        if(!hService)
        {
            hService = OpenService(hSCManager, _T("Example"), SERVICE_START | DELETE | SERVICE_STOP);
        }

        if(hService)
        {
            printf("Start Service\n");

            StartService(hService, 0, NULL);
            hFile = CreateFile(_T("\\\\.\\Example"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

            if(hFile)
            {
                WriteFile(hFile, _T("Hello from user mode!"), sizeof(_T("Hello from user mode!")), &dwReturn, NULL);
                CloseHandle(hFile);
            }

            DWORD a=GetLastError();
            printf("Press Enter to close service\r\n");
            getchar();
            ControlService(hService, SERVICE_CONTROL_STOP, &ss);

            CloseServiceHandle(hService);

            DeleteService(hService);
        }

        CloseServiceHandle(hSCManager);
    }




    return 0;
jakiejia
驱动牛犊
驱动牛犊
  • 注册日期2009-02-28
  • 最后登录2009-11-09
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-05-16 13:36
怎么没人来解答呢
游客

返回顶部