Ссылка IOStreamLib.h
Библиотека IOCFPlugin для использования объектов IOStream.
Плагин IOStream обеспечивает удобный набор функций для доступа и управления объектами IOStream из пользовательских программ.
Включенные заголовки
<sys/cdefs.h><IOKit/IOKitLib.h><IOKit/IOCFPlugIn.h><CoreFoundation/CoreFoundation.h><IOKit/stream/IOStreamShared.h>
-
Добавьте CFRunLoopSource для порта уведомлений к циклу выполнения.
Объявление
Objective C
IOReturn ( *AddToRunLoop)( IOStreamRef stream, CFRunLoopRef runLoop );Параметры
streamIOStreamRef потока для работы на.
runLoopЦикл выполнения, к которому можно добавить источник уведомления.
Возвращаемое значение
Возвраты kIOReturnSuccess, если источник был успешно добавлен к циклу выполнения.
-
Получает CFRunLoopSource для CFMachPort, используемого для уведомлений от ядра, что данные готовы.
Объявление
Objective C
CFRunLoopSourceRef ( *GetRunLoopSource)( IOStreamRef stream );Параметры
streamIOStreamRef потока для работы на.
Возвращаемое значение
CFRunLoopSourceRef для источника цикла выполнения или NULL, если была ошибка при создании источника.
-
Удалите CFRunLoopSource для порта уведомлений от цикла выполнения.
Объявление
Objective C
IOReturn ( *RemoveFromRunLoop)( IOStreamRef stream, CFRunLoopRef runLoop );Параметры
streamIOStreamRef потока для работы на.
runLoopЦикл выполнения, из которого можно удалить источник уведомления.
Возвращаемое значение
Возвраты kIOReturnSuccess, если источник был успешно удален из цикла выполнения.
-
Закрывает IOStream.
Объявление
Objective C
IOReturn ( *Close)( IOStreamRef stream );Параметры
streamIOStreamRef потока для закрытия.
Возвращаемое значение
Возвраты kIOReturnSuccess, если поток был успешно закрыт и неотображенные буферы.
Обсуждение
Вызов Близко umaps вся общая память для потока и освобождает все пользовательские ресурсы, используемые потоком.
-
Откройте IOStream от пространства пользователя.
Объявление
Objective C
IOReturn ( *Open)( IOStreamRef stream, IOOptionBits options );Параметры
streamСсылка на поток, возвращенный QueryInterface.
optionsОткрытые опции. В настоящее время неиспользованный.
Возвращаемое значение
Если поток не мог бы быть открыт, или буферы не могли бы быть отображены, ошибка будет возвращена.
Обсуждение
Открытая функция открывает поток и отображает память для совместно используемых очередей ввода и вывода в текущую задачу, а также память для всех буферов в очереди. Это также создает порты уведомлений для ввода и вывода.
-
Отправьте уведомление стороне ядра IOStream, что данные доступны во входной очереди.
Объявление
Objective C
IOReturn ( *SendInputNotification)( IOStreamRef stream, UInt32 token );Параметры
streamIOStreamRef потока для работы на.
tokenЗначение для передачи функции уведомления потока. Это не использовано IOStream, но может использоваться подклассами.
Возвращаемое значение
Возвраты kIOReturnSuccess, если было успешно отправлено уведомление.
-
Уведомьте сторону ядра потока, которые вводят, готово при помощи быстрого прерывания вызвать непосредственно в потоковый клиентский драйвер пользователя. Это будет передавать управление ядру и продолжать выполняться на Вашем том же потоке, вместо того, чтобы отправлять уведомление отдельному потоку.
Объявление
Objective C
IOReturn ( *SendInputSyncNotification)( IOStreamRef stream, UInt32 token );Параметры
streamIOStreamRef потока для работы на.
tokenЗначение для передачи функции уведомления потока. Это не использовано IOStream, но может использоваться подклассами.
Возвращаемое значение
Возвраты kIOReturnSuccess, если было успешно отправлено уведомление.
-
Получите порт уведомлений для буферов, приближающихся от пользователя к пространству ядра.
Объявление
Objective C
CFMachPortRef ( *GetInputPort)( IOStreamRef stream );Параметры
streamIOStreamRef потока для работы на.
Возвращаемое значение
CFMachPortRef для входного порта уведомлений.
-
Получите очередь общей памяти для буферов, приближающихся от пользователя к пространству ядра.
Объявление
Objective C
IOStreamBufferQueue *( *GetInputQueue)( IOStreamRef stream );Параметры
streamIOStreamRef потока для работы на.
Возвращаемое значение
Указатель на общую память структура IOStreamBufferQueue для входной очереди.
Обсуждение
При использовании функций уведомления Вы никогда не должны должны быть получать доступ к очередям непосредственно.
-
Получите порт уведомлений для буферов, перемещающихся из ядра в пространство пользователя.
Объявление
Objective C
CFMachPortRef ( *GetOutputPort)( IOStreamRef stream );Параметры
streamIOStreamRef потока для работы на.
Возвращаемое значение
CFMachPortRef выходного порта уведомлений.
-
Получите очередь общей памяти для буферов, перемещающихся из ядра в пространство пользователя.
Объявление
Objective C
IOStreamBufferQueue *( *GetOutputQueue)( IOStreamRef stream );Параметры
streamIOStreamRef потока для работы на.
Возвращаемое значение
Указатель на общую память структура IOStreamBufferQueue для очереди вывода.
Обсуждение
При использовании функций уведомления Вы никогда не должны должны быть получать доступ к очередям непосредственно.
-
Установите функцию обратного вызова, которую вызовут, когда новый буфер будет доступен от ядра.
Объявление
Objective C
IOReturn ( *SetOutputCallback)( IOStreamRef stream, IOStreamOutputCallback callback, void *context );Параметры
streamIOStreamRef потока для работы на. Передайте NULL для удаления обратного вызова.
Возвращаемое значение
Возвраты kIOReturnSuccess, если обратный вызов был успешно установлен или удален.
-
Получите следующий IOStreamBufferQueueEntry, доступный от очереди вывода.
Объявление
Objective C
IOReturn ( *DequeueOutputEntry)( IOStreamRef stream, IOStreamBufferQueueEntry *entry );Параметры
streamIOStreamRef потока для работы на.
entryУказатель на структуру IOStreamBufferQueueEntry. Следующая доступная запись от очереди вывода будет скопирована в него.
Возвращаемое значение
IOStreamBufferID следующего доступного буфера или kInvalidIOStreamBufferID, если никакой буфер не находится в очереди.
-
Отправьте буфер стороне ядра IOStream на входной очереди.
Объявление
Objective C
IOReturn ( *EnqueueInputBuffer)( IOStreamRef stream, IOStreamBufferID bufferID, IOByteCount dataOffset, IOByteCount dataLength, IOByteCount controlOffset, IOByteCount controlLength );Параметры
streamIOStreamRef потока для работы на.
bufferIDIOStreamBufferID буфера для размещения на очереди.
dataLengthДлина допустимых данных в буфере.
Возвращаемое значение
Возвраты kIOReturnSuccess, если буфер был успешно помещен во входную очередь.
-
Объявление
Objective C
IOReturn ( *EnqueueInputEntry)( IOStreamRef stream, IOStreamBufferQueueEntry *entry);
-
Получает число буферов в потоке.
Объявление
Objective C
IOItemCount ( *GetBufferCount)( IOStreamRef stream );Параметры
streamIOStreamRef потока для работы на.
Возвращаемое значение
Возвраты тогда число буферов в потоке.
-
Получает информацию о буфере в IOStream.
Объявление
Objective C
IOReturn ( *GetBufferInfo)( IOStreamRef stream, IOStreamBufferID bufferID, void **dataBufferAddressOut, IOByteCount *dataBufferSizeOut, void **controlBufferAddressOut, IOByteCount *controlBufferSizeOut );Параметры
streamIOStreamRef потока для работы на.
bufferIDdataBufferAddressOutdataBufferSizeOutcontrolBufferAddressOutcontrolBufferSizeOutВозвращаемое значение
Возвраты kIOReturnSuccess, если буферный ID был допустим.
-
Получите указатель на область управления IOStreamBuffer.
Объявление
Objective C
void *( *GetControlBuffer)( IOStreamRef stream, IOStreamBufferID bufferID );Параметры
streamIOStreamRef потока, владеющего буфером.
bufferIDIOStreamBufferID буфера для работы на.
Возвращаемое значение
Указатель на буферную область управления IOStreamBuffer или NULL, если это не имеет буфера управления.
-
Получите длину области управления IOStreamBuffer.
Объявление
Objective C
IOByteCount ( *GetControlBufferLength)( IOStreamRef stream, IOStreamBufferID bufferID );Параметры
streamIOStreamRef потока, владеющего буфером.
bufferIDIOStreamBufferID буфера для работы на.
Возвращаемое значение
Длина в байтах буфера управления, или 0, если нет никакого буфера управления.
-
Получите указатель на область данных IOStreamBuffer.
Объявление
Objective C
void *( *GetDataBuffer)( IOStreamRef stream, IOStreamBufferID bufferID );Параметры
streamIOStreamRef потока, владеющего буфером.
bufferIDIOStreamBufferID буфера для работы на.
Возвращаемое значение
Указатель на область буфера данных IOStreamBuffer или NULL, если это не имеет буфера данных.
-
Получите длину области данных IOStreamBuffer.
Объявление
Objective C
IOByteCount ( *GetDataBufferLength)( IOStreamRef stream, IOStreamBufferID bufferID );Параметры
streamIOStreamRef потока, владеющего буфером.
bufferIDIOStreamBufferID буфера для работы на.
Возвращаемое значение
Длина в байтах буфера данных, или 0, если нет никакого буфера данных.
-
Объявление
Objective C
IOStreamMode ( *GetMode)( IOStreamRef stream ); -
Объявление
Objective C
IOReturn ( *SetMode)( IOStreamRef stream, IOStreamMode mode ); -
Объявление
Objective C
IOReturn ( *StartStream)( IOStreamRef stream ); -
Объявление
Objective C
IOReturn ( *StopStream)( IOStreamRef stream ); -
Объявление
Objective C
IOReturn ( *SuspendStream)( IOStreamRef stream );
-
Объявление
Objective C
typedef void ( *IOStreamOutputCallback) ( IOStreamRef stream, void *context );См. также
-
Объявление
Objective C
typedef void ( *IOStreamOutputCallback) ( IOStreamRef stream, void *context );Оператор импорта
Objective C
@import IOKit;Доступность
Доступный в OS X v10.5 и позже.
См. также
См. Обзор для документации уровня заголовка.
-
Объявление
Objective C
typedef struct IOStreamInterface_v1_t ** IOStreamRef;Оператор импорта
Objective C
@import IOKit;Доступность
Доступный в OS X v10.5 и позже.
