CODECAPI_ALLSETTINGS
The CODECAPI_ALLSETTINGS property is used to pass back and forth a minidriver-generated block of data.
Get | Set | Target | Property descriptor type | Property value type |
---|---|---|---|---|
Yes | Yes | Filter | KSPROPERTY | PVOID |
The property value (operation data) is of type PVOID, which is a pointer to a user-mode buffer for the minidriver-generated block of data.
Comments
On a property get call:
If an application makes a property get call with a zero length buffer, the minidriver must return STATUS_BUFFER_OVERFLOW and specify the required buffer size in the Irp->IoStatus.Information field. If the length buffer is nonzero, the minidriver must return STATUS_BUFFER_TOO_SMALL if the supplied buffer is too small for the data block, otherwise the minidriver packs its settings into a data block that can be restored later.
It is the minidriver's responsibility to add data integrity checks to the data, such as a unique GUID to indicate the minidriver generated the data, a cyclic redundancy check (CRC), and a header length.
The data returned should be lightweight and contain only information required to reconstruct the current settings.
Applications will use this property for multilevel undos, stored with their projects, and so on.
On a property set call:
The minidriver must verify the data's integrity and check that the data block size is under the maximum data size (for example, reject anything over a certain size). It must also verify the CRC and the header length. The minidriver must also cache any changes to be propagated for CODECAPI_CURRENTCHANGELIST.
Requirements
Headers: Declared in ksmedia.h. Include ksmedia.h.