// usbctypes.h
typedef union _USBC_PD_POWER_DATA_OBJECT {
UINT32 U;
struct {
UINT32 Reserved : 30;
UINT32 Type : 2;
} Common;
struct {
UINT32 MaximumCurrentIn10mA : 10;
UINT32 VoltageIn50mV : 10;
UINT32 PeakCurrent : 2;
UINT32 Reserved1 : 3;
UINT32 DataRoleSwap : 1;
UINT32 UsbCommunicationCapable : 1;
UINT32 ExternallyPowered : 1;
UINT32 UsbSuspendSupported : 1;
UINT32 DualRolePower : 1;
UINT32 FixedSupply : 2;
} FixedSupplyPdo;
struct {
UINT32 MaximumAllowablePowerIn250mW : 10;
UINT32 MinimumVoltageIn50mV : 10;
UINT32 MaximumVoltageIn50mV : 10;
UINT32 Battery : 2;
} BatterySupplyPdo;
struct {
UINT32 MaximumCurrentIn10mA : 10;
UINT32 MinimumVoltageIn50mV : 10;
UINT32 MaximumVoltageIn50mV : 10;
UINT32 VariableSupportNonBattery : 2;
} VariableSupplyNonBatteryPdo;
struct {
UINT32 MaximumCurrentIn50mA : 7;
UINT32 Reserved1 : 1;
UINT32 MinimumVoltageIn100mV : 8;
UINT32 Reserved2 : 1;
UINT32 MaximumVoltageIn100mV : 8;
UINT32 Reserved3 : 2;
UINT32 PpsPowerLimited : 1;
UINT32 AugmentedPowerDataObjectType : 2;
UINT32 AugmentedPowerDataObject : 2;
} ProgrammablePowerSupplyApdo;
struct {
UINT32 OperationalCurrentIn10mA : 10;
UINT32 VoltageIn50mV : 10;
UINT32 Reserved : 5;
UINT32 DataRoleSwap : 1;
UINT32 UsbCommunicationCapable : 1;
UINT32 ExternallyPowered : 1;
UINT32 HigherCapability : 1;
UINT32 DualRolePower : 1;
UINT32 FixedSupply : 2;
} FixedSupplyPdoSink;
struct {
UINT32 OperationalPowerIn250mW : 10;
UINT32 MinimumVoltageIn50mV : 10;
UINT32 MaximumVoltageIn50mV : 10;
UINT32 Battery : 2;
} BatterySupplyPdoSink;
struct {
UINT32 OperationalCurrentIn10mA : 10;
UINT32 MinimumVoltageIn50mV : 10;
UINT32 MaximumVoltageIn50mV : 10;
UINT32 VariableSupportNonBattery : 2;
} VariableSupplyNonBatteryPdoSink;
} USBC_PD_POWER_DATA_OBJECT, *PUSBC_PD_POWER_DATA_OBJECT;
View the official Windows Driver Kit DDI referenceNo description available.
Describes a power data object (PDO). For information about these members, see the Power Delivery specification.
USize of the structure.
CommonCommon.ReservedReserved.
Common.TypeType of power data object.
FixedSupplyPdoDescribing a fixed supply type power data object.
FixedSupplyPdo.MaximumCurrentIn10mAMaximum current in multiples of 10 mA.
FixedSupplyPdo.VoltageIn50mVVoltage in multiples of 50 mV.
FixedSupplyPdo.PeakCurrentPeak current.
FixedSupplyPdo.Reserved1Reserved for future use.
FixedSupplyPdo.DataRoleSwapIf set, indicates the power data object can perform a data role swap.
FixedSupplyPdo.UsbCommunicationCapableIf set, indicates the power data object is USB communication capable.
FixedSupplyPdo.ExternallyPoweredIf set, indicates the power data object is externally powered.
FixedSupplyPdo.UsbSuspendSupportedIndicates support for USB suspend.
FixedSupplyPdo.DualRolePowerDual role power.
FixedSupplyPdo.FixedSupplyFixed supply.
BatterySupplyPdoContains bitfields describing a variable-supply non-battery PD object.
BatterySupplyPdo.MaximumAllowablePowerIn250mWDescribes the maximum voltage in multiples of 250mV.
BatterySupplyPdo.MinimumVoltageIn50mVDescribes the minimum voltage in multiples of 50mV.
BatterySupplyPdo.MaximumVoltageIn50mVDescribes the maximum voltage in multiples of 50mV.
BatterySupplyPdo.BatteryBattery type.
VariableSupplyNonBatteryPdoContains bitfields describing a variable-supply non-battery PD object.
VariableSupplyNonBatteryPdo.MaximumCurrentIn10mADescribes the maximum current in multiples of 10 mA.
VariableSupplyNonBatteryPdo.MinimumVoltageIn50mVDescribes the minimum current in multiples of 50 mA.
VariableSupplyNonBatteryPdo.MaximumVoltageIn50mVDescribes the maximum voltage in multiples of 10 mA.
VariableSupplyNonBatteryPdo.VariableSupportNonBatteryVariable Support Non Battery type.
ProgrammablePowerSupplyApdoDescribing a programmable power supply augmented power delivery object.
ProgrammablePowerSupplyApdo.MaximumCurrentIn50mADescribes the maximum current in multiples of 50 mA.
ProgrammablePowerSupplyApdo.Reserved1Reserved, do not use.
ProgrammablePowerSupplyApdo.MinimumVoltageIn100mVDescribes the minimum voltage in multiples of 100 mV.
ProgrammablePowerSupplyApdo.Reserved2Reserved, do not use.
ProgrammablePowerSupplyApdo.MaximumVoltageIn100mVDescribes the maximum voltage in multiples of 100 mV.
ProgrammablePowerSupplyApdo.Reserved3Reserved, do not use.
ProgrammablePowerSupplyApdo.PpsPowerLimitedPower limited supply.
ProgrammablePowerSupplyApdo.AugmentedPowerDataObjectTypeDescribes a USBC augmented power data object type.
ProgrammablePowerSupplyApdo.AugmentedPowerDataObjectDescribes a USBC power data object type.
FixedSupplyPdoSinkDescribing a fixed supply type power data object.
FixedSupplyPdoSink.OperationalCurrentIn10mADescribes the operational current in multiples of 10 mA.
FixedSupplyPdoSink.VoltageIn50mVVoltage in multiples of 50 mV.
FixedSupplyPdoSink.ReservedReserved.
FixedSupplyPdoSink.DataRoleSwapIf set, indicates the power data object can perform a data role swap.
FixedSupplyPdoSink.UsbCommunicationCapableIf set, indicates the power data object is USB communication capable.
FixedSupplyPdoSink.ExternallyPoweredIf set, indicates the power data object is externally powered.
FixedSupplyPdoSink.HigherCapabilityPower data object has a higher capability.
FixedSupplyPdoSink.DualRolePowerDual role power.
FixedSupplyPdoSink.FixedSupplyFixed supply.
BatterySupplyPdoSinkContains bitfields describing a variable-supply non-battery PD object.
BatterySupplyPdoSink.OperationalPowerIn250mWDescribes the maximum voltage in multiples of 250mV.
BatterySupplyPdoSink.MinimumVoltageIn50mVDescribes the minimum voltage in multiples of 50mV.
BatterySupplyPdoSink.MaximumVoltageIn50mVDescribes the maximum voltage in multiples of 50mV.
BatterySupplyPdoSink.BatteryBattery type.
VariableSupplyNonBatteryPdoSinkContains bit fields describing a battery supply power data object.
VariableSupplyNonBatteryPdoSink.OperationalCurrentIn10mADescribes the operational current in multiples of 10 mA.
VariableSupplyNonBatteryPdoSink.MinimumVoltageIn50mVDescribes the minimum voltage in multiples of 50mV.
VariableSupplyNonBatteryPdoSink.MaximumVoltageIn50mVDescribes the maximum voltage in multiples of 50mV.
VariableSupplyNonBatteryPdoSink.VariableSupportNonBatteryVariable Support Non Battery type.