ACMDRVOPENDESC

typedef struct {

DWORD cbStruct;

FOURCC fccType;

FOURCC fccComp;

DWORD dwVersion;

DWORD dwFlags;

DWORD dwError;

LPCSTR pszSectionName;

LPCSTR pszAliasName;

DWORD dnDevNode;

} ACMDRVOPENDESC;

The ACMDRVOPENDESC structure is used by the ACM for passing information to an ACM driver, when the ACM sends the driver a DRV_OPEN message. ACMDRVOPENDESC is defined in msacmdrv.h.

Members

cbStruct

Size, in bytes, of the ACMDRVOPENDESC structure.

fccType

Contains a four-character code identifying the driver type. The driver must compare this value with ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC, which is defined in msacm.h to equal the string "audc". If the member contents does not match this string, the driver must fail the open request by specifying a DriverProc return value of zero.

fccComp

Not used. Defined to contain a four-character code identifying the driver sub-type.

dwVersion

Contains the ACM's version number. The version number's format is 0xAABBCCCC, where AA is the major version number, BB is the minor version number, and CCCC is the build number. This value is also returned by the ACM's acmGetVersion function, described in the Win32 SDK.

dwFlags

Contains flags. This member is identical to the fdwOpen argument passed to acmDriverOpen. No flags are currently defined.

dwError

Used by drivers to supply an error code. User-mode drivers are restricted to specifying a DriverProc return value of zero for all error types. To provide better error resolution, ACM drivers can specify an error code in this member, if they set the DriverProc function's return value to zero. The error code can be one of the MMSYSERR error codes defined in mmsystem.h, or one of the ACMERR error codes defined in msacm.h.

pszSectionName

Contains the registry key under which the driver's alias is stored. For more information, see Installing ACM Drivers.

pszAliasName

Contains the driver's alias. This is the driver's "msacm.alias" entry in the registry. For more information, see Installing ACM Drivers.

dnDevNode

Device node ID.

Comments

When the ACM calls an ACM driver's DriverProc entry point and specifies a DRV_OPEN message, it includes an ACMDRVOPENDESC structure as the lParam2 parameter to DriverProc. The ACM sends a DRV_OPEN message when an application calls the acmDriverOpen function, which is described in the Win32 SDK. For additional information, see DriverProc in ACM Drivers.

ACM drivers do not always receive this structure when they receive a DRV_OPEN message. They only receive the structure if they are called by the ACM. Circumstances in which a driver is not called by the ACM are as follows:

·The driver might be called by a Control Panel applet for configuration purposes.

·The driver might be designed to be both an ACM driver and an audio device driver. When such a driver is called by winmm.dll for device operations, it does not receive the structure. (For more information, see Providing ACM Support in Device Drivers.)