Ссылка 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
- CFStringCFBundleVersion
- CFString (примечание: строки версии могут быть каноническими, но их числовые значения будут тем же; «1.2.0» может стать «1.2», например),OSBundleCompatibleVersion
- CFStringOSBundleIsInterface
- CFBooleanOSKernelResource
- CFBooleanOSBundleCPUType
- CFNumberOSBundleCPUSubtype
- CFNumberOSBundlePath
- CFString (это - просто подсказка, сохраненная в ядре; kext, как гарантируют, не будет в этом пути),OSBundleExecutablePath
- CFString (абсолютный путь к исполнимой программе в пакете kext; подсказка как выше)OSBundleUUID
- CFData (UUID kext исполнимой программы, если это имеет один),OSBundleStarted
- CFBoolean (истина, если kext работает),OSBundlePrelinked
- CFBoolean (истина, если kext загружается из предварительно соединенного ядра),OSBundleLoadTag
- CFNumber («Индекс», данный kextstat)OSBundleLoadAddress
- CFNumberOSBundleLoadSize
- CFNumberOSBundleWiredSize
- CFNumberOSBundleDependencies
- CFArray тегов загрузки, идентифицирующих непосредственные зависимости от ссылкиOSBundleRetainCount
- CFNumber (OSObject сохраняют количество самого kext),OSBundleClasses
- CFArray CFDictionary, содержащего информацию о классах C++, определенных kext:
OSMetaClassName
- CFStringOSMetaClassSuperclassName
- 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 и позже.