Microsoft Windows CE 3.0  


This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

This message requests an ACM driver to prepare the buffers associated with an ACMDRVSTREAMHEADERstructure.


Specifies a driver instance identifier. The driver returns this value in response to the ACM_Openfunction.
Handle to a driver.
Specifies this message.
Pointer to an ACMDRVSTREAMINSTANCEstructure.
Pointer to an ACMDRVSTREAMHEADERstructure.

Return Values

MMSYSERR_NOERROR indicates success. Otherwise, the driver returns one of the MMSYSERR error values declared in the Mmsystem.h header file or one of the ACMERR error values declared in the Msacm.h header file.


The ACM (Waveapi.dll) sends this message by calling the ACM driver's ACM_IOControlentry point through the DeviceIoControlfunction. The ACM sends this message when an application calls acmStreamPrepareHeader.

Support for this message is optional. However, if a driver supports this message, it must support ACMDM_STREAM_UNPREPARE.

If the driver returns MMSYSERR_NOTSUPPORTED, the ACM prepares the buffers for use. For most drivers, this behavior is sufficient. If the driver performs buffer preparation, it should return MMSYSERR_NOERROR. In either case, the ACM sets ACMSTREAMHEADER_STATUSF_PREPARED in the fdwStatusmember of ACMDRVSTREAMHEADER. The driver never modifies this flag. If you want both your driver and the ACM to perform buffer preparation operations, the driver should return MMSYSERR_NOTSUPPORTED after performing its preparation activity. The ACM can then perform its preparation operation.

Before calling the driver's ACM_IOControlfunction, the ACM verifies the following conditions: