функция обратного вызова PROTOCOL_CM_DEREGISTER_SAP (ndis.h)

Требуется функция ProtocolCmDeregisterSap . Эта функция вызывается NDIS для запроса отмены диспетчером вызовов регистрации SAP от имени клиента, ориентированного на подключение.

Примечание Функцию необходимо объявить с помощью типа PROTOCOL_CM_DEREGISTER_SAP . Дополнительные сведения см. в следующем разделе Примеры.
 

Синтаксис

PROTOCOL_CM_DEREGISTER_SAP ProtocolCmDeregisterSap;

NDIS_STATUS ProtocolCmDeregisterSap(
  [in] NDIS_HANDLE CallMgrSapContext
)
{...}

Параметры

[in] CallMgrSapContext

Указывает дескриптор области контекста, выделенной диспетчером вызовов, в которой диспетчер вызовов хранит сведения о состоянии SAP. Диспетчер вызовов предоставил этот дескриптор в NDIS из своей Функция ProtocolCmRegisterSap .

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

ProtocolCmDeregisterSap возвращает состояние своих операций как одно из следующих:

Код возврата Описание
NDIS_STATUS_SUCCESS
Указывает, что диспетчер вызовов успешно удалил регистрацию SAP и освободил все ресурсы, выделенные для обслуживания данных SAP.
NDIS_STATUS_PENDING
Указывает, что диспетчер вызовов выполнит запрос на отмену регистрации SAP асинхронно. Диспетчер вызовов должен вызвать NdisCmDeregisterSapComplete , чтобы сообщить NDIS о завершении операции.

Комментарии

ProtocolCmDeregisterSap при необходимости взаимодействует с устройствами управления сетью или другими агентами, зависящими от носителя, чтобы отменить регистрацию SAP в сети. Такие действия могут включать, помимо прочего, следующие:

  • Взаимодействие с коммутационным оборудованием
  • Взаимодействие со станцией управления сетью
  • Взаимодействие с другими сетевыми агентами, зависящими от носителя
Если диспетчер вызовов требуется для взаимодействия с сетевыми агентами управления, такими как сетевой коммутатор, он должен использовать виртуальное подключение к агенту управления сетью, установленное в функции ProtocolBindAdapterEx . Автономные диспетчеры звонков взаимодействуют через базовый драйвер минипорта, вызывая NdisCoSendNetBufferLists. Драйверы минипорта, обеспечивающие встроенную поддержку управления звонками, никогда не вызывают NdisCoSendNetBufferLists. Вместо этого они передают данные непосредственно по сети.

Кроме того, ProtocolCmDeregisterSap должен освободить все динамически выделенные ресурсы в своей области SAP, предоставленной в CallMgrSapContext, а также освободить саму область состояния перед возвратом управления в NDIS.

Примеры

Чтобы определить функцию ProtocolCmDeregisterSap , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.

Например, чтобы определить функцию ProtocolCmDeregisterSap с именем MyCmDeregisterSap, используйте тип PROTOCOL_CM_DEREGISTER_SAP , как показано в следующем примере кода:

PROTOCOL_CM_DEREGISTER_SAP MyCmDeregisterSap;

Затем реализуйте функцию следующим образом:

_Use_decl_annotations_
NDIS_STATUS
 MyCmDeregisterSap(
    NDIS_HANDLE  CallMgrSapContext
    )
  {...}

Тип функции PROTOCOL_CM_DEREGISTER_SAP определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, которые применяются к типу функции PROTOCOL_CM_DEREGISTER_SAP в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов NDIS.

Сведения о Use_decl_annotations см. в статье О поведении функции.

Требования

Требование Значение
Минимальная версия клиента Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. ProtocolCmDeregisterSap (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. ProtocolCmDeregisterSap (NDIS 5.1)) в Windows XP.
Целевая платформа Windows
Header ndis.h (включая Ndis.h)
IRQL <= DISPATCH_LEVEL

См. также раздел

NdisCmDeregisterSapComplete

NdisCoSendNetBufferLists

ProtocolBindAdapterEx

ProtocolCmRegisterSap