IONetworkInterface
Абстрактный класс, управляющий соединением между IONetworkController и уровнем интерфейса канала передачи данных.
Объект IONetworkInterface управляет соединением между IONetworkController и уровнем интерфейса канала передачи данных (DLIL). Все взаимодействия между контроллером и DLIL должны пройти через интерфейсный объект. Любые структуры данных, требующиеся DLIL для определенного интерфейсного типа, должны быть выделены и mantained интерфейсным объектом. IONetworkInterface является абстрактным классом, который должен быть расширен конкретным подклассом для специализации для определенного типа сети.
Несмотря на то, что большинство драйверов выделит единственный интерфейсный объект, для многократных интерфейсов возможно быть присоединенным к единственному контроллеру. Этот драйвер контроллера будет ответственен за решение в арбитражном порядке доступа среди его многократных интерфейсных клиентов.
IONetworkInterface также поддерживает словарь объектов IONetworkData, содержащих структуры статистики. Драйверы контроллера могут попросить определенный объект данных по имени и обновить счетчики статистики в непосредственно. Этот словарь добавляется к таблице свойства интерфейса и видим за пределами ядра.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.6 и позже.
-
Добавляет
IONetworkData
возразите против интерфейса.Объявление
C++
virtual bool addNetworkData( IONetworkData *
aData
);Параметры
aData
IONetworkData
объект.Возвращаемое значение
Если объект был добавлен, ложь иначе, возвращает true.
Обсуждение
IONetworkData
объект добавляется к набору с помощью ключа отIONetworkData::getKey()
-
Присоедините сетевой интерфейс к канальному уровню BSD.
Объявление
C++
virtual IOReturn attachToDataLinkLayer( IOOptionBits
options
, void *parameter
);Параметры
options
Опции для вызова присоединения. Ни один в настоящее время не определяется.
parameter
Параметр для вызова присоединения. Не в настоящее время используемый.
Возвращаемое значение
Возвраты
kIOReturnSuccess
на успехе.Обсуждение
Этот метод вызывают внутренне для присоединения сетевого интерфейса к канальному уровню BSD, после того, как было присвоено число модуля. Контекст вызова не синхронизируется против водительского цикла работы. Подклассы могут переопределить этот метод для выполнения дополнительной установки перед присоединением сетевого стека.
getIfnet()
метод возвратит присоединяемый интерфейс BSD. -
Отбрасывания все пакеты во входной очереди.
Объявление
C++
virtual UInt32 clearInputQueue(
void
);Возвращаемое значение
Возвращает число освобожденных пакетов.
Обсуждение
Этот метод удаляет все пакеты из входной очереди и выпускает их назад к свободному пулу mbuf. Для драйвера необычно вызвать этот метод.
-
Обрабатывает уведомление, что сетевой контроллер, обслуживающий этот интерфейсный объект, перешел к новому состоянию электропитания.
Объявление
C++
virtual IOReturn controllerDidChangePowerState( IONetworkController *
controller
, IOPMPowerFlagsflags
, UInt32stateNumber
, IOService *policyMaker
);Параметры
controller
Объект сетевого контроллера.
flags
Флаги, описывающие возможность контроллера в новом состоянии электропитания.
stateNumber
Индекс к состоянию в массиве состояния электропитания сетевого контроллера, на который переключился контроллер.
policyMaker
Ссылка на влиятельного политика сетевого контроллера, и является также инициатором этого уведомления.
Возвращаемое значение
Возвращаемое значение всегда
kIOReturnSuccess
. -
Отправляет уведомление, что интерфейс открыл сетевой контроллер.
Объявление
C++
virtual bool controllerDidOpen( IONetworkController *
controller
);Параметры
controller
Открытый контроллер.
Возвращаемое значение
Должен возвратить true для handleOpen () для принятия открытого клиента. Если возврат будет ложью, то контроллер будет закрыт, и открытый клиент перестанет работать.
Обсуждение
Этим методом вызывают
handleOpen()
уведомлять подклассы, что был открыт контроллер. Когда интерфейс получает начальный открытый запрос от клиента, открытое на контроллере происходит. Подклассы могут переопределить этот метод и проверить контроллер прежде, чем позволить открытому клиенту. Этот метод вызывают с арбитражной сохраненной блокировкой, следовательно выходящего I/O к контроллеру нужно избежать для устранения возможности мертвой блокировки. -
Обрабатывает уведомление, что сетевой контроллер, обслуживающий этот интерфейсный объект, перейдет к новому состоянию электропитания.
Объявление
C++
virtual IOReturn controllerWillChangePowerState( IONetworkController *
controller
, IOPMPowerFlagsflags
, UInt32stateNumber
, IOService *policyMaker
);Параметры
controller
Объект сетевого контроллера.
flags
Флаги, описывающие возможность контроллера в новом состоянии электропитания.
stateNumber
Индекс к состоянию в массиве состояния электропитания сетевого контроллера, на который переключается контроллер.
policyMaker
Ссылка на влиятельного политика сетевого контроллера, и является также инициатором этого уведомления.
Возвращаемое значение
Возвращаемое значение всегда
kIOReturnSuccess
. -
Отправляет уведомление, что интерфейс закроет сетевой контроллер.
Объявление
C++
virtual void controllerWillClose( IONetworkController *
controller
);Параметры
controller
Контроллер, собирающийся быть закрытым.
Обсуждение
Этим методом вызывают
handleClose()
после получения завершения от последнего интерфейсного клиента, и непосредственно перед тем, как закрывается контроллер. Подклассы могут переопределить этот метод для выполнения любого действия очистки, прежде чем будет закрыт контроллер. Этот метод вызывают с арбитражной сохраненной блокировкой, следовательно выходящего I/O к контроллеру нужно избежать для устранения возможности мертвой блокировки. -
Говорит
IONetworkData
то, что этот интерфейс будет использоваться отладчиком.Объявление
C++
void debuggerRegistered(
void
); -
Отсоедините сетевой интерфейс от канального уровня BSD.
Объявление
C++
virtual void detachFromDataLinkLayer( IOOptionBits
options
, void *parameter
);Параметры
options
Опции для вызова отсоединения. Ни один в настоящее время не определяется.
parameter
Параметр для вызова отсоединения. Не в настоящее время используемый.
Обсуждение
Этот метод вызывают внутренне для отсоединения сетевого интерфейса от канального уровня BSD, после того, как интерфейс был завершен и перед последним клиентом близко. Этот метод блокирует, пока работа отсоединения не завершена. Контекст вызова не синхронизируется против водительского цикла работы. Подклассы могут переопределить этот метод для выполнения дополнительной очистки прежде или после отсоединения от сетевого стека.
getIfnet()
метод возвратит NULL после отсоединения. -
Подайте полученные пакеты к BPF
Объявление
C++
virtual void feedPacketInputTap(
mbuf_t
);Параметры
mbuf_t
Указатель на входящий пакет.
Обсуждение
Эта функция вызвана внутренне для отправки входящих пакетов во входное касание BPF, когда это включено. Подклассы, как ожидают, не переопределят этот метод.
-
Подайте исходящие пакеты к BPF
Объявление
C++
virtual void feedPacketOutputTap(
mbuf_t
);Параметры
mbuf_t
Указатель на исходящий пакет.
Обсуждение
Эта функция вызвана внутренне для отправки исходящих пакетов в касание вывода BPF, когда это включено. Подклассы, как ожидают, не переопределят этот метод.
-
Представьте все пакеты, сохраненные во входной очереди к сетевому стеку.
Объявление
C++
virtual UInt32 flushInputQueue(
void
);Возвращаемое значение
Возвращает число пакетов, представленных сетевому стеку. Если очередь была пуста, возвраты обнуляют.
Обсуждение
Позвольте драйверам удалять все пакеты из входной очереди и представлять им сетевому стеку. Этот метод должен использоваться совместно с
inputPacket()
метод, для сбрасывания входной очереди после организации очередей много полученных пакетов. -
Освобождает
IONetworkInterface
объект.Объявление
C++
virtual void free(
void
);Обсуждение
Ресурс, выделенный init (), выпущен, и clearInputQueue () вызывают, чтобы гарантировать, что входная очередь пуста. Интерфейс должен был уже отсоединиться от сетевого стека.
-
Добирается
IONetworkController
возразите, что создал этот интерфейс.Объявление
C++
virtual IONetworkController * getController(
void
) const;Возвращаемое значение
Возвращает родителя
IONetworkController
объект.Обсуждение
Объект контроллера передал init (), будет сохранен, пока интерфейс не закрывает контроллер. Подклассы могут безопасно вызвать этот метод, прежде чем будет закрыт контроллер.
-
Получает текущий интерфейс eflags.
Объявление
C++
virtual UInt32 getExtraFlags(
void
) const;Возвращаемое значение
Возвращает значение интерфейса eflags.
Обсуждение
Это вызовы метода
ifnet_eflags
и возвращает текущий интерфейс eflags. -
Получает текущие интерфейсные флаги.
Объявление
C++
virtual UInt16 getFlags(
void
) const;Возвращаемое значение
Возвращает интерфейсные флаги.
Обсуждение
Это вызовы метода
ifnet_flags
и возвращает текущие интерфейсные флаги. -
Возвраты
ifnet_t
выделенный интерфейсным объектом.Объявление
C++
virtual ifnet_t getIfnet(
void
) const;Возвращаемое значение
Возвраты
ifnet_t
после того, как интерфейс присоединил к сетевому стеку и прежде чем интерфейс будет отсоединен, иначе NULL возвратов.Обсуждение
Получает интерфейс
ifnet_t
, которым управляют прежде всегоIONetworkInterface
, однако, подклассы или драйверы могут использовать этот метод для получения ссылки наifnet_t
для вызовов интерфейса KPI. -
Сообщает текущее состояние интерфейсного объекта.
Объявление
C++
virtual UInt32 getInterfaceState(
void
) const;Возвращаемое значение
Возвращает текущие интерфейсные флаги состояния.
-
Получает интерфейсный тип.
Объявление
C++
virtual UInt8 getInterfaceType(
void
) const;Возвращаемое значение
Возвращает константу, определенную в
bsd/net/if_types.h
это описывает интерфейсный тип.Обсуждение
Этот метод возвращает интерфейсный тип, ранее установленный
setInterfaceType
. -
Получает максимальный блок передачи для этого интерфейса.
Объявление
C++
virtual UInt32 getMaxTransferUnit(
void
) const;Возвращаемое значение
Возвращает размер интерфейса MTU в байтах.
Обсуждение
Это вызовы метода
ifnet_mtu
и возвращает максимальный блок передачи. -
Получает размер носителей (уровень MAC) адрес.
Объявление
C++
virtual UInt8 getMediaAddressLength(
void
) const;Возвращаемое значение
Возвращает размер адреса носителей в байтах.
Обсуждение
Это вызовы метода
ifnet_addrlen
и возвращается, носители адресуют длину. -
Получает размер заголовка носителя.
Объявление
C++
virtual UInt8 getMediaHeaderLength(
void
) const;Возвращаемое значение
Возвращает размер заголовка носителя в байтах.
Обсуждение
Это вызовы метода
ifnet_hdrlen
и возвращает длину заголовка носителя. -
Возвращает префикс имени BSD как струну до.
Объявление
C++
virtual const char * getNamePrefix() const = 0;
Возвращаемое значение
Возвращает указатель на постоянную струну до.
Обсуждение
Имя BSD для каждого интерфейсного объекта сгенерировано путем конкатенации строки, возвращенной этим методом, вместе с числом модуля, присвоенным
IONetworkStack
. Конкретный интерфейсный подкласс должен реализовать этот метод и возвратить отличный префикс имени для его экземпляров. -
Добирается
IONetworkData
объект от интерфейса.Объявление
C++
virtual IONetworkData * getNetworkData( const char *
aKey
) const;Параметры
aKey
Струна до, идентифицирующая объект.
Возвращаемое значение
Возвращает ссылку на соответствие
IONetworkData
объект или NULL, если не было найдено никакое соответствие.Обсуждение
Возвращает ссылку на
IONetworkData
объект, ранее добавленный к интерфейсу и связанный с предоставленным ключом. -
Добирается
IONetworkData
объект от интерфейса.Объявление
C++
virtual IONetworkData * getNetworkData( const OSSymbol *
aKey
) const;Параметры
aKey
OSSymbol идентификация объекта.
Возвращаемое значение
Возвращает ссылку на соответствие
IONetworkData
объект или NULL, если не было найдено никакое соответствие.Обсуждение
Возвращает ссылку на
IONetworkData
объект, ранее добавленный к интерфейсу и связанный с предоставленным ключом. -
Присвоили число модуля этому интерфейсному объекту.
Объявление
C++
virtual UInt16 getUnitNumber(
void
) const;Возвращаемое значение
Возвращает присвоенное число интерфейсного модуля.
Обсуждение
Это вызовы метода
ifnet_unit
и возвращает число модуля, присвоенноеIONetworkStack
. -
Обрабатывает клиент близко в интерфейсе.
Объявление
C++
virtual void handleClientClose( IOService *
client
, IOOptionBitsoptions
);Параметры
client
Объект клиента, запрашивающий завершение.
options
Опции те же опции передали
handleClose()
.Обсуждение
Этим методом вызывают
handleClose()
позволить подклассу обрабатывать клиент близко. Арбитражная блокировка сохранена. -
Обрабатывает клиент, открытый в интерфейсе.
Объявление
C++
virtual bool handleClientOpen( IOService *
client
, IOOptionBitsoptions
, void *argument
);Параметры
client
Объект клиента, запрашивающий открытое.
options
Опции передали
handleOpen()
.argument
Параметр передал
handleOpen()
.Возвращаемое значение
Возвращает true, чтобы принять, что клиент, открытый, ложный, отклоняет открытое.
Обсуждение
Этим методом вызывают
handleOpen()
позволить подклассу обрабатывать клиент близко. Арбитражная блокировка сохранена. -
Инициализирует
IONetworkInterface
объект.Объявление
C++
virtual bool init( IONetworkController *
controller
);Параметры
controller
Объект сетевого контроллера, который обслужит интерфейс.
Возвращаемое значение
Возвращает true на успехе, ложь иначе.
Обсуждение
Ресурсы выделены, но
ifnet_t
не будет выделен, пока интерфейс не присваивается имя BSD и присоединяется к сетевому стеку. -
Позволяет подклассу обеспечивать ifnet параметры инициализации, определенные для интерфейсного типа.
Объявление
C++
virtual bool initIfnetParams( struct ifnet_init_params *
params
);Параметры
params
Указатель на
ifnet_init_params
выделенный вызывающей стороной.Возвращаемое значение
Возвраты
true
на успехе,false
иначе.Обсуждение
Этот метод инициализирует параметры, которые характерны для всех сетевых интерфейсов. Интерфейсный подкласс, как ожидают, переопределит этот метод, вызовет реализацию суперкласса сначала, затем инициализирует параметры, определенные для того интерфейсного типа. Этот метод вызывают после того, как число модуля было присвоено интерфейсу, и непосредственно перед тем, как интерфейс присоединен к BSD.
-
Отправляет событие в сетевой стек.
Объявление
C++
virtual bool inputEvent( UInt32
type
, void *data
);Параметры
type
Постоянное описание типа события.
data
Дополнительные данные связались с событием.
Возвращаемое значение
Возвращает true, если событие было поставлено, ложь, если указанный тип события недопустим, или если поставка события перестала работать.
Обсуждение
Этот метод может использоваться драйвером для отправки события в сетевой стек.
-
Для драйверов для представления полученного пакета сетевому стеку.
Объявление
C++
virtual UInt32 inputPacket( mbuf_t
packet
, UInt32 length = 0, IOOptionBits options = 0, void *param = 0 );Параметры
mbuf_t
mbuf, содержащий полученный пакет.
length
Укажите размер полученного пакета в mbuf. mbuf поля длины обновляются с этим значением. Если нуль, то mbuf поля длины не обновляются.
options
Передача
kInputOptionQueuePacket
ставить в очередь входящий пакет. Нуль передачи, чтобы обойти входную очередь, и сразу представить пакет сетевому стеку.param
Параметр, предоставленный драйвером. Не используемый.
Возвращаемое значение
Возвращает число пакетов, представленных сетевому стеку или нулю, если пакет ставился в очередь.
Обсуждение
Пакет, предоставленный для этого метода, может быть добавлен к входной очереди, которой управляет интерфейсный объект, который драйвер может использовать для отсрочки пакета handoff до сетевого стека, пока все полученные пакеты не были добавлены к входной очереди. Последующий вызов к
flushInputQueue()
, передаст все содержание входной очереди к сетевому стеку. Эта входная очередь не защищена блокировкой. Драйверы, эффективно использующие эту входную очередь, должны или получить доступ к очереди от единственного потока или осуществить сериализированный доступ. -
Запросы, является ли интерфейс первичным сетевым интерфейсом в системе.
Объявление
C++
virtual bool isPrimaryInterface(
void
) const;Возвращаемое значение
Если интерфейс является основным интерфейсом, ложь иначе, возвращает true.
Обсуждение
Определение основного интерфейса и его открытия является определенной платформой.
-
Запросы, если интерфейс присоединил к сетевому стеку BSD.
Объявление
C++
virtual bool isRegistered(
void
) const;Возвращаемое значение
Если интерфейс регистрируется и присоединяется к сетевому стеку, ложь иначе, возвращает true.
Обсуждение
После того, как присоединенный a
kIOBSDNameKey
свойство добавляется к интерфейсному объекту с присвоенным именем BSD. -
Получает рекурсивную блокировку, принадлежавшую интерфейсу.
Объявление
C++
virtual void lock(
void
);Обсуждение
Рекурсивная блокировка выделяется и инициализируется в
init()
. Эта блокировка иначе не используетсяIONetworkInterface
класс. Этот вызов метода получает блокировку и должен быть сбалансирован сunlock()
. -
Обрабатывает ioctl команду, отправленную в сетевой интерфейс.
Объявление
C++
virtual SInt32 performCommand( IONetworkController *
controller
, unsigned longcmd
, void *arg0
, void *arg1
);Параметры
controller
Объект контроллера.
cmd
ioctl код команды.
arg0
Аргумент команды 0. Обычно указатель на ifnet структуру связывался с интерфейсом.
arg1
Аргумент команды 1.
Возвращаемое значение
Возвращает возвращаемое значение BSD, определенное в
bsd/sys/errno.h
.Обсуждение
Этот метод дескрипторы снабжает сокетом ioctl команды, отправленные в сетевой интерфейс от DLIL. IONetworkInterface обрабатывает команды, которые характерны для всех типов сетевого интерфейса. Подкласс IONetworkInterface может переопределить этот метод, чтобы переопределить обработку команды в IONetworkInterface или расширить обработку команды для обработки дополнительных команд. ioctl команды, обработанные IONetworkInterface,
SIOCGIFMTU
(Получите размер интерфейса MTU),SIOCSIFMTU
(Размер интерфейса MTU набора),SIOCSIFMEDIA
(Носители набора), иSIOCGIFMEDIA
(Получите носители и состояние канала). -
Обрабатывает уведомление интереса питания постизменения от сетевого контроллера.
Объявление
C++
virtual IOReturn powerStateDidChangeTo( IOPMPowerFlags
flags
, unsigned longstateNumber
, IOService *policyMaker
);Параметры
flags
Флаги, описывающие возможность контроллера в новом состоянии электропитания.
stateNumber
Индекс к состоянию в массиве состояния электропитания сетевого контроллера, на который переключился контроллер.
policyMaker
Ссылка на влиятельного политика сетевого контроллера, и является также инициатором этого уведомления.
Возвращаемое значение
Возвраты
IOPMAckImplied
указать синхронное завершение.Обсуждение
controllerDidChangePowerState()
метод вызывает этот обработчик. Подклассы, как ожидают, не переопределят этот метод. -
Обрабатывает уведомление интереса питания перед изменением от сетевого контроллера.
Объявление
C++
virtual IOReturn powerStateWillChangeTo( IOPMPowerFlags
flags
, unsigned longstateNumber
, IOService *policyMaker
);Параметры
flags
Флаги, описывающие возможность контроллера в новом состоянии электропитания.
stateNumber
Индекс к состоянию в массиве состояния электропитания сетевого контроллера, на который переключается контроллер.
policyMaker
Ссылка на влиятельного политика сетевого контроллера, и является также инициатором этого уведомления.
Возвращаемое значение
Возвраты
IOPMAckImplied
указать синхронное завершение.Обсуждение
controllerWillChangePowerState()
метод вызывает этот обработчик. Подклассы, как ожидают, не переопределят этот метод. -
Регистрирует цель/действие для обработки исходящих пакетов.
Объявление
C++
virtual bool registerOutputHandler( OSObject *
target
, IOOutputActionaction
);Параметры
target
Возразите, что реализует выходной обработчик.
action
Функция, которая обработает исходящие пакеты.
Возвращаемое значение
Если предоставленная цель/действие была принята, ложь иначе, возвращает true.
Обсуждение
Интерфейсный объект передаст все исходящие пакеты, отправленные от сетевого стека до цели, и действие зарегистрировало использование этого метода. Регистрация должна произойти, прежде чем интерфейс зарегистрирован и открыт
IONetworkStack
, иначе обработчик по умолчанию будет использоваться. Цель по умолчанию и действие установленыinit()
как контроллер и обработчик, возвращенный контроллеромgetOutputHandler()
метод. -
Удаляет
IONetworkData
объект от интерфейса.Объявление
C++
virtual bool removeNetworkData( const char *
aKey
);Параметры
aKey
Струна до, идентифицирующая объект, который будет удален.
Возвращаемое значение
Если объект был найден и удален, ложь иначе, возвращает true.
Обсуждение
Этот метод удаляет
IONetworkData
объект от набора, которым управляет интерфейс. Удаленный объект выпущен. -
Удаляет
IONetworkData
объект от интерфейса.Объявление
C++
virtual bool removeNetworkData( const OSSymbol *
aKey
);Параметры
aKey
OSSymbol идентификация объекта, который будет удален.
Возвращаемое значение
Если объект был найден и удален, ложь иначе, возвращает true.
Обсуждение
Этот метод удаляет
IONetworkData
объект от набора, которым управляет интерфейс. Удаленный объект выпущен. -
Выполняет работу «чтение, изменяют запись» на текущем интерфейсном значении флагов.
Объявление
C++
virtual bool setFlags( UInt16
flags
, UInt16 clear = 0 );Параметры
flags
Биты, которые должны быть установлены.
clear
Биты, которые должны быть очищены. если нуль, OR'ing исходное значение флагов с новыми флагами, то не флагов очищены и результат формируется
Возвращаемое значение
Всегда возвращает true.
Обсуждение
Вызовы
ifnet_set_flags
если интерфейс присоединен к сетевому стеку и обновляетkIOInterfaceFlags
свойство с помощью предоставленного значения. Посмотритеbsd/net/if.h
заголовочный файл для констант флага. -
Обновляет интерфейсные объектные флаги состояния.
Объявление
C++
virtual UInt32 setInterfaceState( UInt32
set
, UInt32 clear = 0 );Параметры
set
Флаги, которые должны быть установлены.
clear
Флаги, которые должны быть очищены.
Возвращаемое значение
Возвращает новые интерфейсные флаги состояния.
Обсуждение
Флаги отражают текущее состояние интерфейса, и также публикуется через
kIOInterfaceState
свойство. -
Устанавливает интерфейсный тип.
Объявление
C++
virtual bool setInterfaceType( UInt8
type
);Параметры
type
Константа, определенная в
bsd/net/if_types.h
это описывает интерфейсный тип.Возвращаемое значение
Возвращает true для указания успеха, если интерфейс еще не присоединил к сетевому стеку, иначе возвращает false.
Обсуждение
Устанавливает интерфейсный тип, прежде чем интерфейс будет присоединен к сетевому стеку. Посмотрите
bsd/net/if_types.h
для определенных типов.kIOInterfaceType
также обновляется с помощью предоставленного типа. -
Устанавливает максимальный блок передачи для этого интерфейса.
Объявление
C++
virtual bool setMaxTransferUnit( UInt32
mtu
);Параметры
mtu
Размер интерфейса MTU в байтах.
Возвращаемое значение
Всегда возвращает true.
Обсуждение
Вызовы
ifnet_set_mtu
если интерфейс присоединен к сетевому стеку и обновляетkIOMaxTransferUnit
свойство с помощью предоставленного значения. -
Устанавливает размер носителей (уровень MAC) адрес.
Объявление
C++
virtual bool setMediaAddressLength( UInt8
length
);Параметры
length
Размер носителей адресуется в байтах.
Возвращаемое значение
Всегда возвращает true.
Обсуждение
Вызовы
ifnet_set_addrlen
если интерфейс присоединен к сетевому стеку и обновляетkIOMediaAddressLength
свойство с помощью предоставленного значения. -
Устанавливает размер заголовка носителя.
Объявление
C++
virtual bool setMediaHeaderLength( UInt8
length
);Параметры
length
Размер заголовка носителя в байтах.
Возвращаемое значение
Всегда возвращает true.
Обсуждение
Вызовы
ifnet_set_hdrlen
если интерфейс присоединен к сетевому стеку и обновляетkIOMediaHeaderLength
свойство с помощью предоставленного значения. -
Присваивает уникальное число модуля этому интерфейсу.
Объявление
C++
virtual bool setUnitNumber( UInt16
unit
);Параметры
unit
Число модуля присвоилось к этому интерфейсному объекту.
Возвращаемое значение
Возвращает true для указания успеха, если интерфейс еще не присоединил к сетевому стеку, иначе возвращает false.
Обсуждение
Этот метод вызывают внутренне, прежде чем интерфейс присоединен к сетевому стеку, для присвоения уникального числа модуля интерфейсному объекту.
kIOInterfaceUnit
свойство также обновляется с помощью предоставленного значения. -
Выпускает рекурсивную блокировку, принадлежавшую интерфейсу.
Объявление
C++
virtual void unlock(
void
);Обсуждение
Рекурсивная блокировка выделяется и инициализируется в
init()
. Эта блокировка иначе не используетсяIONetworkInterface
класс. Этот вызов метода выпускает блокировку для балансирования предшествующегоlock()
.