Share via


How to enable host memory buffer in Windows10 by registry key?

Question

Wednesday, October 26, 2016 6:54 AM

Dear Sir,

I want to try the HMB(host memory buffer) function with MS inbox NVMe driver.

I have already install Win 10 Anniversary Edition but I don’t know how to enable through registry key.

Could you kindly share the way to enable HMB function?

Note1:  My drive support HMB function
Note2:  Please refer to the pdf file which announced Microsoft inbox driver support HMB in page.39

http://www.flashmemorysummit.com/English/Collaterals/Proceedings/2016/20160809_FA12_P3_Prepalli.pdf

Thank you,

Lester

All replies (2)

Thursday, October 27, 2016 6:44 AM ✅Answered

Hi Lester,

I search for a long time, no official resources show that there is a registry key is related to NVMe driver or HMB support in Windows 10 1607, we have never heard of relevant information.

Please note, the Flash Memory’s documentation you mentioned is a third-party documentation that is not published by Microsoft, we can’t  guarantee the accuracy of it.

Since they claim that there is a registry needs to be modified to enable their product’s function, why they don’t point out the specific registry key for their customers directly, I am confused about this point. The only Microsoft resource I can find out in the PDF file is kb2990941, which is aimed at Windows 7 SP1 and Server 2008 R2, not Window 10, smart as you, please take over.

Hope my clarification is clear.

Sincere regards

Please remember to mark the replies as an answers if they help and unmark them if they provide no help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.


Sunday, September 2, 2018 12:41 AM

I have been looking for this myself and in 2018 there is no information on the configuration options for HMBAllocationPolicy, but it is quite obvious it is implemented in the storport driver which you can confirm by looking here https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/storport/nf-storport-storportallocatehostmemorybuffer 

From the presentation we can see that the key is a DWORD and is called HMBAllocationPolicy it is also in the control node, logically the setting should be in the storport node under control and that's exactly where it should go.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorPort

However what are the settings?

Through some trial and error I have discovered 4

0 = Disabled

1 = Minimum

2 = Maximum

3 = Device Usage Based

A reboot is required after changing the setting and you can see the effect of the setting by going to the following log in Event Viewer Microsoft-Windows-Storage-Storport/Operational 

This is what successfully setting the policy to Maximum looks like

Host Memory Buffer Allocation for \Device\RaidPort0 succeeded.                    
Failure Reason: None                    
Allocation Policy: Maximum                    
Attemped to Allocate: 0x2600000 bytes                    
Actually Allocated: 0x2600000 bytes                    
Device Minimum: 0xA00000 bytes                    
Device Preferred: 0x2600000 bytes                    
Policy Maximum: 0x4000000 bytes