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

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

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

Синтаксис

PROTOCOL_CL_DEREGISTER_SAP_COMPLETE ProtocolClDeregisterSapComplete;

void ProtocolClDeregisterSapComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolSapContext
)
{...}

Параметры

[in] Status

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

NDIS_STATUS_SUCCESS

SAP была закрыта. NdisSapHandle, представляющий ранее зарегистрированную sap клиента, сохраненную клиентом в области ProtocolSapContext, теперь недопустим.

NDIS_STATUS_FAILURE

NDIS помечает состояние AF как "закрытие", поэтому связанная SAP, представленная NdisSapHandle , уже была освобождена при вызове клиента Произошло NdisClDeregisterSap .

NDIS_STATUS_XXX

Диспетчер вызовов не смог выполнить запрос на закрытие SAP по какой-либо причине, определяемой CM, и NDIS распространила состояние, возвращенное его Функция ProtocolCmDeregisterSap для клиента.

[in] ProtocolSapContext

Указывает предоставленный клиентом дескриптор для области контекста SAP, изначально переданный в NDIS с помощью NdisClRegisterSap. После того как диспетчер вызовов успешно отменит регистрацию sap, клиент может освободить область контекста или подготовить эту область контекста для повторного использования.

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

None

Remarks

Вызов ProtocolClDeregisterSapComplete указывает, что предыдущий вызов клиента к NdisClDeregisterSap был обработан диспетчером вызовов.

Если диспетчеру вызовов не удалось отменить регистрацию по какой-либо причине, определенной CM, клиент должен считать NdisSapHandle недопустимым при вызове ProtocolClDeregisterSapComplete . Следовательно, ProtocolClDeregisterSapComplete может освободить область контекста для sap, выделенную клиентом, или подготовить ее для повторного использования в последующем вызове NdisClRegisterSap.

Примеры

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

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

PROTOCOL_CL_DEREGISTER_SAP_COMPLETE MyClDeregisterSapComplete;

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

_Use_decl_annotations_
VOID
 MyClDeregisterSapComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolSapContext
    )
  {...}

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

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

Требования

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

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

NdisClDeregisterSap

NdisClRegisterSap

NdisCmDeregisterSapComplete

NdisFreeMemory

NdisFreeToNPagedLookasideList

NdisMCmDeregisterSapComplete

ProtocolCmDeregisterSap