Ссылка IOPM.h
Определяет константы управления питанием и ключи, используемые и в ядре и управление питанием пространства пользователя.
IOPM.h определяет диапазон констант управления питанием, используемых в нескольких и пространствах пользователя в ядре APIs. Старше значащий IOPMPowerFlags раньше указывал, что поля структуры IOPMPowerState определяются здесь.
Большинство констант, определенных в IOPM.h, осуждается или для внутреннего использования Apple только и не разрабатывается в headerdoc.
Включенные заголовки
<IOKit/IOTypes.h>
<IOKit/IOMessage.h>
<IOKit/IOReturn.h>
Посмотрите раздел Overview выше для документации уровня заголовка.
-
Структура, описывающая системное изменение возможности.
Объявление
Objective C
struct IOPMSystemCapabilityChangeParameters { uint32_t notifyRef; uint32_t maxWaitForReply; uint32_t changeFlags; uint32_t __reserved1; uint32_t fromCapabilities; uint32_t toCapabilities; uint32_t __reserved2[4]; };
Поля
notifyRef
Идентификатор для этого уведомления о сообщении. Клиенты с незаконченным I/O могут сигнализировать завершение путем вызова
allowPowerChange()
с этим значением как параметр. Клиенты, которые в состоянии обработать уведомление синхронно, должны проигнорировать это поле.maxWaitForReply
Возвращаемое значение к вызывающей стороне, указывающей максимальное время в микросекундах для ожидания
allowPowerChange()
вызвать. Значение по умолчанию является нулем, указывающим, что клиент, обрабатывающий, закончил, и управление питанием не должно ожидатьallowPowerChange()
вызвать.changeFlags
Флаги будут установлены указать, предшествует ли уведомление изменению возможности (
kIOPMSystemCapabilityWillChange
), или после того, как изменение возможности произошло (kIOPMSystemCapabilityDidChange
).__reserved1
Обнулить.
fromCapabilities
Системные возможности в начале перехода.
toCapabilities
Системные возможности в конце перехода.
__reserved2
Обнулить.
Обсуждение
Системное изменение возможности является системным переходом уровня от ряда системных возможностей к новому набору системных возможностей. Управление питанием отправляет a
kIOMessageSystemCapabilityChange
обменивайтесь сообщениями и обеспечивает эту структуру как данные сообщения (ссылкой) кgIOPriorityPowerStateInterest
клиенты, когда изменяется системная возможность.Доступность
Доступный в OS X v10.7 и позже.
Посмотрите раздел Overview выше для документации уровня заголовка.
-
Объявление
Objective C
#define kIOPMMessageDarkWakeThermalEmergency \ iokit_family_msg(sub_iokit_powermanagement, 0x160) #define kIOPMMessageDriverAssertionsChanged \ iokit_family_msg(sub_iokit_powermanagement, 0x150)
Константы
-
kIOPMMessageDarkWakeThermalEmergency
kIOPMMessageDarkWakeThermalEmergency
kIOPMMessageDarkWakeThermalEmergency, Отправленный, когда машина становится неподдерживаемым образом теплой в DarkWake. Ядро PM могло бы принять решение отложить машину для сна прямо после.
Доступный в OS X v10.8 и позже.
-
kIOPMMessageDriverAssertionsChanged
kIOPMMessageDriverAssertionsChanged
kIOPMMessageDriverAssertionsChanged, Отправленный, когда ядро изменились утверждения драйвера PM.
Доступный в OS X v10.7 и позже.
-
-
Объявление
Objective C
kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit *= 0x40, /! kIOPMDriverAssertionReservedBit7 */ kIOPMDriverAssertionReservedBit7 *= 0x80, /! kIOPMDriverAssertionMagicPacketWakeEnabledBit */ kIOPMDriverAssertionMagicPacketWakeEnabledBit *= 0x100, /! kIOPMDriverAssertionNetworkKeepAliveActiveBit */ kIOPMDriverAssertionNetworkKeepAliveActiveBit = 0x200 }; kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit *= 0x40, /! kIOPMDriverAssertionReservedBit7 */ kIOPMDriverAssertionReservedBit7 *= 0x80, /! kIOPMDriverAssertionMagicPacketWakeEnabledBit */ kIOPMDriverAssertionMagicPacketWakeEnabledBit *= 0x100, /! kIOPMDriverAssertionNetworkKeepAliveActiveBit */ kIOPMDriverAssertionNetworkKeepAliveActiveBit = 0x200 }; kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit *= 0x40, /! kIOPMDriverAssertionReservedBit7 */ kIOPMDriverAssertionReservedBit7 *= 0x80, /! kIOPMDriverAssertionMagicPacketWakeEnabledBit */ kIOPMDriverAssertionMagicPacketWakeEnabledBit *= 0x100, /! kIOPMDriverAssertionNetworkKeepAliveActiveBit */ kIOPMDriverAssertionNetworkKeepAliveActiveBit = 0x200 }; kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit *= 0x40, /! kIOPMDriverAssertionReservedBit7 */ kIOPMDriverAssertionReservedBit7 *= 0x80, /! kIOPMDriverAssertionMagicPacketWakeEnabledBit */ kIOPMDriverAssertionMagicPacketWakeEnabledBit *= 0x100, /! kIOPMDriverAssertionNetworkKeepAliveActiveBit */ kIOPMDriverAssertionNetworkKeepAliveActiveBit = 0x200 }; kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit *= 0x40, /! kIOPMDriverAssertionReservedBit7 */ kIOPMDriverAssertionReservedBit7 *= 0x80, /! kIOPMDriverAssertionMagicPacketWakeEnabledBit */ kIOPMDriverAssertionMagicPacketWakeEnabledBit *= 0x100, /! kIOPMDriverAssertionNetworkKeepAliveActiveBit */ kIOPMDriverAssertionNetworkKeepAliveActiveBit = 0x200 }; kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit *= 0x40, /! kIOPMDriverAssertionReservedBit7 */ kIOPMDriverAssertionReservedBit7 *= 0x80, /! kIOPMDriverAssertionMagicPacketWakeEnabledBit */ kIOPMDriverAssertionMagicPacketWakeEnabledBit *= 0x100, /! kIOPMDriverAssertionNetworkKeepAliveActiveBit */ kIOPMDriverAssertionNetworkKeepAliveActiveBit = 0x200 }; kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit *= 0x40, /! kIOPMDriverAssertionReservedBit7 */ kIOPMDriverAssertionReservedBit7 *= 0x80, /! kIOPMDriverAssertionMagicPacketWakeEnabledBit */ kIOPMDriverAssertionMagicPacketWakeEnabledBit *= 0x100, /! kIOPMDriverAssertionNetworkKeepAliveActiveBit */ kIOPMDriverAssertionNetworkKeepAliveActiveBit = 0x200 }; kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit *= 0x40, /! kIOPMDriverAssertionReservedBit7 */ kIOPMDriverAssertionReservedBit7 *= 0x80, /! kIOPMDriverAssertionMagicPacketWakeEnabledBit */ kIOPMDriverAssertionMagicPacketWakeEnabledBit *= 0x100, /! kIOPMDriverAssertionNetworkKeepAliveActiveBit */ kIOPMDriverAssertionNetworkKeepAliveActiveBit = 0x200 }; kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit *= 0x40, /! kIOPMDriverAssertionReservedBit7 */ kIOPMDriverAssertionReservedBit7 *= 0x80, /! kIOPMDriverAssertionMagicPacketWakeEnabledBit */ kIOPMDriverAssertionMagicPacketWakeEnabledBit *= 0x100, /! kIOPMDriverAssertionNetworkKeepAliveActiveBit */ kIOPMDriverAssertionNetworkKeepAliveActiveBit = 0x200 };
Константы
-
kIOPMDriverAssertionCPUBit
kIOPMDriverAssertionCPUBit
kIOPMDriverAssertionCPUBit, Когда установлено, ядро PM предпочтет оставлять CPU и основное оборудование, работающее по «Темному Следу» состояние вместо сна.
-
kIOPMDriverAssertionExternalMediaMountedBit
kIOPMDriverAssertionExternalMediaMountedBit
kIOPMDriverAssertionCPUBit, Когда установлено, ядро PM предпочтет оставлять CPU и основное оборудование, работающее по «Темному Следу» состояние вместо сна.
-
kIOPMDriverAssertionMagicPacketWakeEnabledBit
kIOPMDriverAssertionMagicPacketWakeEnabledBit
kIOPMDriverAssertionCPUBit, Когда установлено, ядро PM предпочтет оставлять CPU и основное оборудование, работающее по «Темному Следу» состояние вместо сна.
-
kIOPMDriverAssertionNetworkKeepAliveActiveBit
kIOPMDriverAssertionNetworkKeepAliveActiveBit
kIOPMDriverAssertionNetworkKeepAliveActiveBit, Когда установлено, драйвер сообщает PM, что это держит сетевой интерфейс, чтобы сделать TCPKeepAlive
-
kIOPMDriverAssertionNetworkKeepAliveActiveBit
kIOPMDriverAssertionNetworkKeepAliveActiveBit
kIOPMDriverAssertionCPUBit, Когда установлено, ядро PM предпочтет оставлять CPU и основное оборудование, работающее по «Темному Следу» состояние вместо сна.
-
kIOPMDriverAssertionPreventDisplaySleepBit
kIOPMDriverAssertionPreventDisplaySleepBit
kIOPMDriverAssertionCPUBit, Когда установлено, ядро PM предпочтет оставлять CPU и основное оборудование, работающее по «Темному Следу» состояние вместо сна.
-
kIOPMDriverAssertionReservedBit5
kIOPMDriverAssertionReservedBit5
kIOPMDriverAssertionCPUBit, Когда установлено, ядро PM предпочтет оставлять CPU и основное оборудование, работающее по «Темному Следу» состояние вместо сна.
-
kIOPMDriverAssertionReservedBit7
kIOPMDriverAssertionReservedBit7
kIOPMDriverAssertionCPUBit, Когда установлено, ядро PM предпочтет оставлять CPU и основное оборудование, работающее по «Темному Следу» состояние вместо сна.
-
kIOPMDriverAssertionUSBExternalDeviceBit
kIOPMDriverAssertionUSBExternalDeviceBit
kIOPMDriverAssertionCPUBit, Когда установлено, ядро PM предпочтет оставлять CPU и основное оборудование, работающее по «Темному Следу» состояние вместо сна.
-
-
Биты используются в определении capabilityFlags, inputPowerRequirements, и outputPowerCharacter в структуре IOPMPowerState.
Объявление
Objective C
enum { kIOPMPowerOn = 0x00000002, kIOPMDeviceUsable = 0x00008000, kIOPMLowPower = 0x00010000, kIOPMPreventIdleSleep = 0x00000040, kIOPMSleepCapability = 0x00000004, kIOPMRestartCapability = 0x00000080, kIOPMSleep = 0x00000001, kIOPMRestart = 0x00000080, kIOPMInitialDeviceState = 0x00000100, kIOPMRootDomainState = 0x00000200 }; typedef unsigned long IOPMPowerFlags;
Константы
-
kIOPMPowerOn
kIOPMPowerOn
Указывает, что устройство работает, требует питания и обеспечивает питание. Полезный как a: Возможность, InputPowerRequirement, OutputPowerCharacter
Доступный в OS X v10.1 и позже.
-
kIOPMDeviceUsable
kIOPMDeviceUsable
Указывает, что устройство применимо в этом состоянии. Полезный только как Возможность
Доступный в OS X v10.1 и позже.
-
kIOPMLowPower
kIOPMLowPower
Указывает, что устройство находится в состоянии низкой мощности. Может быть bitwis-OR'd вместе с флагом kIOPMDeviceUsable, чтобы указать, что устройство все еще применимо.
Устройство с возможностью kIOPMLowPower может: Потребуйте или 0 или kIOPMPowerOn из его родительского Предложения питания или kIOPMLowPower, kIOPMPowerOn, или 0 (никакое питание вообще) его дочерним элементам плоскости питания.
Полезный только, поскольку Возможность, несмотря на то, что драйверы USB должны консультироваться с документацией семьи USB для других допустимых обстоятельств для использования kIOPMLowPower, укусила.
Доступный в OS X v10.5 и позже.
-
kIOPMPreventIdleSleep
kIOPMPreventIdleSleep
В то время как устройство находится в том состоянии, в поле возможности состояния электропитания, запрещает неактивный системный сон.
Например, дисплеи и диски устанавливают эту возможность своего состояния электропитания ON; в то время как дисплей (и таким образом клавиатура или мышь) или диск активен, так как система может не бездействовать сон.
Полезный только как Возможность.
Доступный в OS X v10.1 и позже.
-
kIOPMSleepCapability
kIOPMSleepCapability
Используемый только определенными семьями IOKit (USB). Не определенный или используемый универсальным Управлением питанием. Считайте свою документацию семьи, чтобы видеть, необходимо ли определить powerstate, использующий эти возможности.
Доступный в OS X v10.1 и позже.
-
kIOPMRestartCapability
kIOPMRestartCapability
Используемый только определенными семьями IOKit (USB). Не определенный или используемый универсальным Управлением питанием. Считайте свою документацию семьи, чтобы видеть, необходимо ли определить powerstate, использующий эти возможности.
Доступный в OS X v10.1 и позже.
-
kIOPMSleep
kIOPMSleep
Используемый только определенными семьями IOKit (USB). Не определенный или используемый универсальным Управлением питанием. Считайте свою документацию семьи, чтобы видеть, необходимо ли определить powerstate, использующий эти возможности.
Доступный в OS X v10.1 и позже.
-
kIOPMRestart
kIOPMRestart
Используемый только определенными семьями IOKit (USB). Не определенный или используемый универсальным Управлением питанием. Считайте свою документацию семьи, чтобы видеть, необходимо ли определить powerstate, использующий эти возможности.
Доступный в OS X v10.1 и позже.
-
kIOPMInitialDeviceState
kIOPMInitialDeviceState
Указывает начальное состояние электропитания для устройства. Если
initialPowerStateForDomainState()
возвращает состояние электропитания с этим набором флага в поле возможности, тогда начальное изменение питания выполняется, не вызывая водительскоеsetPowerState()
.Доступный в OS X v10.7 и позже.
-
kIOPMRootDomainState
kIOPMRootDomainState
Индикация, что флаги питания представляют состояние корневого домена питания. Этот бит не должен быть установлен в структуре IOPMPowerState. Управление питанием может передать этот бит initialPowerStateForDomainState () или powerStateForDomainState () для отображения от глобального системного состояния до желаемого состояния устройства.
Доступный в OS X v10.9 и позже.
Обсуждение
Эти биты могут быть поразрядными-OR'd вместе в поле IOPMPowerState capabilityFlags, outputPowerCharacter поле и/или inputPowerRequirement поле.
Комментарии ясно отмечают, должен ли каждый флаг использоваться в capabilityFlags поле, outputPowerCharacter поле, и inputPowerRequirement поле или все три.
Значение capabilityFlags, inputPowerRequirement или outputPowerCharacter может быть 0. Большинство драйверов реализует свое состояние 'OFF', используемое, когда спящий, defininf каждое из этих 3 полей как 0.
Упомянутые ниже биты являются только наиболее распространенными битами, используемыми для определения состояний электропитания устройства. Семейство IO Вашего устройства может потребовать, чтобы Ваше устройство указало другие флаги питания ввода или вывода для взаимодействия должным образом. Консультируйтесь со специфичной для семьи документацией, чтобы определить, требуют ли Ваши плоские родители IOPower или дочерние элементы других флагов питания; они, вероятно, не делают.
Оператор импорта
Objective C
@import IOKit;
Доступность
Доступный в OS X v10.0 и позже.
-
-
Объявление
Objective C
enum { kIOPMSystemCapabilityWillChange = 0x01, kIOPMSystemCapabilityDidChange = 0x02 };
Константы