Hi,
like Linux rmmod Windows can also unload a device driver “online”.
In later Windows release the command devcon.exe from the Windows Device Driver Kit was used for such tasks.
Newer Windows versions have the pnputil.exe command line tool.
An example: Windows PE is running and you want to remove a disk attached from SAN. The Host Bus Adapter is an emulex.
Find all instances
X:\> pnputil /enum-devices
Instance ID: PCI\VEN_10DF&DEV_F100&SUBSYS_F10010DF&REV_03\4&1d78c88&0&0010
Device Description: Emulex LightPulse HBA - Storport Miniport Driver
Class Name: SCSIAdapter
Class GUID: {4d36e97b-e325-11ce-bfc1-08002be10318}
Manufacturer Name: Emulex
Status: Started
Driver Name: elxstor.inf
Instance ID: PCI\VEN_10DF&DEV_F100&SUBSYS_F10010DF&REV_03\4&1d78c88&0&0110
Device Description: Emulex LightPulse HBA - Storport Miniport Driver
Class Name: SCSIAdapter
Class GUID: {4d36e97b-e325-11ce-bfc1-08002be10318}
Manufacturer Name: Emulex
Status: Disabled
Driver Name: elxstor.inf
And disable the driver
X:\> pnputil /disable-device "PCI\VEN_10DF&DEV_F100&SUBSYS_F10010DF&REV_03\4&1d78c88&0&0010" Microsoft PnP Utility Disabling device: PCI\VEN_10DF&DEV_F100&SUBSYS_F10010DF&REV_03\4&1d78c88&0&0010 Device disabled successfully X:\> pnputil /disable-device "PCI\VEN_10DF&DEV_F100&SUBSYS_F10010DF&REV_03\4&1d78c88&0&0110" Microsoft PnP Utility Disabling device: PCI\VEN_10DF&DEV_F100&SUBSYS_F10010DF&REV_03\4&1d78c88&0&0110 Device disabled successfully
The (disk) device could also removed temporarily. For example to get a new diskpart disk number.
In this example a Disk handled by a MegaRaid SR driver.
X:\> pnputil /remove-device "SCSI\Disk&Ven_LSI&Prod_MegaSR__\4&12c2d723&0&020000"
Then rescan for disks
X:\> diskpart DISKPART> rescan
Michael