[This is preliminary documentation and subject to change.]
The msbdnOutputSetValue function assigns a dynamic value to a virtual interface DLL's configuration specified by the MMR.
HRESULT msbdnOutputSetValue(
IN MSBDN_OUTPUT_SUBSYSTEM *Subsystem,
IN MSBDN_OUTPUT_VALUE *Value
);
Returns zero if the function was successful. If the function fails, the return value is non-zero. If the Index member of MSBDN_OUTPUT_VALUE in the Value parameter is not valid or the Type member is not correct, msbdnOutputGetValue should return E_INVALIDARG.
The MMR calls msbdnOutputSetValue to set a specific dynamic configuration value. The index of the value is stored in the Index member of MSBDN_OUTPUT_VALUE in the Value parameter. The virtual interface DLL should look up the dynamic configuration value corresponding to this index, check to make sure that the data type passed by the MMR is correct for this value, set its own internal value for this configuration value, and should store this configuration value in persistent storage. A virtual interface usually stores values in the registry. If this configuration value affects communication with external equipment, such as setting a bitrate divisor, this change should take place immediately, provided doing so does not cause other problems.
If a virtual interface stores values in the registry, msbdnOutputSetValue should call the RegSetValueEx Win32 function and pass the open registry key contained in the Subsystem parameter, the name of the configuration value to set, and the buffer containing the configuration data. The buffer that holds this configuration data contains the address of the union member of MSBDN_OUTPUT_VALUE in the Value parameter.
msbdnOutputGetValue, MSBDN_OUTPUT_SUBSYSTEM, MSBDN_OUTPUT_VALUE