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


Функция 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 (include Ndis.h)
библиотеки Ndis.lib
IRQL <= DISPATCH_LEVEL
правил соответствия DDI Irql_OID_Function(ndis)

См. также

NDIS_OID_REQUEST

NdisFreeCloneOidRequest