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

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

Разработчик

Ссылка KextManager.h

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

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

Ссылка KextManager.h

KextManager API обеспечивает простой интерфейс для приложений, чтобы загрузить расширения ядра (kexts) через RPC к kextd и искать URLs для kexts идентификатором пакета.

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

  • <CoreFoundation/CoreFoundation.h>

  • <libkern/OSReturn.h>

  • <sys/cdefs.h>

Функции

  • Информация о возвратах о загруженном kexts в словаре.

    Объявление

    Objective C

    CFDictionaryRef KextManagerCopyLoadedKextInfo ( CFArrayRef kextIdentifiers, CFArrayRef infoKeys );

    Параметры

    kextIdentifiers

    Массив kext идентификаторов для чтения из ядра. Передача NULL считать информацию для всех загрузило kexts.

    infoKeys

    Массив информационных ключей для чтения из ядра. Передача NULL считывать все информации.

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

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

    Обсуждение

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

    • CFBundleIdentifier - CFString

    • CFBundleVersion - CFString (примечание: строки версии могут быть каноническими, но их числовые значения будут тем же; «1.2.0» может стать «1.2», например),

    • OSBundleCompatibleVersion - CFString

    • OSBundleIsInterface - CFBoolean

    • OSKernelResource - CFBoolean

    • OSBundleCPUType - CFNumber

    • OSBundleCPUSubtype - CFNumber

    • OSBundlePath - CFString (это - просто подсказка, сохраненная в ядре; kext, как гарантируют, не будет в этом пути),

    • OSBundleExecutablePath - CFString (абсолютный путь к исполнимой программе в пакете kext; подсказка как выше)

    • OSBundleUUID - CFData (UUID kext исполнимой программы, если это имеет один),

    • OSBundleStarted - CFBoolean (истина, если kext работает),

    • OSBundlePrelinked - CFBoolean (истина, если kext загружается из предварительно соединенного ядра),

    • OSBundleLoadTag - CFNumber («Индекс», данный kextstat)

    • OSBundleLoadAddress - CFNumber

    • OSBundleLoadSize - CFNumber

    • OSBundleWiredSize - CFNumber

    • OSBundleDependencies - CFArray тегов загрузки, идентифицирующих непосредственные зависимости от ссылки

    • OSBundleRetainCount - CFNumber (OSObject сохраняют количество самого kext),

    • OSBundleClasses - CFArray CFDictionary, содержащего информацию о классах C++, определенных kext:

    • OSMetaClassName - CFString

    • OSMetaClassSuperclassName - CFString, отсутствуйте для корневых классов

    • OSMetaClassTrackingCount - CFNumber предоставление количества экземпляра самого класса, плюс 1 для каждого прямого подкласса с любыми экземплярами

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

    Objective C

    @import IOKit;

    Доступность

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

  • Создайте URL, определяющий местоположение kext с данным идентификатором пакета.

    Объявление

    Objective C

    CFURLRef KextManagerCreateURLForBundleIdentifier ( CFAllocatorRef allocator, CFStringRef kextIdentifier );

    Параметры

    allocator

    Средство выделения для использования для выделения памяти для нового объекта. Передача NULL или kCFAllocatorDefault использовать текущее средство выделения по умолчанию.

    kextIdentifier

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

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

    CFURLRef определение местоположения kext с требуемым идентификатором пакета. Возвраты NULL если kext не может быть найден, или на ошибке.

    Обсуждение

    Kexts ищутся сначала тем, загружаются ли они, вторые версией. В частности, если kextIdentifier идентифицирует kext, в настоящее время загружающийся, возвращенный URL определит местоположение этого kext, если он все еще будет присутствовать на диске. Если требуемый kext не загружается, или если его пакет не в расположении, это было первоначально загружено из, возвращенный URL определит местоположение последней версии желаемого kext, если можно быть найдены в системной папке расширений. Если никакая версия kext не может быть найдена, NULL возвращается.

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

    Objective C

    @import IOKit;

    Доступность

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

  • Запросите kext загрузочную систему загрузить kext данным идентификатором пакета.

    Объявление

    Objective C

    OSReturn KextManagerLoadKextWithIdentifier ( CFStringRef kextIdentifier, CFArrayRef dependencyKextAndFolderURLs );

    Параметры

    kextIdentifier

    Идентификатор пакета kext, чтобы искать и загрузиться.

    dependencyKextAndFolderURLs

    Массив дополнительного URLs, отдельного kexts и папок, которые могут содержать kexts.

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

    kOSReturnSuccess если kext успешно загружается (или уже загружается), иначе возвраты на ошибке.

    Обсуждение

    kextIdentifier ищется в системной папке расширений и среди любого kexts от dependencyKextAndFolderURLs. Любой non-kext URLs в dependencyKextAndFolderURLs сканируются на верхнем уровне для kexts и плагинов kexts.

    Или обработка вызовов должна иметь эффективный идентификатор пользователя 0 (суперпользователь) или kext, из которого быть загруженным и все его зависимости должны находиться в Системе / и иметь свойство OSBundleAllowUserLoad true.

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

    Objective C

    @import IOKit;

    Доступность

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

  • Запросите kext загрузочную систему загрузить kext данным URL.

    Объявление

    Objective C

    OSReturn KextManagerLoadKextWithURL ( CFURLRef kextURL, CFArrayRef dependencyKextAndFolderURLs );

    Параметры

    kextURL

    URL kext для загрузки.

    dependencyKextAndFolderURLs

    Массив дополнительного URLs, отдельного kexts и папок, которые могут содержать kexts.

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

    kOSReturnSuccess если kext успешно загружается (или уже загружается), иначе возвраты на ошибке.

    Обсуждение

    Любой non-kext URLs в dependencyKextAndFolderURLs сканируются на верхнем уровне для kexts и плагинов kexts.

    Или обработка вызовов должна иметь эффективный идентификатор пользователя 0 (суперпользователь) или kext, из которого быть загруженным и все его зависимости должны находиться в Системе / и иметь свойство OSBundleAllowUserLoad true.

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

    Objective C

    @import IOKit;

    Доступность

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

  • Запросите ядро разгрузить kext с данным идентификатором пакета.

    Объявление

    Objective C

    OSReturn KextManagerUnloadKextWithIdentifier ( CFStringRef kextIdentifier );

    Параметры

    kextIdentifier

    Идентификатор пакета kext для разгрузки.

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

    kOSReturnSuccess если kext найден и успешно разгружен, иначе возвраты на ошибке. Посмотрите /usr/include/libkern/OSKextLib.h для кодов ошибки.

    Обсуждение

    Обработка вызовов должна иметь эффективный идентификатор пользователя 0 (суперпользователь).

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

    Objective C

    @import IOKit;

    Доступность

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