Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка IOPM.h

Опции
Развертывание Target:

На этой странице

Ссылка 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 };

    Константы

    • kIOPMSystemCapabilityWillChange

      kIOPMSystemCapabilityWillChange

      Указывает, что изменится системная возможность.

      Доступный в OS X v10.7 и позже.

    • kIOPMSystemCapabilityDidChange

      kIOPMSystemCapabilityDidChange

      Указывает, что изменилась системная возможность.

      Доступный в OS X v10.7 и позже.