Ссылка 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 );Параметры
kextURLURL 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 и позже.
