B.8.2 Loading Windows NT Drivers

Windows NT drivers are loaded either:

  1. At system boot

  2. Dynamically by the Win32 Service Controller

The second method is recommended. Either method requires setting up the Registry.

The streams.sys driver must be loaded prior to any driver that calls a StrmRegister* function. The path for this driver is:

    %SystemRoot%\system\drivers\streams.sys

The dynamic link library that provides the user-level stream head API functions is winstrm.dll, accessed by the following path:

    %SystemRoot%\system\winstrm.dll

In the following example, the Tcpipsys section of the Registry is for the driver containing the STREAMS stack. The Tcpip section is for the user-level plumbing daemon.

Example: Registry Parameters for TCP/IP Configuration

\Registry\Machine
    System
        CurrentControlSet
            Services
                Tcpipsys
                    Type = KernelDriver
                    Start = DemandLoad
                    ErrorControl = ErrorNormal
                    DependOnService = REG_MULTI_SZ "Streams"
                    ImagePath = REG_EXPAND_SZ
                                 \SystemRoot\system32\drivers\tcpip.sys
 
                Tcpip
                    Type = Win32ServiceShareProcess
                    Start = DemandLoad
                    ErrorControl = ErrorNormal
                    ImagePath = REG_EXPAND_SZ 
                                %SystemRoot%\system32\LmSvcs.exe
                    DependOnService = REG_MULTI_SZ "Tcpipsys"
                    ObjectName = REG_SZ LocalSystem
                    Parameters
                        DefaultGateway = 11.1.0.1
                        DatabasePath = REG_EXPAND_SZ 
                                "%SystemRoot%\system\drivers\etc"