Функция NdisCmOpenAddressFamilyComplete (ndis.h)
NdisCmOpenAddressFamilyComplete возвращает окончательное состояние открытия автономного диспетчера вызовов для конкретного клиента после того, как диспетчер вызовов вернул NDIS_STATUS_PENDING в ответ на исходный запрос open-AF этого клиента.
Синтаксис
void NdisCmOpenAddressFamilyComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE NdisAfHandle,
[in] NDIS_HANDLE CallMgrAfContext
);
Параметры
[in] Status
Указывает окончательное состояние операции open-AF либо NDIS_STATUS_SUCCESS, либо любую ошибку, определяемую CM, NDIS_STATUS_ XXX за исключением NDIS_STATUS_PENDING.
[in] NdisAfHandle
Указывает дескриптор, предоставленный NDIS, который входил в функцию диспетчера вызовов ProtocolCmOpenAf, которая возвращала NDIS_STATUS_PENDING.
[in] CallMgrAfContext
Указывает дескриптор для выделенной абонентом области контекста резидента, в которой диспетчер вызовов сохраняет состояние о открытом семействе адресов этого клиента, включая NdisAfHandle, если открытый объект выполнен успешно. Если состояние не NDIS_STATUS_SUCCESS, NDIS игнорирует этот параметр.
Возвращаемое значение
Никакой
Замечания
Автономный диспетчер вызовов должен вызывать NdisCmOpenAddressFamilyComplete, если ее функция ProtocolCmOpenAf ранее возвращалась NDIS_STATUS_PENDING для заданного NdisAfHandle. Клиент, инициирующий операцию open-AF с помощью вызова NdisClOpenAddressFamilyEx, не может выполнять дальнейшие операции с привязкой, ориентированной на подключение, пока не NdisCmOpenAddressFamilyComplete вызывает вызов этого клиента. функция ProtocolClOpenAfCompleteEx.
Если вызывающий объект NdisCmOpenAddressFamilyComplete задает состояние значение NDIS_STATUS_SUCCESS, NDIS впоследствии передает указанные CallMgrAfContext в качестве входного параметра всем предоставленным протоколом CMCmXxx и ProtocolCoXxx функциям, которые касаются открытия клиентом семейства адресов, пока клиент не закрывает AF. Диспетчер вызовов должен освободить или повторно использовать любую область контекста AF, выделенную перед тем, как она передает состояние сбоя NdisCmOpenAddressFamilyComplete.
Для успешного открытия предоставленный NDIS NdisAfHandle представляет связь между диспетчером вызовов и клиентом для открытого AF на определенном минипорт-драйвере, к которому привязан диспетчер вызовов и клиент. Оба драйвера протокола должны рассматривать NdisAfHandle как непрозрачную переменную, которую необходимо передать, немодифицированной и непреднамереленной, в последующих вызовах функций NdisCl/Cm/CoXxxx, для которых этот дескриптор является обязательным параметром. При сбое открытия диспетчер вызовов должен учитывать недопустимый NdisAfHandle, если NdisMCmOpenAddressFamilyComplete возвращает элемент управления.
Только автономные диспетчеры вызовов, которые регистрируют себя в качестве драйверов протокола NDIS, могут вызывать NdisCmOpenAddressFamilyComplete. Драйверы минипорта, ориентированные на подключение, обеспечивающие встроенную поддержку управления звонками, должны вызываться NdisMCmOpenAddressFamilyComplete.