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

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

Разработчик

Ссылка kern_event.h

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

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

Ссылка kern_event.h

Этот заголовок определяет функции в ядре для генерации событий ядра, а также функций для получения событий ядра с помощью сокета события ядра.

Включенные заголовки

  • <sys/appleapiopts.h>

  • <sys/ioccom.h>

  • <sys/sys_domain.h>

Функции

  • Объявление

    Objective C

    errno_t kev_msg_post ( struct kev_msg *event_msg );

    Параметры

    event_msg

    Структура, определяющая сообщение о событии ядра для регистрации.

    Возвращаемое значение

    Возвратит нуль на успех. Может возвратить много ошибок в зависимости от типа отказа. EINVAL указывает, что было что-то не так с kerne событием. Код поставщика события ядра должен быть присвоен с помощью kev_vendor_code_find. Если сообщение будет слишком большим, то EMSGSIZE будет возвращен.

    Обсуждение

    Отправьте сообщение о событии ядра.

    Оператор импорта

    Objective C

    #include <kern_event.h>;

    Доступность

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

  • Объявление

    Objective C

    errno_t kev_vendor_code_find ( const char *vendor_string, u_int32_t *vendor_code );

    Параметры

    vendor_string

    Идентификатор поставщика стиля пакета (т.е. com.apple).

    vendor_code

    По возврату, уникальному коду поставщика для использования при регистрации событий ядра.

    Возвращаемое значение

    Если ограничения памяти предотвращают выделение нового кода поставщика, может возвратить ENOMEM.

    Обсуждение

    Поиск vendor_code, данный уникальную строку. Если код поставщика не использовался начиная с запуска уникальное целое число будет присвоено для той строки. Коды поставщиков останутся тем же, пока не будет перезагружена машина.

    Оператор импорта

    Objective C

    #include <kern_event.h>;

    Доступность

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

Типы данных

Посмотрите раздел Overview выше для документации уровня заголовка.

  • Объявление

    Objective C

    struct kern_event_msg { u_int32_t total_size; /* Size of entire event msg */ u_int32_t vendor_code; /* For non-Apple extensibility */ u_int32_t kev_class; /* Layer of event source */ u_int32_t kev_subclass; /* Component within layer */ u_int32_t id; /* Monotonically increasing value */ u_int32_t event_code; /* unique code */ u_int32_t event_data[1]; /* One or more data words */ };

    Поля

    total_size

    Общий размер сообщения о событии ядра включая заголовок.

    vendor_code

    Код поставщика указывает, какой поставщик генерировал событие ядра. Это дает каждому поставщику уникальный набор классов и подклассов для использования. Используйте SIOCGKEVVENDOR ioctl для поиска кодов поставщиков для поставщиков кроме Apple. Apple использует KEV_VENDOR_APPLE.

    kev_class

    Класс события ядра.

    kev_subclass

    Подкласс события ядра.

    id

    Монотонно увеличивающая стоимость.

    event_code

    Код события.

    event_data

    Любые дополнительные данные об этом событии. Формат будет зависеть от vendor_code, kev_class, kev_subclass, и event_code. Длина event_data может быть определена с помощью total_size - KEV_MSG_HEADER_SIZE.

    Обсуждение

    Эта структура предварительно ожидается ко всем событиям ядра. Эта структура используется для определения формата остатка от события ядра. Эта структура появится на всех сообщениях, полученных на сокете события ядра. Для регистрации события ядра немного отличающаяся структура используется.

    Доступность

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

  • Объявление

    Objective C

    struct kev_d_vectors { u_int32_t data_length; /* Length of the event data */ void *data_ptr; /* Pointer to event data */ };

    Поля

    data_length

    Длина данных.

    data_ptr

    Указатель на данные.

    Обсуждение

    Эта структура используется для добавления некоторых данных к событию ядра.

    Доступность

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

  • Объявление

    Objective C

    struct kev_msg { u_int32_t vendor_code; /* For non-Apple extensibility */ u_int32_t kev_class; /* Layer of event source */ u_int32_t kev_subclass; /* Component within layer */ u_int32_t event_code; /* The event code */ struct kev_d_vectors dv[ 5]; /* Up to n data vectors */ };

    Поля

    vendor_code

    Код поставщика, присвоенный kev_vendor_code_find.

    kev_class

    Класс события.

    Подкласс события.

    Код события.

    dv

    Массив векторов, описывающих дополнительные данные, которые будут добавлены к событию ядра.

    Обсуждение

    Эта структура используется при регистрации события ядра.

    Доступность

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

  • Объявление

    Objective C

    struct kev_request { u_int32_t vendor_code; u_int32_t kev_class; u_int32_t kev_subclass; };

    Поля

    total_size

    Общий размер сообщения о событии ядра включая заголовок.

    vendor_code

    Будут проигнорированы все события ядра, не соответствующие этот код поставщика. KEV_ANY_VENDOR может использоваться для получения событий ядра с любым кодом поставщика.

    kev_class

    Будут проигнорированы все события ядра, не соответствующие этот класс. KEV_ANY_CLASS может использоваться для получения событий ядра с любым классом.

    kev_subclass

    Будут проигнорированы все события ядра, не соответствующие этот подкласс. KEV_ANY_SUBCLASS может использоваться для получения событий ядра с любым подклассом.

    Обсуждение

    Эта структура используется с SIOCSKEVFILT и SIOCGKEVFILT, чтобы установить и получить установку фильтра управления для сокета управления ядром.

    Доступность

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

  • Объявление

    Objective C

    struct kev_vendor_code { u_int32_t vendor_code; char vendor_string[ 200]; };

    Поля

    vendor_code

    Если будет тот, после создания SIOCGKEVVENDOR ioctl вызов, это будет заполнено в кодом поставщика.

    vendor_string

    Идентификатор стиля пакета.

    Обсуждение

    Эта структура используется с SIOCGKEVVENDOR ioctl для преобразования из строки, идентифицирующей kext или поставщика, в форме идентификатора пакета, к коду поставщика.

    Доступность

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

Константы

Посмотрите раздел Overview выше для документации уровня заголовка.

  • Объявление

    Objective C

    #define KEV_APPLESHARE_CLASS 4 #define KEV_FIREWALL_CLASS 5 #define KEV_IEEE80211_CLASS 6 #define KEV_IOKIT_CLASS 2 #define KEV_MSG_HEADER_SIZE (offsetof(struct kern_event_msg, event_data[0])) #define KEV_NETWORK_CLASS 1 #define KEV_SYSTEM_CLASS 3 #define KEV_VENDOR_APPLE 1 #define KEV_VENDOR_CODE_MAX_STR_LEN 200 #define N_KEV_VECTORS 5 #define SIOCGKEVFILT _IOR('e', 3, struct kev_request) #define SIOCGKEVID _IOR('e', 1, u_int32_t) #define SIOCGKEVVENDOR _IOWR('e', 4, struct kev_vendor_code) #define SIOCSKEVFILT _IOW('e', 2, struct kev_request)

    Константы

    • KEV_APPLESHARE_CLASS

      KEV_APPLESHARE_CLASS

      Класс событий ядра AppleShare.

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

    • KEV_FIREWALL_CLASS

      KEV_FIREWALL_CLASS

      Класс событий ядра брандмауэра.

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

    • KEV_IEEE80211_CLASS

      KEV_IEEE80211_CLASS

      Класс событий IEEE 802.11 ядра.

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

    • KEV_IOKIT_CLASS

      KEV_IOKIT_CLASS

      Класс событий ядра IOKit.

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

    • KEV_MSG_HEADER_SIZE

      KEV_MSG_HEADER_SIZE

      Размер части заголовка kern_event_msg структуры. Это составляет все прямо до event_data. Размер данных может быть найден путем вычитания KEV_MSG_HEADER_SIZE из общего размера от kern_event_msg.

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

    • KEV_NETWORK_CLASS

      KEV_NETWORK_CLASS

      Сетевой класс событий ядра.

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

    • KEV_SYSTEM_CLASS

      KEV_SYSTEM_CLASS

      Системный класс событий ядра.

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

    • KEV_VENDOR_APPLE

      KEV_VENDOR_APPLE

      Apple генерировал использование событий ядра твердое кодированное значение кода поставщика 1. Сторонние события ядра используют динамично выделенный код поставщика. Код поставщика может быть найден с помощью SIOCGKEVVENDOR ioctl.

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

    • KEV_VENDOR_CODE_MAX_STR_LEN

      KEV_VENDOR_CODE_MAX_STR_LEN

      Это определяет, устанавливает максимальную длину строки, которая может использоваться для идентификации поставщика или kext при поиске кода поставщика.

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

    • N_KEV_VECTORS

      N_KEV_VECTORS

      Максимальное количество kev_d_vectors для события ядра.

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

    • SIOCGKEVFILT

      SIOCGKEVFILT

      Получите фильтр события ядра для этого сокета. События ядра, не соответствующие этот фильтр, не будут получены на этом сокете.

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

    • SIOCGKEVID

      SIOCGKEVID

      Получите ID текущего события. Каждое сгенерированное событие будет иметь новый ID. Следующее событие, которое будет сгенерировано, будет иметь ID id+1.

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

    • SIOCGKEVVENDOR

      SIOCGKEVVENDOR

      Поиск код поставщика для указанного поставщика. Если код поставщика для той строки поставщика не будет существовать, ENOENT будет возвращен.

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

    • SIOCSKEVFILT

      SIOCSKEVFILT

      Установите фильтр события ядра для этого сокета. События ядра, не соответствующие этот фильтр, не будут получены на этом сокете.

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