| Previous | Next |
| E_INVALIDARG | E_PROP_SET_UNSUPPORTED |
E_PROP_ID_UNSUPPORTED
The built-in message is only the immediate status; the useful boundary is that IKsPropertySet or a related property interface recognized the set GUID but not the requested property ID for that object.
What the status actually records
DirectShow and kernel-streaming property access is negotiated by property-set GUID, property ID, target object, operation type, instance data, and buffer sizes. In the context of unsupported property identifier within a supported property set, QuerySupported is the correct capability boundary; display names and device family assumptions are not. Locate the first component changing state in E_PROP_ID_UNSUPPORTED and distinguish later summary errors.
Important boundary. E_PROP_SET_UNSUPPORTED means the whole GUID set is unavailable; this code is narrower and preserves that the set itself was recognized. Record the exact constant and returning API.
Evidence before intervention
| Record before retry | Use in verification |
|---|---|
| Property-set GUID, property ID, target filter/pin/device, and QuerySupported flags | Provides a stable before/after comparison for feature negotiation. |
| Driver/filter version, media topology, and instance-data buffer | Shows whether the set, the individual property, or the requested access mode is unsupported. |
| Get versus Set operation and buffer sizes | Ties the result to one property-set GUID, property ID, and target object. |
| A known supported property ID in the same set and object | Separates capability discovery from buffer, driver, and graph-topology problems. |
Capability flags and exact object identity are more useful than a full media capture or device dump.
A controlled diagnostic path
- Call QuerySupported before Get or Set. Keep the property-set GUID, property ID, target object, and access flags fixed.
- Hold the set GUID fixed and compare a documented supported ID. Use a disposable graph or test device when probing unsupported property identifier within a supported property set could reconfigure streaming state.
- Enumerate the actual device/filter version rather than assuming another model’s capabilities. Retain a known-supported property as a control so graph reconstruction is not mistaken for repair of unsupported property identifier within a supported property set.
Do not use repeated Get or Set calls as the main test; a later success may refer to another pin, device generation, driver instance, or graph object.
How to distinguish nearby outcomes
| Observed comparison | Interpretation |
|---|---|
| A known-good object succeeds through the same component | The platform path exists; concentrate on the production object, identity, metadata, or state captured above. |
| The control fails at the same first operation | Preserve driver, target-object, property-call, and graph-topology evidence before changing buffers or rebuilding the graph. |
| The status changes after one deliberate adjustment | The diagnostic boundary moved; the replacement status now describes the next contract to investigate. |
Correction and acceptance criteria
Correction for unsupported property identifier within a supported property set: Feature-detect the property ID and provide fallback behavior instead of forcing a driver-specific capability. Keep the original property-set GUID, property ID, target object, driver version, and graph topology for unsupported property identifier within a supported property set so the change can be reversed and explained.
Accept the repair only when supported IDs advertise and execute the expected access, while unknown IDs are handled without breaking the filter graph. Repeat the original supported operation under the original identity and object state; another device model, different pin, or simplified filter graph is useful comparison evidence but not final regression proof.
Technical references
Use these Microsoft references for the formal contract and combine them with the exact server or catalog evidence from the incident: For E_PROP_ID_UNSUPPORTED check version-specific behavior against the DirectShow, kernel-streaming, and driver generation that returned the result.
- Microsoft: IKsPropertySet Set contract — defines the formal status or component boundary.
- Microsoft: IKsPropertySet Get contract — documents the API or lifecycle needed to interpret unsupported property identifier within a supported property set.
- Microsoft: IKsPropertySet QuerySupported — provides the architecture, format, or protocol context.
- Microsoft: DirectShow capture-pin property-set requirements — supports the controlled verification criteria.
Looking for a different code? Search another status or error code.