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

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

Разработчик

Ссылка IOStreamLib.h

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

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

Ссылка 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 );

    Параметры

    stream

    IOStreamRef потока для работы на.

    runLoop

    Цикл выполнения, к которому можно добавить источник уведомления.

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

    Возвраты kIOReturnSuccess, если источник был успешно добавлен к циклу выполнения.

  • Получает CFRunLoopSource для CFMachPort, используемого для уведомлений от ядра, что данные готовы.

    Объявление

    Objective C

    CFRunLoopSourceRef ( *GetRunLoopSource)( IOStreamRef stream );

    Параметры

    stream

    IOStreamRef потока для работы на.

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

    CFRunLoopSourceRef для источника цикла выполнения или NULL, если была ошибка при создании источника.

  • Удалите CFRunLoopSource для порта уведомлений от цикла выполнения.

    Объявление

    Objective C

    IOReturn ( *RemoveFromRunLoop)( IOStreamRef stream, CFRunLoopRef runLoop );

    Параметры

    stream

    IOStreamRef потока для работы на.

    runLoop

    Цикл выполнения, из которого можно удалить источник уведомления.

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

    Возвраты kIOReturnSuccess, если источник был успешно удален из цикла выполнения.

  • Закрывает IOStream.

    Объявление

    Objective C

    IOReturn ( *Close)( IOStreamRef stream );

    Параметры

    stream

    IOStreamRef потока для закрытия.

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

    Возвраты kIOReturnSuccess, если поток был успешно закрыт и неотображенные буферы.

    Обсуждение

    Вызов Близко umaps вся общая память для потока и освобождает все пользовательские ресурсы, используемые потоком.

  • Откройте IOStream от пространства пользователя.

    Объявление

    Objective C

    IOReturn ( *Open)( IOStreamRef stream, IOOptionBits options );

    Параметры

    stream

    Ссылка на поток, возвращенный QueryInterface.

    options

    Открытые опции. В настоящее время неиспользованный.

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

    Если поток не мог бы быть открыт, или буферы не могли бы быть отображены, ошибка будет возвращена.

    Обсуждение

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

  • Отправьте уведомление стороне ядра IOStream, что данные доступны во входной очереди.

    Объявление

    Objective C

    IOReturn ( *SendInputNotification)( IOStreamRef stream, UInt32 token );

    Параметры

    stream

    IOStreamRef потока для работы на.

    token

    Значение для передачи функции уведомления потока. Это не использовано IOStream, но может использоваться подклассами.

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

    Возвраты kIOReturnSuccess, если было успешно отправлено уведомление.

  • Уведомьте сторону ядра потока, которые вводят, готово при помощи быстрого прерывания вызвать непосредственно в потоковый клиентский драйвер пользователя. Это будет передавать управление ядру и продолжать выполняться на Вашем том же потоке, вместо того, чтобы отправлять уведомление отдельному потоку.

    Объявление

    Objective C

    IOReturn ( *SendInputSyncNotification)( IOStreamRef stream, UInt32 token );

    Параметры

    stream

    IOStreamRef потока для работы на.

    token

    Значение для передачи функции уведомления потока. Это не использовано IOStream, но может использоваться подклассами.

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

    Возвраты kIOReturnSuccess, если было успешно отправлено уведомление.

  • Получите порт уведомлений для буферов, приближающихся от пользователя к пространству ядра.

    Объявление

    Objective C

    CFMachPortRef ( *GetInputPort)( IOStreamRef stream );

    Параметры

    stream

    IOStreamRef потока для работы на.

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

    CFMachPortRef для входного порта уведомлений.

  • Получите очередь общей памяти для буферов, приближающихся от пользователя к пространству ядра.

    Объявление

    Objective C

    IOStreamBufferQueue *( *GetInputQueue)( IOStreamRef stream );

    Параметры

    stream

    IOStreamRef потока для работы на.

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

    Указатель на общую память структура IOStreamBufferQueue для входной очереди.

    Обсуждение

    При использовании функций уведомления Вы никогда не должны должны быть получать доступ к очередям непосредственно.

  • Получите порт уведомлений для буферов, перемещающихся из ядра в пространство пользователя.

    Объявление

    Objective C

    CFMachPortRef ( *GetOutputPort)( IOStreamRef stream );

    Параметры

    stream

    IOStreamRef потока для работы на.

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

    CFMachPortRef выходного порта уведомлений.

  • Получите очередь общей памяти для буферов, перемещающихся из ядра в пространство пользователя.

    Объявление

    Objective C

    IOStreamBufferQueue *( *GetOutputQueue)( IOStreamRef stream );

    Параметры

    stream

    IOStreamRef потока для работы на.

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

    Указатель на общую память структура IOStreamBufferQueue для очереди вывода.

    Обсуждение

    При использовании функций уведомления Вы никогда не должны должны быть получать доступ к очередям непосредственно.

  • Установите функцию обратного вызова, которую вызовут, когда новый буфер будет доступен от ядра.

    Объявление

    Objective C

    IOReturn ( *SetOutputCallback)( IOStreamRef stream, IOStreamOutputCallback callback, void *context );

    Параметры

    stream

    IOStreamRef потока для работы на. Передайте NULL для удаления обратного вызова.

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

    Возвраты kIOReturnSuccess, если обратный вызов был успешно установлен или удален.

  • Получите следующий IOStreamBufferQueueEntry, доступный от очереди вывода.

    Объявление

    Objective C

    IOReturn ( *DequeueOutputEntry)( IOStreamRef stream, IOStreamBufferQueueEntry *entry );

    Параметры

    stream

    IOStreamRef потока для работы на.

    entry

    Указатель на структуру IOStreamBufferQueueEntry. Следующая доступная запись от очереди вывода будет скопирована в него.

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

    IOStreamBufferID следующего доступного буфера или kInvalidIOStreamBufferID, если никакой буфер не находится в очереди.

  • Отправьте буфер стороне ядра IOStream на входной очереди.

    Объявление

    Objective C

    IOReturn ( *EnqueueInputBuffer)( IOStreamRef stream, IOStreamBufferID bufferID, IOByteCount dataOffset, IOByteCount dataLength, IOByteCount controlOffset, IOByteCount controlLength );

    Параметры

    stream

    IOStreamRef потока для работы на.

    bufferID

    IOStreamBufferID буфера для размещения на очереди.

    dataLength

    Длина допустимых данных в буфере.

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

    Возвраты kIOReturnSuccess, если буфер был успешно помещен во входную очередь.

  • Объявление

    Objective C

    IOReturn ( *EnqueueInputEntry)( IOStreamRef stream, IOStreamBufferQueueEntry *entry);

  • Получает число буферов в потоке.

    Объявление

    Objective C

    IOItemCount ( *GetBufferCount)( IOStreamRef stream );

    Параметры

    stream

    IOStreamRef потока для работы на.

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

    Возвраты тогда число буферов в потоке.

  • Получает информацию о буфере в IOStream.

    Объявление

    Objective C

    IOReturn ( *GetBufferInfo)( IOStreamRef stream, IOStreamBufferID bufferID, void **dataBufferAddressOut, IOByteCount *dataBufferSizeOut, void **controlBufferAddressOut, IOByteCount *controlBufferSizeOut );

    Параметры

    stream

    IOStreamRef потока для работы на.

    bufferID
    dataBufferAddressOut
    dataBufferSizeOut
    controlBufferAddressOut
    controlBufferSizeOut

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

    Возвраты kIOReturnSuccess, если буферный ID был допустим.

  • Получите указатель на область управления IOStreamBuffer.

    Объявление

    Objective C

    void *( *GetControlBuffer)( IOStreamRef stream, IOStreamBufferID bufferID );

    Параметры

    stream

    IOStreamRef потока, владеющего буфером.

    bufferID

    IOStreamBufferID буфера для работы на.

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

    Указатель на буферную область управления IOStreamBuffer или NULL, если это не имеет буфера управления.

  • Получите длину области управления IOStreamBuffer.

    Объявление

    Objective C

    IOByteCount ( *GetControlBufferLength)( IOStreamRef stream, IOStreamBufferID bufferID );

    Параметры

    stream

    IOStreamRef потока, владеющего буфером.

    bufferID

    IOStreamBufferID буфера для работы на.

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

    Длина в байтах буфера управления, или 0, если нет никакого буфера управления.

  • Получите указатель на область данных IOStreamBuffer.

    Объявление

    Objective C

    void *( *GetDataBuffer)( IOStreamRef stream, IOStreamBufferID bufferID );

    Параметры

    stream

    IOStreamRef потока, владеющего буфером.

    bufferID

    IOStreamBufferID буфера для работы на.

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

    Указатель на область буфера данных IOStreamBuffer или NULL, если это не имеет буфера данных.

  • Получите длину области данных IOStreamBuffer.

    Объявление

    Objective C

    IOByteCount ( *GetDataBufferLength)( IOStreamRef stream, IOStreamBufferID bufferID );

    Параметры

    stream

    IOStreamRef потока, владеющего буфером.

    bufferID

    IOStreamBufferID буфера для работы на.

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

    Длина в байтах буфера данных, или 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 struct IOStreamInterface_v1_t ** IOStreamRef;

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

    Objective C

    @import IOKit;

    Доступность

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