Поделиться через


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

Функция ProtocolClDropPartyComplete используется клиентами NDIS, ориентированными на подключение, которые настраивают многоточечные подключения. Такие клиенты должны иметь функции ProtocolClDropPartyComplete для выполнения асинхронных операций, которые они инициируют с помощью

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

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

Синтаксис

PROTOCOL_CL_DROP_PARTY_COMPLETE ProtocolClDropPartyComplete;

void ProtocolClDropPartyComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolPartyContext
)
{...}

Параметры

[in] Status

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

NDIS_STATUS_SUCCESS

Партия была отброшена. Объект NdisPartyHandle , представляющий эту сторону, который клиент сохранил в своей области ProtocolPartyContext , теперь недопустим.

NDIS_STATUS_FAILURE

Данная сторона была последней, оставшейся в многоточейном VC клиента. Поэтому клиент должен вызвать NdisClCloseCall , чтобы удалить эту сторону.

[in] ProtocolPartyContext

Указывает дескриптор для области контекста стороннего клиента, которую клиент изначально предоставлял NDIS при вызове NdisClAddParty или NdisClMakeCall.

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

None

Remarks

Вызов ProtocolClDropPartyComplete указывает, что диспетчер вызовов завершил обработку запроса, инициированного предыдущим вызовом клиента к NdisClDropParty. ProtocolClDropPartyComplete может освободить выделенную клиентом область контекста для отдельных сторон или подготовить ее к повторному использованию в последующем вызове NdisClAddParty.

Если клиент находится в процессе удаления созданной им многоточеевой виртуальной машины, ProtocolClDropPartyComplete может вызвать NdisClDropPartyParty с любым допустимым NdisPartyHandle одной из оставшихся сторон в активном многоточеном VC клиента. Если в VC с несколькими точками остается только одна сторона, клиент должен удалить ее, передав ее NdisPartyHandleв NdisCloseCall.

Примеры

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

Например, чтобы определить функцию ProtocolClDropPartyComplete с именем MyClDropPartyComplete, используйте тип PROTOCOL_CL_DROP_PARTY_COMPLETE , как показано в этом примере кода:

PROTOCOL_CL_DROP_PARTY_COMPLETE MyClDropPartyComplete;

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

_Use_decl_annotations_
VOID
 MyClDropPartyComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolPartyContext
    )
  {...}

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

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

Требования

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

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

NdisClAddParty

NdisClCloseCall

NdisClDropParty

NdisClMakeCall

NdisCmDropPartyComplete

NdisFreeMemory

NdisFreeToNPagedLookasideList

NdisMCmDropPartyComplete

ProtocolCmDropParty