ACMDRVOPENDESC

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

Syntax

typedef struct {
DWORD
cbStruct;
FOURCC
fccType;
FOURCC
fccComp;
DWORD
dwVersion;
DWORD
dwFlags;
DWORD
dwError;
LPCSTR
pszSectionName;
LPCSTR
pszAliasName;
DWORD
dnDevNode;
} ACMDRVOPENDESC;

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 ACM_IOControl 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. Drivers are restricted to specifying a ACM_IOControl 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 ACM_IOControl function's return code 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 in the Windows NT DDK.
pszAliasName
Contains the driver's alias. This is the driver's "msacm. alias" entry in the registry. For more information, see Installing ACM Drivers in the Windows NT DDK.
dnDevNode
Device node ID.

Comments

When the ACM calls an ACM driver's ACM_IOControl entry point and specifies a DRV_OPEN message, it includes an ACMDRVOPENDESC structure as the lParam2 parameter to ACM_IOControl. 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 ACM_IOControl in ACM Drivers.

ACM drivers do not always receive this structure when they receive a ACM_Open function. 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 in the Windows NT DDK.)