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


Функция 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
Операция завершилась ошибкой из-за неуказаемых причин.

Замечания

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается в NDIS 6.20 и более поздних версиях.
целевая платформа Всеобщий
заголовка ndis.h (include Ndis.h)
библиотеки Ndis.lib
IRQL PASSIVE_LEVEL

См. также

FilterAttach

MiniportInitializeEx

NDIS_SHARED_MEMORY_PARAMETERS

NdisFRegisterFilterDriver

NdisFreeSharedMemory

NdisMRegisterDmaChannel

NdisMRegisterMiniportDriver

NdisMRegisterScatterGatherDma

NdisOpenAdapterEx

NdisRegisterProtocolDriver

NetAllocateSharedMemory