Introduction

OSR Driver Loader

The OSR Driver Loader is a program, which allows Windows Device Driver developers an easy way to register, unregister, start, and stop their Windows Device Driver.

The fields and buttons used by the OSR Driver Loader are detailed below:

Fields:

Registry Key

Driver Path

Display Name

Load Group

Service Start

Order in Group

Type

Error

Depend on Group(s)

Buttons:

ServiceGroupOrder

Active Services

Browse

Group Load Order

Register Service

Unregister Service

Start Service

Stop Service

Dialog Boxes:

ServiceGroupOrder Dialog

Active Services Dialog

Group Load Order Dialog

Revision History

Open Systems Resources, Inc.


Stop Service Button

Stop Service

This button stops the defined service with the service control manager. The user does not have to fully specify the service to stop it. OSR Driver Loader only requires that the Registry Key field match the name of the registered service.

The user will be notified of the success or failure of this operation.


Active Services Button

Active Services

The Active Services button allows the user the ability to view the currently registered Services.


Group Load Order Button

Group Load Order

The Group Load Order button allows the user to see the currently registered load order of drivers in the selected Load Group


Registry Key

This field derived from the name of your driver will be the registry key created under HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services that will hold the information that describes the registered service.


Error

Specifies the severity of the error if this service fails to start during startup, and determines the action taken by the startup program if failure occurs. One of the following values can be specified:

  • IGNOREThe startup (boot) program logs the error but continues the startup operation.

  • NORMALThe startup program logs the error and displays a message but continues the startup operation.

  • SEVEREThe startup program logs the error. If the last-known-good configuration is being started, the startup operation continues. Otherwise, the system is restarted with the last-known-good configuration.

  • CRITICALThe startup program logs the error, if possible. If the last-known-good configuration is being started, the startup operation fails. Otherwise, the system is restarted with the last-known-good configuration.


Depend On Group

Depend on Group(s)

Selects the names of services or load ordering groups that must start before this service. If no names are specified, the service has no dependencies. Dependency on a service means that this service can only run if the service it depends on is running. Dependency on a group means that this service can run if at least one member of the group is running after an attempt to start all members of the group.


Load Order Group

Load Group

A string that names the load ordering group of which this service is a member. If None is the string, the service does not belong to a group. The registry has a list of load ordering groups located at:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder.

The startup program uses this list to load groups of services in a specified order with respect to the other groups in the list. You can place a service in a group so that another service can depend on the group.

The order in which a service starts is determined by the following criteria:

1.The order of groups in the registry's load-ordering group list. Services in groups in the load-ordering group list are started first, followed by services in groups not in the load-ordering group list and then services that do not belong to a group.

2.The service's dependencies listed in the Depend on Group parameter and the dependencies of other services dependent on the service.


Service Start

Specifies when to start the service. This member can be one of the following values:

  • BOOTSpecifies a device driver started by the operating system loader. This value is valid only if the service type is DRIVER or FILE_SYSTEM.
  • SYSTEMSpecifies a device driver started by the I/O system after boot devices such as the boot file system and disk driver have been initialized. The device driver started using this flag is not critical to the system boot. This value is valid only if the service type is DRIVER or FILE_SYSTEM.
  • AUTOMATICSpecifies a device driver or service started by the service control manager automatically during system startup.
  • DEMANDSpecifies a device driver or service started by the service control manager when a process calls the StartService function.
  • DISABLEDSpecifies a device driver or Win32 service that can no longer be started.


Group Load Order Dialog

The Group Load Order Dialog, accessed via the Group Load Order button, allows the user to see the current group load order for the group specified in the Load Group control.

This dialog box contains 4 columns. Column 1, shows the services load order within the group. Column 2, shows the name of service. Column 3, shows when in the boot process, designated by the services START value in the registry, the service will be started.

NOTE: many services will display Disabled, this represents the Service Control Managers in memory copy of the START value. To get the true value, the user must consult the registry entry for the service.


Driver Path

A string that contains the fully qualified path to the service binary file. In general, we suggest that you keep all your drivers in %SystemRoot%\system32\drivers. You must place your drivers in %SystemRoot%\system32\drivers if your drivers start at BOOT or SYSTEM since this is the only place NT will look for them.


ServiceGroupOrder

The ServiceGroupOrder button allows the user the ability to view and modify the NT ServiceGroupOrder key. Modifications of the ServiceGroupOrder key do not take affect until the system is rebooted.

NOTE: Incorrect modification of the ServiceGroupOrder key can result in an unbootable system.


Add Service Group Dialog

Add Service Dialog

The Add Service Dialog, accessed via the ServiceGroupOrder button, allows the user to Add and Delete a service as registered in the NT Registry’s ServiceGroupOrder key.

To Add a service group, the user selects a service group in the list box which the new service group is to be started BEFORE, the user then types the service group name into the edit box and finally presses the Add button. If no errors occur, the service group will be added to the ServiceGroupOrder key.

To Delete a service group, the user selects the service group to delete in the list box, then presses the Delete button. If no errors occur, the service group will be deleted from the ServiceGroupOrder key.

NOTE: Incorrect modification of the ServiceGroupOrder key can result in an unbootable system.


Register Service Button

Register Service

This button registers the defined service with the service control manager. The user will be notified of the success or failure of this operation.


Start Service Button

Start Service

This button starts the defined service with the service control manager. The user does not have to fully specify the service to start it. OSR Driver Loader only requires that the Registry Key field match the name of the registered service.

The user will be notified of the success or failure of this operation.


Service Status Dialog

The Service Status Dialog, accessed via the Active Services button, allows the user to see the list of Drivers and File Systems currently registered with the Service Control Manager. Drivers registered via OsrLoader will be immediately visible in this list, while entries created manually will not be visible until the next reboot of the system.


Browse Button

Browse

The Browse button allows the user the ability to find the driver to be loaded. Please remember that if the driver is to be started at BOOT or SYSTEM start time, it must reside in %SystemRoot%\system32\drivers.

NOTE: If your not seeing “.SYS” files, then you need to go into the explorer and tell it not to hide file whose extensions are “.SYS”


Order in Group

A value specified here indicates where in the load ordering of a specified group, this driver is to load. A value of 1 indicates that this should be the first driver in the load group to be loaded. A value greater than the number of entries in the group, indicates that this driver is to be loaded last.

The tag is used for ordering service startup in a load ordering group by specifying a tag order vector in the registry located at:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList.

Tags are only evaluated for DRIVER and FILE_SYSTEM type services that have BOOT or SYSTEM start types.

OSR Driver Loader generates a unique tag for each registered service and places it in the tag order vector for the load group in the position specified by this field.


Service Type

Type

This field describes the type of driver being registered. In general, most people use the default, Driver.

  • DRIVER A service-type that specifies a Windows NT device driver.

  • FILE_SYSTEM A service-type that specifies a Windows NT file system driver.

  • MiniFilter A service-type that specifies a Windows file system mini-filter driver.


Display Name

A string that is to be used by user interface programs to identify the service. This string has a maximum length of 256 characters. The name is case-preserved in the service control manager.


Unregister Service Button

Unregister Service

This button unregisters the defined service with the service control manager. The user does not have to fully specify the service to unregister it. OsrLoader only requires that the Registry Key field match the name of the registered service.

The user will be notified of the success or failure of this operation.


Credits Dialog

Open Systems Resources, Inc.

Exceed Your Expectations!

Specializing in Windows NT

Custom Development and Consulting

  • Systems Software

  • Device Drivers

  • File Systems

  • Network Protocols

Training and Seminars

  • Technology Transfer

  • On-site Training

  • Public Seminars Worldwide

Kits

  • Windows NT File System Development Kit (FSDK)

  • Windows NT File System Filter Driver Development Kit (FDDK)

Publishers of:

  • The NT Insider, the definitive forum for Windows NT system software development

OSR Open Systems Resources, Inc.

Customized Development, Consulting and Training

105 Route 101A, Suite 19 Amherst, NH 03031 USA

voice: +1 (603) 595-6500 fax: +1 (603) 595-6503

e-mail: info@osr.com web: http://www.osr.com


Revision History

Revision Summary

Version: | Date: | Comments:
V1.0 | March 1, 1997 | Original Version of Software.
V1.1 | April 11, 1997 | Fix problem with Depend On Group(s). This functionality should be allowed with the Service Start, Boot and System Options. Code did not prefix service with SC_GROUP_IDENTIFIER, which caused registration of service to fail.
V2.0 | December 10, 1997 | Added Advanced Button, reorder controls, added Group Load Order Button, fixed minor bugs.
V2.1 | December 10, 1998 | Fixed a bug having to do browsing for files. Fixed bug in Add Service Code.
V2.3 | May 1, 2005 | Fixed bugs added support for mini filters. Added AMD64 support