Solaris device drivers are attached by devfsadm(1M) and by the kernel in response to open(2) requests from applications. Drivers not currently in use can be detached when the system experiences memory pressure. The ddi-forceattach and ddi-no-autodetach properties can be used to customize driver attach/detach behavior.
The ddi-forceattach is an integer property, to be set globally by means of the driver.conf(4) file. Drivers with this property set to 1 are loaded and attached to all possible instances during system startup. The driver will not be auto-detached due to system memory pressure.
The ddi-no-autodetach is an integer property to be set globally by means of the driver.conf(4) file or created dynamically by the driver on a per-instance basis with ddi_prop_update_int(9F). When this property is set to 1, the kernel will not auto-detach driver due to system memory pressure.
Note that ddi-forceattach implies ddi-no-autodetach. Setting either property to a non-integer value or an integer value not equal to 1 produces undefined results. These properties do not prevent driver detaching in response to reconfiguration requests, such as executing commands cfgadm(1M), modunload(1M), rem_drv(1M), and update_drv(1M).
Writing Device Drivers