LRESULT
DrvRemoveDriver(
PREG_ACCESS RegAccess
);
The DrvRemoveDriver function unloads the kernel-mode driver and marks the kernel-mode driver service for deletion.
Parameters
RegAccess
Pointer to a globally-defined structure of type REG_ACCESS.
Return Value
Returns one of the following values.
Value | Definition |
DRVCNF_OK | Kernel-mode driver service has been marked for deletion. Driver was not loaded prior to call. |
DRVCNF_RESTART | Kernel-mode driver service has been marked for deletion. Driver was loaded prior to call. |
DRVCNF_CANCEL | Attempt to mark kernel-mode driver service for deletion failed. |
See the Comments section below.
Comments
The structure pointed to by RegAccess must be a single, globally-defined REG_ACCESS structure that the driver uses with all calls to drvlib.lib functions requiring a RegAccess parameter.
The DrvRemoveDriver function first checks to see if the kernel-mode driver is loaded and, if it is, calls DrvUnloadKernelDriver. Then it calls DrvDeleteServicesNode.
Typically, a user-mode driver calls DrvRemoveDriver from its DriverProc function, when processing a DRV_REMOVE command. The return values provided by DrvRemoveDriver match those specified for DRV_REMOVE.
The driver must call DrvCreateServicesNode before calling DrvRemoveDriver. After DrvRemoveDriver returns, the driver should call DrvCloseServiceManager.
For additional information, see Installing and Configuring your Driver, Using drvlib.lib.