Функция NdisAllocateCloneOidRequest (ndis.h)

Функция NdisAllocateCloneOidRequest выделяет память для новой структуры NDIS_OID_REQUEST и копирует всю информацию из существующей структуры NDIS_OID_REQUEST в только что выделенную структуру.

Синтаксис

NDIS_STATUS NdisAllocateCloneOidRequest(
  [in] IN NDIS_HANDLE        SourceHandle,
       IN PNDIS_OID_REQUEST  OidRequest,
  [in] IN UINT               PoolTag,
       OUT PNDIS_OID_REQUEST *ClonedOidRequest
);

Параметры

[in] SourceHandle

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

OidRequest

Указатель на существующую структуру NDIS_OID_REQUEST , из которой NDIS копирует сведения в только что выделенную структуру.

[in] PoolTag

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

ClonedOidRequest

Указатель на указатель на структуру NDIS_OID_REQUEST. Если NDIS возвращает NDIS_STATUS_SUCCESS, NDIS предоставляет указатель на новую, клонированную NDIS_OID_REQUEST структуру; В противном случае NDIS задает для указателя значение NULL.

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

NdisAllocateClonedRequest может возвращать одно из следующих значений состояния:

Код возврата Описание
NDIS_STATUS_SUCCESS
NDIS успешно выделил структуру NDIS_OID_REQUEST. Параметр CloneRequest содержит указатель на структуру NDIS_OID_REQUEST.
NDIS_STATUS_INVALID_PARAMETER
Сбой запроса на выделение, так как дескриптор NDIS, указанный в SourceHandle , недопустим.
NDIS_STATUS_RESOURCES
Запрос на выделение завершился сбоем, так как у NDIS не было достаточно ресурсов для выполнения запроса на выделение.
NDIS_STATUS_FAILURE
Драйверу не удалось выделить клонированную структуру по причинам, не указанным в предыдущем списке.

Комментарии

Чтобы перенаправлять запрос базовым драйверам, промежуточный драйвер NDIS или драйвер фильтра должен вызвать NdisAllocateCloneOidRequest , чтобы выделить клонированную структуру NDIS_OID_REQUEST . Драйвер фильтра или промежуточный драйвер не должны пересылать исходную структуру NDIS_OID_REQUEST базовым драйверам.

NdisAllocateCloneOidRequest выделяет новую память и копирует данные из существующей структуры NDIS_OID_REQUEST в новую структуру.

Драйвер должен впоследствии вызвать функцию NdisFreeCloneOidRequest , чтобы освободить структуру NDIS_OID_REQUEST.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Целевая платформа Персональный компьютер
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI Irql_OID_Function(ndis)

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

NDIS_OID_REQUEST

NdisFreeCloneOidRequest