Since Microsoft incorporated support for the NVMe storage protocol in the Windows 8.1 system, its in - built NVMe driver, disk.sys (which can be traced back to 2006 and is among Microsoft's early basic general - purpose drivers), has been handling NVMe devices as SCSI disks. This has led to an inability to fully tap into the performance potential of modern NVMe solid - state drives.
This driver has a significant flaw. During data transmission, the buffer size is not a multiple of the sector size, which could potentially result in data corruption. Moreover, its single - queue design, with a maximum capacity of only 32 commands, is a poor fit for the multi - queue nature of NVMe. NVMe supports up to 64,000 queues, and this mismatch severely restricts the parallel processing capabilities.
Subsequently, Microsoft made efforts to optimize NVMe support by introducing the StorNVMe.sys driver in Windows 8.1/Server 2012 R2. However, early versions of this driver still had problems. For instance, there were issues with abnormal asynchronous event handling, which necessitated fixes through update rollups, such as the one in update 2887595.
