KSJACK_DESCRIPTION structure (devicetopology.h)

The KSJACK_DESCRIPTION structure describes an audio jack.


typedef struct __MIDL___MIDL_itf_devicetopology_0000_0000_0009 {
  DWORD              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.

Value First channel Second channel
ePcxChanMap_FL_FR Front-left speaker Front-right speaker
ePcxChanMap_FC_LFE Front-center speaker Low-frequency-effects speaker (subwoofer)
ePcxChanMap_BL_BR Back-left speaker Back-right speakers
ePcxChanMap_FLC_FRC Front-left-center speaker Front-right-center speaker
ePcxChanMap_SL_SR Side-left speaker Side-right speaker
ePcxChanMap_Unknown Unknown Unknown

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.

Value Connector type
eConnTypeUnknown Unknown
eConnTypeEighth (Windows Vista)


(Windows 7)
1/8-inch jack
eConnTypeQuarter 1/4-inch jack
eConnTypeAtapiInternal ATAPI internal connector
eConnTypeRCA RCA jack
eConnTypeOptical Optical connector
eConnTypeOtherDigital Generic digital connector
eConnTypeOtherAnalog Generic analog connector
eConnTypeMultichannelAnalogDIN Multichannel analog DIN connector
eConnTypeXlrProfessional XLR connector
eConnTypeRJ11Modem RJ11 modem connector
eConnTypeCombination Combination 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.

Value Geometric location
eGeoLocRear Rear-mounted panel
eGeoLocFront Front-mounted panel
eGeoLocLeft Left-mounted panel
eGeoLocRight Right-mounted panel
eGeoLocTop Top-mounted panel
eGeoLocBottom Bottom-mounted panel
eGeoLocRearOPanel(Windows Vista)

eGeoLocRearPanel(Windows 7)

Rear slide-open or pull-open panel
eGeoLocRiser Riser card
eGeoLocInsideMobileLid Inside lid of mobile computer
eGeoLocDrivebay Drive bay
eGeoLocHDMI HDMI connector
eGeoLocOutsideMobileLid Outside lid of mobile computer
eGeoLocATAPI ATAPI connector


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

Value General location
eGenLocPrimaryBox On primary chassis
eGenLocInternal Inside primary chassis
eGenLocSeperate(Windows Vista)

eGenLocSeparate(Windows 7)

On separate chassis
eGenLocOther Other 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.

Value Port connection type
ePortConnJack Jack
ePortConnIntegratedDevice Slot for an integrated device
ePortConnBothIntegratedAndJack Both a jack and a slot for an integrated device
ePortConnUnknown Unknown


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]
Header devicetopology.h

See also

Core Audio Structures