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

Функция NdisAllocateSharedMemory выделяет общую память у поставщика общей памяти.

Синтаксис

NDIS_STATUS NdisAllocateSharedMemory(
  [in]      NDIS_HANDLE                    NdisHandle,
  [in]      PNDIS_SHARED_MEMORY_PARAMETERS SharedMemoryParameters,
  [in, out] PNDIS_HANDLE                   pAllocationHandle
);

Параметры

[in] NdisHandle

Драйвер NDIS или дескриптор экземпляра, полученный во время инициализации вызывающего объекта. Например, драйвер мини-порта может использовать дескриптор NDIS, полученный из Функция NdisMRegisterMiniportDriver или MiniportInitializeEx . Другие драйверы NDIS могут использовать дескрипторы из следующих функций:

NdisRegisterProtocolDriver

NdisOpenAdapterEx

[in] SharedMemoryParameters

Указатель на NDIS_SHARED_MEMORY_PARAMETERS структуру, которая определяет запрошенные атрибуты для общей памяти.

[in, out] pAllocationHandle

Указатель на расположение дескриптора, который идентифицирует выделенную общую память. Дескриптор доступен при возврате функции или имеет значение NULL в случае сбоя функции. Вызывающий объект должен использовать этот дескриптор для освобождения общей памяти, которая была успешно выделена.

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

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

Код возврата Описание
NDIS_STATUS_SUCCESS
Операция выполнена успешно.
NDIS_STATUS_RESOURCES
Операция завершилась сбоем из-за нехватки ресурсов для ее завершения.
NDIS_STATUS_INVALID_PARAMETER
Операция завершилась сбоем из-за недопустимого входного параметра.
NDIS_STATUS_FAILURE
Операция завершилась сбоем по неустановленным причинам.

Комментарии

Примечание Драйвер мини-порта должен уже вызвать NdisMRegisterScatterGatherDma или NdisMRegisterDmaChannel , чтобы инициализировать канал DMA точечной и сборной перед вызовом NdisAllocateSharedMemory.
 
Драйверы NDIS вызывают функцию NdisAllocateSharedMemory , чтобы выделить блок общей памяти от поставщика NDIS общей памяти.

Параметр SharedMemoryParameters содержит указатель на NDIS_SHARED_MEMORY_PARAMETERS структуру, которая определяет запрошенные атрибуты для общей памяти. Если флаг NDIS_SHARED_MEM_PARAMETERS_CONTIGUOUS не задан в элементе Flags , общая память может быть указана в списке точечного сбора, который содержится в несмежной памяти.

NDIS вызывает функцию NetAllocateSharedMemory поставщика общей памяти из контекста вызова NdisAllocateSharedMemory.

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

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.20 и более поздних версиях.
Целевая платформа Универсальное
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL PASSIVE_LEVEL

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

FilterAttach

MiniportInitializeEx

NDIS_SHARED_MEMORY_PARAMETERS

NdisFRegisterFilterDriver

NdisFreeSharedMemory

NdisMRegisterDmaChannel

NdisMRegisterMiniportDriver

NdisMRegisterScatterGatherDma

NdisOpenAdapterEx

NdisRegisterProtocolDriver

NetAllocateSharedMemory