This article describes how optional Start and Stop device methods work. It also suggests guidelines for programmers writing their own optional Start and Stop device configuration methods.
The Start and Stop methods are optional. They allow a device to support the additional device state of Stopped. The Start method takes the device from the Stopped state to the Available state. The Stop method takes the device from the Available state to the Stopped state. Most devices do not have Start and Stop methods.
The Stopped state keeps a configured device in the system, but renders it unusable by applications. In this state, the device's driver is loaded and the device is defined to the driver. This might be implemented by having the Stop method issue a command telling the device driver not to accept any normal I/O requests. If an application subsequently issues a normal I/O request to the device, it will fail. The Start method can then issue a command to the driver telling it to start accepting I/O requests once again.
If Start and Stop methods are written, the other device methods must be written to account for the Stopped state. For example, if a method checks for a device state of Available, it might now need to check for Available and Stopped states.
Additionally, write the Configure method so that it takes the device from the Defined state to the Stopped state. Also, the Configure method may invoke the Start method, taking the device to the Available state. The Unconfigure method must change the device to the Defined state from either the Available or Stopped states.
When used, Start and Stop methods are usually device-specific.
By convention, the first three characters of the name of the Start method are stt. The first three characters of the name of the Stop method are stp. The remainder of the names (Dev) can be any characters, subject to operating system file-name restrictions, that identify the device or group of devices that use the methods.
|-l name||Identifies the logical name of the device to be started or stopped.|
Writing a Device Method Overview.
ODM Device Configuration Object Classes.
Writing an Unconfigure Method, Writing a Configure Method.