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


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

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

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

Синтаксис

PROTOCOL_CL_INCOMING_DROP_PARTY ProtocolClIncomingDropParty;

void ProtocolClIncomingDropParty(
  [in] NDIS_STATUS DropStatus,
  [in] NDIS_HANDLE ProtocolPartyContext,
  [in] PVOID CloseData,
  [in] UINT Size
)
{...}

Параметры

[in] DropStatus

Указывает причину удаления стороны. Как правило, это NDIS_STATUS_SUCCESS, если сторона в удаленной заметке инициировала закрытие своего подключения, но это может быть любое состояние, определяемое CM, если диспетчер вызовов инициировал эту операцию удаления из-за обнаруженных проблем в сети.

[in] ProtocolPartyContext

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

[in] CloseData

Указатель на буфер, содержащий сообщение закрытия для конкретного протокола, возможно, предоставленное удаленным клиентом, которое диспетчер вызовов получил по сети, или этот параметр может иметь значение NULL.

Если dropStatus NDIS_STATUS_SUCCESS, этот параметр имеет значение NULL , если базовая сетевая среда не поддерживает передачу данных при закрытии подключения. Однако любой конкретный диспетчер вызовов может определить структуру для передачи дополнительных диагностических сведений своим клиентам при операциях drop-party, вызванных проблемами в сети.

[in] Size

Указывает длину (в байтах) буфера в CloseData, ноль, если CloseData имеет значение NULL.

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

None

Remarks

Вызов ProtocolClIncomingDropParty указывает, что произошло одно из следующих действий:

  • Диспетчер вызовов получил запрос по сети на закрытие установленного подключения, определенного NdisPartyHandle , который клиент хранит в своей области контекста по протоколу ProtocolPartyContext .
  • Диспетчер звонков обнаружил, что сетевые проблемы препятствуют дальнейшей передаче данных по установленному подключению.
В любом случае ProtocolClIncomingDropParty должен выполнять все операции, определяемые протоколом, чтобы удалить сторону из многоточелетнего клиентского VC. ProtocolClIncomingDropParty должен вызывать NdisClDropParty или, если это последняя оставшаяся сторона в многоточечный VC клиента, NdisClcloseCall.

ProtocolClIncomingDropParty должен считать NdisPartyHandle , полученный клиентом из NdisClAddParty или NdisClMakeCall , недопустимым. ProtocolClIncomingDropParty может освободить область контекста стороннего клиента или подготовить ее для повторного использования в последующем вызове NdisClAddParty.

Примеры

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

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

PROTOCOL_CL_INCOMING_DROP_PARTY MyClIncomingDropParty;

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

_Use_decl_annotations_
VOID
 MyClIncomingDropParty(
    NDIS_STATUS  DropStatus,
    NDIS_HANDLE  ProtocolPartyContext,
    PVOID  CloseData,
    UINT  Size
    )
  {...}

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

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

Требования

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

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

NdisClAddParty

NdisClCloseCall

NdisClDropParty

NdisClMakeCall

NdisCmDispatchIncomingDropParty

NdisFreeMemory

NdisFreeToNPagedLookasideList NdisMCmDispatchIncomingDropParty