OID_GEN_NETWORK_LAYER_ADDRESSES
Как набор, OID_GEN_NETWORK_LAYER_ADDRESSES OID уведомляет базовый драйвер miniport и другие многоуровневые драйверы о списке адресов сетевого уровня, связанных с привязанными экземплярами.
Сведения о версии
Windows Vista и более поздние версии Windows
Поддерживается.
Драйверы NDIS 6.0 и более поздних версий miniport
Необязательный элемент.
Драйверы минипорта NDIS 5.1
Необязательный элемент.
Драйверы минипорта NDIS 5.1
Необязательный элемент.
Комментарии
Привязанный экземпляр — это привязка между вызывающим транспортом и драйвером, настроенным вызовом NdisOpenAdapterEx. Транспорты используют TRANSPORT_ADDRESS и TA_ADDRESS структуры для уведомления базовых драйверов мини-портов и других многоуровневых драйверов о списке адресов сетевого уровня. Драйверы miniport и другие многоуровневые драйверы используют совместимые NETWORK_ADDRESS_LIST и NETWORK_ADDRESS структуры, определенные следующим образом, чтобы задать список адресов сетевого уровня в связанном интерфейсе.
typedef struct _NETWORK_ADDRESS_LIST {
LONG AddressCount;
USHORT AddressType;
NETWORK_ADDRESS Address[1];
} NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST;
Элементы этой структуры содержат следующие сведения:
AddressCount
Указывает количество адресов сетевого уровня, перечисленных в массиве в элементе Address .
AddressType
Указывает тип протокола, который отправляет этот OID. Этот элемент действителен только в том случае, если для элемента AddressCount задано значение 0. Элемент AddressCount имеет значение 0, чтобы уведомить драйвер мини-порта или другой многоуровневый драйвер о очистке списка адресов сетевого уровня в связанном интерфейсе. Протокол может иметь одно из следующих значений:
NDIS_PROTOCOL_ID_DEFAULT
Протокол по умолчанию
NDIS_PROTOCOL_ID_TCP_IP
Протокол TCP/IP
NDIS_PROTOCOL_ID_IPX
Протокол NETWare IPX
NDIS_PROTOCOL_ID_NBF
Протокол NetBIOS
Адрес
Массив адресов сетевого уровня типа NETWORK_ADDRESS. Элемент AddressCount указывает количество элементов в этом массиве.
typedef struct _NETWORK_ADDRESS {
USHORT AddressLength;
USHORT AddressType;
UCHAR Address[1];
} NETWORK_ADDRESS, *PNETWORK_ADDRESS;
Элементы этой структуры содержат следующие сведения:
AddressLength
Указывает размер этого адреса сетевого уровня в байтах. Элемент Address содержит массив байтов, указывающих этот адрес.
AddressType
Указывает тип протокола, который отправляет этот OID и адрес сетевого уровня. Этот элемент действителен, только если для элемента AddressCount в структуре NETWORK_ADDRESS_LIST задано ненулевое значение. Элемент AddressCount в NETWORK_ADDRESS_LIST имеет ненулевое значение, чтобы уведомить драйвер мини-порта или другой многоуровневый драйвер об изменении списка адресов сетевого уровня в привязанном интерфейсе. Типы протоколов определены в предыдущем списке.
Адрес
Массив байтов, указывающих этот адрес сетевого уровня. Элемент AddressLength указывает количество байтов в этом массиве.
Транспорт может вызывать функцию NdisOidRequest и передавать NDIS_OID_REQUEST структуру, заполненную OID_GEN_NETWORK_LAYER_ADDRESSES кодом. Этот вызов уведомляет привязанный экземпляр об изменении адресов, связанных с этим экземпляром. В этом вызове транспорт также передает привязанный экземпляр в параметре NdisBindingHandle . Привязанный экземпляр — это привязка, настроенная между транспортом и базовым драйвером мини-порта или другим многоуровневым драйвером. Для этого вызова транспорт должен заполнить элемент InformationBuffer NDIS_OID_REQUEST указателем на структуру TRANSPORT_ADDRESS. TRANSPORT_ADDRESS соответствует структуре NETWORK_ADDRESS_LIST и должна содержать список адресов сетевого уровня.
Предположим, что транспорт проходит адреса через промежуточный драйвер вплоть до базового драйвера мини-порта. Если промежуточный драйвер также требует адреса, он должен принять их к сведению, прежде чем передавать их базовому драйверу мини-порта. Базовый драйвер минипорта, особенно старый драйвер, может возвращать значение состояния NDIS_STATUS_NOT_SUPPORTED или NDIS_STATUS_SUCCESS. Базовый драйвер мини-порта распространяет состояние операции на транспорт. Если промежуточный драйвер должен продолжать получать уведомления об адресе и при необходимости, промежуточный драйвер должен изменить состояние на NDIS_STATUS_SUCCESS. В противном случае транспорт может интерпретировать NDIS_STATUS_NOT_SUPPORTED как признак того, что базовый драйвер минипорта не требует дополнительных обновлений адреса проблемы транспорта. Если NDIS_STATUS_SUCCESS возвращается, транспорты обязаны продолжать уведомлять базовых водителей о любых изменениях в связанных адресах, включая добавление и удаление адресов.
Протокол может задать для элемента AddressCount TRANSPORT_ADDRESS значение 0, чтобы уведомить драйвер мини-порта или другой многоуровневый драйвер о очистке списка адресов сетевого уровня в связанном интерфейсе. Если параметр AddressCount равен нулю, элемент AddressType в NETWORK_ADDRESS_LIST является допустимым, а элементы AddressType в NETWORK_ADDRESS структурах недопустимы. С другой стороны, протокол может задать для AddressCount ненулевое значение, чтобы уведомить драйвер мини-порта или другой многоуровневый драйвер об изменении списка адресов сетевого уровня в связанном интерфейсе. В этом случае элемент AddressType в NETWORK_ADDRESS_LIST является недопустимым, а элементы AddressType в NETWORK_ADDRESS структурах являются допустимыми.
Требования
Заголовок |
Ntddndis.h (включая Ndis.h) |