In standard normal mapping the blue component corresponds to the axis which is perpendicular to the surface. For a rough surface that value needs to be low and high for a smooth surface. The way I do it is to pass a vector4 to the shader as follows:
set vector4 vecId, roughness#, roughness#, 1.0, 0.0 ` fourth component is spare
set effect constant vector fxId, "roughness", vecId
then use the vector in the shader as follows.
Add the declaration to the "tweaks" at the start:
float3 roughness = {1.0, 1.0, 1.0};
then change your normal map code to
NormalColor = NormalColor * 2.0f - 1.0f;
float3 NormalVector = normalize(NormalColor.xyz * roughness);
That should be it - apart from giving roughness# a suitable value in DBPro.
[Health warning: untested.

]
Edit: the variable roughness# should not be restricted, just keep it non-negative. The normalization step takes care of the rest.