Ссылка пространства пользователя IOPM.h
Определяет константы управления питанием и ключи, используемые и в ядре и управление питанием пространства пользователя.
IOPM.h определяет диапазон констант управления питанием, используемых в нескольких и пространствах пользователя в ядре APIs. Старше значащий IOPMPowerFlags раньше указывал, что поля структуры IOPMPowerState определяются здесь.
Большинство констант, определенных в IOPM.h, осуждается или для внутреннего использования Apple только и не разрабатывается в headerdoc.
Включенные заголовки
<IOKit/IOTypes.h><IOKit/IOMessage.h><IOKit/IOReturn.h>
См. Обзор для документации уровня заголовка.
-
Структура, описывающая системное изменение возможности.
Объявление
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 и позже.
См. Обзор для документации уровня заголовка.
-
Объявление
Objective C
#define kIOPMMessageDarkWakeThermalEmergency \ iokit_family_msg(sub_iokit_powermanagement, 0x160) #define kIOPMMessageDriverAssertionsChanged \ iokit_family_msg(sub_iokit_powermanagement, 0x150)Константы
-
kIOPMMessageDarkWakeThermalEmergencykIOPMMessageDarkWakeThermalEmergencykIOPMMessageDarkWakeThermalEmergency, Отправленный, когда машина становится неподдерживаемым образом теплой в DarkWake. Ядро PM могло бы принять решение отложить машину для сна прямо после.
Доступный в OS X v10.8 и позже.
-
kIOPMMessageDriverAssertionsChangedkIOPMMessageDriverAssertionsChangedkIOPMMessageDriverAssertionsChanged, Отправленный, когда ядро изменились утверждения драйвера 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 = 0x80 }; kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit = 0x40, kIOPMDriverAssertionReservedBit7 = 0x80 }; kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit = 0x40, kIOPMDriverAssertionReservedBit7 = 0x80 }; kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit = 0x40, kIOPMDriverAssertionReservedBit7 = 0x80 }; kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit = 0x40, kIOPMDriverAssertionReservedBit7 = 0x80 }; kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit = 0x40, kIOPMDriverAssertionReservedBit7 = 0x80 }; kIOPMDriverAssertionCPUBit *= 0x01, /! kIOPMDriverAssertionUSBExternalDeviceBit */ kIOPMDriverAssertionUSBExternalDeviceBit *= 0x04, /! kIOPMDriverAssertionBluetoothHIDDevicePairedBit */ kIOPMDriverAssertionBluetoothHIDDevicePairedBit *= 0x08, /! kIOPMDriverAssertionExternalMediaMountedBit */ kIOPMDriverAssertionExternalMediaMountedBit *= 0x10, /! kIOPMDriverAssertionReservedBit5 */ kIOPMDriverAssertionReservedBit5 *= 0x20, /! kIOPMDriverAssertionPreventDisplaySleepBit */ kIOPMDriverAssertionPreventDisplaySleepBit = 0x40, kIOPMDriverAssertionReservedBit7 = 0x80 };Константы
-
kIOPMDriverAssertionBluetoothHIDDevicePairedBitkIOPMDriverAssertionBluetoothHIDDevicePairedBitkIOPMDriverAssertionCPUBit, Когда установлено, ядро PM предпочтет оставлять CPU и основное оборудование, работающее по «Темному Следу» состояние вместо сна.
-
kIOPMDriverAssertionCPUBitkIOPMDriverAssertionCPUBitkIOPMDriverAssertionCPUBit, Когда установлено, ядро PM предпочтет оставлять CPU и основное оборудование, работающее по «Темному Следу» состояние вместо сна.
-
kIOPMDriverAssertionExternalMediaMountedBitkIOPMDriverAssertionExternalMediaMountedBitkIOPMDriverAssertionCPUBit, Когда установлено, ядро PM предпочтет оставлять CPU и основное оборудование, работающее по «Темному Следу» состояние вместо сна.
-
kIOPMDriverAssertionPreventDisplaySleepBitkIOPMDriverAssertionPreventDisplaySleepBitkIOPMDriverAssertionPreventDisplaySleepBit, Когда установлено, дисплей должен остаться включенным в то время как не спящая система.
-
kIOPMDriverAssertionPreventDisplaySleepBitkIOPMDriverAssertionPreventDisplaySleepBitkIOPMDriverAssertionCPUBit, Когда установлено, ядро PM предпочтет оставлять CPU и основное оборудование, работающее по «Темному Следу» состояние вместо сна.
-
kIOPMDriverAssertionReservedBit7kIOPMDriverAssertionReservedBit7kIOPMDriverAssertionCPUBit, Когда установлено, ядро PM предпочтет оставлять CPU и основное оборудование, работающее по «Темному Следу» состояние вместо сна.
-
kIOPMDriverAssertionUSBExternalDeviceBitkIOPMDriverAssertionUSBExternalDeviceBitkIOPMDriverAssertionCPUBit, Когда установлено, ядро 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 }; typedef unsigned long IOPMPowerFlags;Константы
-
kIOPMPowerOnkIOPMPowerOnУказывает, что устройство работает, требует питания и обеспечивает питание. Полезный как a: Возможность, InputPowerRequirement, OutputPowerCharacter
Доступный в OS X v10.1 и позже.
-
kIOPMDeviceUsablekIOPMDeviceUsableУказывает, что устройство применимо в этом состоянии. Полезный только как Возможность
Доступный в OS X v10.1 и позже.
-
kIOPMLowPowerkIOPMLowPowerУказывает, что устройство находится в состоянии низкой мощности. Может быть bitwis-OR'd вместе с флагом kIOPMDeviceUsable, чтобы указать, что устройство все еще применимо.
Устройство с возможностью kIOPMLowPower может: Потребуйте или 0 или kIOPMPowerOn из его родительского Предложения питания или kIOPMLowPower, kIOPMPowerOn, или 0 (никакое питание вообще) его дочерним элементам плоскости питания.
Полезный только, поскольку Возможность, несмотря на то, что драйверы USB должны консультироваться с документацией семьи USB для других допустимых обстоятельств для использования kIOPMLowPower, укусила.
Доступный в OS X v10.5 и позже.
-
kIOPMPreventIdleSleepkIOPMPreventIdleSleepВ то время как устройство находится в том состоянии, в поле возможности состояния электропитания, запрещает неактивный системный сон.
Например, дисплеи и диски устанавливают эту возможность своего состояния электропитания ON; в то время как дисплей (и таким образом клавиатура или мышь) или диск активен, так как система может не бездействовать сон.
Полезный только как Возможность.
Доступный в OS X v10.1 и позже.
-
kIOPMSleepCapabilitykIOPMSleepCapabilityИспользуемый только определенными семьями IOKit (USB). Не определенный или используемый универсальным Управлением питанием. Считайте свою документацию семьи, чтобы видеть, необходимо ли определить powerstate, использующий эти возможности.
Доступный в OS X v10.1 и позже.
-
kIOPMRestartCapabilitykIOPMRestartCapabilityИспользуемый только определенными семьями IOKit (USB). Не определенный или используемый универсальным Управлением питанием. Считайте свою документацию семьи, чтобы видеть, необходимо ли определить powerstate, использующий эти возможности.
Доступный в OS X v10.1 и позже.
-
kIOPMSleepkIOPMSleepИспользуемый только определенными семьями IOKit (USB). Не определенный или используемый универсальным Управлением питанием. Считайте свою документацию семьи, чтобы видеть, необходимо ли определить powerstate, использующий эти возможности.
Доступный в OS X v10.1 и позже.
-
kIOPMRestartkIOPMRestartИспользуемый только определенными семьями IOKit (USB). Не определенный или используемый универсальным Управлением питанием. Считайте свою документацию семьи, чтобы видеть, необходимо ли определить powerstate, использующий эти возможности.
Доступный в OS X v10.1 и позже.
-
kIOPMInitialDeviceStatekIOPMInitialDeviceStateУказывает начальное состояние электропитания для устройства. Если
initialPowerStateForDomainState()возвращает состояние электропитания с этим набором флага в поле возможности, тогда начальное изменение питания выполняется, не вызывая водительскоеsetPowerState().Доступный в OS X v10.7 и позже.
Обсуждение
Эти биты могут быть поразрядными-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 };Константы
