Функция 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 успешно выделяет структуру NDIS_OID_REQUEST. Параметр CloneRequest содержит указатель на структуру NDIS_OID_REQUEST. |
|
Сбой запроса на выделение, так как дескриптор NDIS, указанный в SourceHandle, недопустим. |
|
Сбой запроса на выделение, так как NDIS не имеет достаточных ресурсов для завершения запроса на выделение. |
|
Драйвер не удалось выделить клонированную структуру по причинам, отличным от тех, которые в предыдущем списке. |
Замечания
Чтобы перенаправлять запрос в базовые драйверы, промежуточный драйвер 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) |