функция обратного вызова PROTOCOL_CL_DEREGISTER_SAP_COMPLETE (ndis.h)
Функция ProtocolClDeregisterSapComplete используется клиентами NDIS, ориентированными на подключение. Клиенты NDIS, ориентированные на подключение, которые принимают входящие вызовы, должны иметь функции ProtocolClDeregisterSapComplete для выполнения асинхронных операций, инициируемых с помощью NdisClDeregisterSap. В противном случае зарегистрированная функция ProtocolClDeregisterSapComplete такого драйвера протокола может просто вернуть управление.
Синтаксис
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 |
См. также раздел
NdisFreeToNPagedLookasideListОбратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по