IOUserClient
Обеспечивает основание для коммуникации между клиентскими приложениями и объектами Набора I/O.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Объявление
C++
virtual IOReturn exportObjectToClient( task_t
task
, OSObject *obj
, io_object_t *clientObj
);Параметры
task
Задача.
obj
Объект мы хотим экспортировать в клиент.
clientObj
Возвращенное значение является именем порта клиента.
Обсуждение
Сделайте произвольное доступное OSObject клиентской задаче.
-
Выпустите mach_port_t ссылку, сохраненную в структуре OSAsyncReference64.
Объявление
C++
static IOReturn releaseAsyncReference64( OSAsyncReference64
reference
);Параметры
reference
Ссылка передала подклассу IOAsyncMethod или externalMethod () в поле IOExternalMethodArguments.asyncReference.
Возвращаемое значение
Код возврата.
Обсуждение
Структура OSAsyncReference64, переданная асинхронным методам, содержит ссылку на пробуждение порт Маха, который должен быть выпущен для балансирования каждого асинхронного вызова метода. Если эти вызовы правильно не сбалансированы, поведение не определено.
-
Выпустите mach_port_t, переданный registerNotificationPort ().
Объявление
C++
static IOReturn releaseNotificationPort( mach_port_t
reference
);Параметры
reference
mach_port_t параметр ранее передал реализации подкласса registerNotificationPort ().
Возвращаемое значение
Код возврата.
Обсуждение
mach_port_t передал registerNotificationPort (), методы должны быть выпущены для балансирования каждого вызова к registerNotificationPort (). Если эти вызовы правильно не сбалансированы, поведение не определено.
-
Объявление
C++
IOMemoryMap * removeMappingForDescriptor( IOMemoryDescriptor *
memory
);Параметры
memory
Экземпляр дескриптора памяти, ранее возвращенный реализацией clientMemoryForType ().
Возвращаемое значение
Ссылка на первый экземпляр IOMemoryMap, найденный в списке отображений, создаваемых IOUserClient из того переданного дескриптора памяти, возвращается, или нуль, если ни один не существует. Вызывающая сторона должна выпустить эту ссылку.
Обсуждение
Удалите первое отображение, создаваемое из дескриптора памяти, возвращенного clientMemoryForType () из списка IOUserClient отображений. Если такое отображение существует, оно сохраняется, и ссылка, в настоящее время сохраненная IOUserClient, возвращается к вызывающей стороне.
-
Отправьте уведомление как с sendAsyncResult, но с конечной организацией очередей.
Объявление
C++
static IOReturn sendAsyncResult64WithOptions( OSAsyncReference64
reference
, IOReturnresult
, io_user_reference_t args[], UInt32numArgs
, IOOptionBitsoptions
);Обсуждение
IOUserClient:: sendAsyncResult64 () будет infitely сообщения очереди, если клиент не обработает их своевременно. Этот вариант не будет для простой обработки ситуаций, где клиенты, как могут ожидать, прекратят обрабатывать сообщения.
-
Объявление
C++
struct ExpansionData { #if IOKITSTATS IOUserClientCounter *counter; #else void *iokitstatsReserved; #endif };
Обсуждение
Эта структура будет использоваться для расширения capablilties этого класса в будущем.
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData * reserved;