The KSJACK_DESCRIPTION structure describes an audio jack.


typedef struct {
  EChannelMapping    ChannelMapping;
  COLORREF           Color;
  EPcxConnectionType ConnectionType;
  EPcxGeoLocation    GeoLocation;
  EPcxGenLocation    GenLocation;
  EPxcPortConnection PortConnection;
  BOOL               IsConnected;



Specifies the mapping of the two audio channels in a stereo jack to speaker positions.

In Windows Vista, the value of this member is one of the EChannelMapping enumeration values shown in the following table.

ValueFirst channelSecond channel
ePcxChanMap_FL_FRFront-left speakerFront-right speaker
ePcxChanMap_FC_LFEFront-center speakerLow-frequency-effects speaker (subwoofer)
ePcxChanMap_BL_BRBack-left speakerBack-right speakers
ePcxChanMap_FLC_FRCFront-left-center speakerFront-right-center speaker
ePcxChanMap_SL_SRSide-left speakerSide-right speaker


For a physical connector with one, three, or more channels, the value of this member is ePcxChanMap_Unknown.

In Windows 7, the EChannelMapping enumeration has been deprecated. The datatype of this member is a DWORD. This member stores either 0 or the bitwise-OR combination of one or more of the following values that are defined in Ksmedia.h.

#define SPEAKER_FRONT_LEFT              0x1
#define SPEAKER_FRONT_RIGHT             0x2
#define SPEAKER_FRONT_CENTER            0x4
#define SPEAKER_LOW_FREQUENCY           0x8
#define SPEAKER_BACK_LEFT               0x10
#define SPEAKER_BACK_RIGHT              0x20
#define SPEAKER_BACK_CENTER             0x100
#define SPEAKER_SIDE_LEFT               0x200
#define SPEAKER_SIDE_RIGHT              0x400
#define SPEAKER_TOP_CENTER              0x800
#define SPEAKER_TOP_FRONT_LEFT          0x1000
#define SPEAKER_TOP_FRONT_CENTER        0x2000
#define SPEAKER_TOP_FRONT_RIGHT         0x4000
#define SPEAKER_TOP_BACK_LEFT           0x8000
#define SPEAKER_TOP_BACK_CENTER         0x10000
#define SPEAKER_TOP_BACK_RIGHT          0x20000


The jack color. The color is expressed as a 32-bit RGB value that is formed by concatenating the 8-bit blue, green, and red color components. The blue component occupies the 8 least-significant bits (bits 0-7), the green component occupies bits 8-15, and the red component occupies bits 16-23. The 8 most-significant bits are zeros. If the jack color is unknown or the physical connector has no identifiable color, the value of this member is 0x00000000, which is black.


The connection type. The value of this member is one of the EPcxConnectionType enumeration values shown in the following table.

ValueConnector type

eConnTypeEighth (Windows Vista)


(Windows 7)
1/8-inch jack
eConnTypeQuarter1/4-inch jack
eConnTypeAtapiInternalATAPI internal connector
eConnTypeRCARCA jack
eConnTypeOpticalOptical connector
eConnTypeOtherDigitalGeneric digital connector
eConnTypeOtherAnalogGeneric analog connector
eConnTypeMultichannelAnalogDINMultichannel analog DIN connector
eConnTypeXlrProfessionalXLR connector
eConnTypeRJ11ModemRJ11 modem connector
eConnTypeCombinationCombination of connector types



The geometric location of the jack. The value of this member is one of the EPcxGeoLocation enumeration values shown in the following table.

ValueGeometric location
eGeoLocRearRear-mounted panel
eGeoLocFrontFront-mounted panel
eGeoLocLeftLeft-mounted panel
eGeoLocRightRight-mounted panel
eGeoLocTopTop-mounted panel
eGeoLocBottomBottom-mounted panel

eGeoLocRearOPanel(Windows Vista)

eGeoLocRearPanel(Windows 7)

Rear slide-open or pull-open panel
eGeoLocRiserRiser card
eGeoLocInsideMobileLidInside lid of mobile computer
eGeoLocDrivebayDrive bay
eGeoLocHDMIHDMI connector
eGeoLocOutsideMobileLidOutside lid of mobile computer
eGeoLocATAPIATAPI connector



The general location of the jack. The value of this member is one of the EPcxGenLocation enumeration values shown in the following table.

ValueGeneral location
eGenLocPrimaryBoxOn primary chassis
eGenLocInternalInside primary chassis

eGenLocSeperate(Windows Vista)

eGenLocSeparate(Windows 7)

On separate chassis
eGenLocOtherOther location



The type of port represented by the jack. The value of this member is one of the EPxcPortConnection enumeration values shown in the following table.

ValuePort connection type
ePortConnIntegratedDeviceSlot for an integrated device
ePortConnBothIntegratedAndJackBoth a jack and a slot for an integrated device



If the audio adapter supports jack-presence detection on the jack, the value of IsConnected indicates whether an endpoint device is plugged into the jack. If IsConnected is TRUE, a device is plugged in. If it is FALSE, the jack is empty. For devices that do not support jack-presence detection, this member is always TRUE. For more information about jack-presence detection, see Audio Endpoint Devices.


This structure is used by the IKsJackDescription::GetJackDescription method in the DeviceTopology API. It describes an audio jack that is part of a connection between an endpoint device and a hardware device in an audio adapter. When a user needs to plug an endpoint device into a jack or unplug it from a jack, an audio application can use the descriptive information in the structure to help the user to find the jack.


Minimum supported client

Windows Vista [desktop apps only]

Minimum supported server

Windows Server 2008 [desktop apps only]



See also

Core Audio Structures