ACMDM_FILTER_DETAILS

This message requests an ACM driver to return information about a filter associated with a specified filter tag.

Parameters

dwDriverID
Specifies a driver instance identifier. The driver returns this value in response to the ACM_Open function.
hDriver
Handle to a driver.
uMsg
Specifies this message.
lParam1
Pointer to an ACMFILTERDETAILS structure. The structure is declared in the Msacm.h header file.
lParam2
Contains one of the following flags specified by the fdwDetails parameter of the acmFilterDetails function:
ACM_FILTERDETAILSF_INDEX
Indicates that the dwFilterIndex member of ACMFILTERDETAILS contains a filter index. The valid index range is from 0 to 1 less than the cStandardFilters member returned in the ACMFILTERTAGDETAILS structure for the filter tag.
ACM_FILTERDETAILSF_FILTER
Indicates that the client has filled in the WAVEFILTER structure associated with ACMFILTERDETAILS.

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 following are possible error values.

MMSYSERR_NOTSUPPORTED
The driver does not support filter operations or the specified query operation.
ACMERR_NOTPOSSIBLE
The input parameter values do not represent valid filters or filter tags.

Remarks

The ACM (Waveapi.dll) sends the ACMDM_FILTER_DETAILS message by calling the ACM driver’s ACM_IOControl entry point through the DeviceIoControl function. The ACM sends this message when an application calls the acmFilterDetails function.

An ACM driver that provides filters must support this message.

The client can do either of the following:

The client specifies the filter tag in the dwFilterTag member of ACMFILTERDETAILS. The driver returns the following information for a particular filter belonging to the filter tag:

Before calling the driver’s ACM_IOControl function, the ACM should verify the following conditions:

WAVEFILTER is a generic structure for describing a filter. Generally, extend this structure for your specific filter type. For examples, see VOLUMEWAVEFILTER and ECHOWAVEFILTER in the Mmreg.h header file. When a client sends an ACMDM_FILTER_DETAILS message, it specifies a pointer to a structure that you have defined for the specified filter type. This structure typically is larger than the generic WAVEFILTER.

Before returning, the driver must set the cbStruct member of ACMFILTERDETAILS to the actual number of bytes returned. The value returned in cbStruct must not be greater than the value received from the client.

For more information about format tags and filters, see the Windows NT DDK.

See Also

ACMDM_FILTERTAG_DETAILS