| Previous | Next |
| SPAPI_E_NO_SUCH_INTERFACE_CLASS | SPAPI_E_INVALID_MACHINENAME |
SPAPI_E_INVALID_REFERENCE_STRING
A reference string distinguishes interfaces within one device instance
SPAPI_E_INVALID_REFERENCE_STRING is associated with device-interface registration. The optional reference string becomes part of the interface identity and is passed back to drivers that use multiple interface instances. It is not a friendly name, arbitrary device path, or storage location for application data.
Most function drivers should pass no reference string. Bus drivers that use interfaces as placeholders for on-demand child objects must define a stable syntax and parse it consistently. Backslashes and path-like assumptions can conflict with how the system constructs symbolic link names.
Validate the interface contract, not only string encoding
- Confirm that the driver design actually requires multiple reference-named interfaces.
- Use a null reference string for the ordinary single-interface case.
- Keep the value stable and within the syntax expected by the owning bus or function driver.
- Do not persist the resulting device path as though it were the original reference string.
References
- Microsoft: SetupDiCreateDeviceInterface
- Microsoft: framework reference-string semantics
- Microsoft: SetupAPI error codes
Looking for a different code? Search another status or error code.