Bootstrap

如何不重启系统加载.SYS文件

首先,SYS的加载控制是在注册表里,START控制,你肯定已经知道了,我
就不多说了。
可以用控制面版DEVICE,这个你已经知道了,还可以用NET START XXX
和NET STOP XXX来启动和加载,这个你肯定也知道了。

用DEVICE和NET START的方法都必须先在注册表里填好,然后启动机器
然后NET START XXX,其实可以不用重启动机器的(动态加载的SYS)

在程序里加载的程序是这样的
BOOLEAN
StartPacketDriver(    LPTSTR     ServiceName    )

{

    BOOLEAN  Status;

    SC_HANDLE  SCManagerHandle;
    SC_HANDLE  SCServiceHandle;

    /* Open a handle to the SC Manager database. */

    SCManagerHandle = OpenSCManager(
     NULL,                   /* local machine           */
     NULL,                   /* ServicesActive database */
     SC_MANAGER_ALL_ACCESS); /* full access rights      */

    if (SCManagerHandle==NULL) {

        MessageBox(NULL,TEXT("Could not open SC"),NULL,MB_OK);

        return FALSE;

    } else {

        SCServiceHandle=OpenService(SCManagerHandle,
                            ServiceName,
                            SERVICE_START
                            );

        if (SCServiceHandle == NULL) {

            MessageBox(NULL,TEXT("Could not open service"),NULL,MB_OK);

        }

        Status=StartService(
                   SCServiceHandle,
                   0,
                   NULL
                   );

        if (!Status) {

            if (GetLastError()==ERROR_SERVICE_ALREADY_RUNNING) {


                return TRUE;
            }
        }

        return Status;

    }

    return FALSE;

}

就这么简单.
;