функция обратного вызова MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE (ndis.h)

NDIS вызывает функцию MiniportSharedMemoryAllocateComplete драйвера miniport, чтобы выполнить запрос на выделение общей памяти, запущенный драйвером мини-порта, вызвавФункция NdisMAllocateSharedMemoryAsyncEx.

Примечание Функцию необходимо объявить с помощью типа MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE . Дополнительные сведения см. в следующем разделе Примеры.
 

Синтаксис

MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE MiniportAllocateSharedMemComplete;

void MiniportAllocateSharedMemComplete(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PVOID VirtualAddress,
  [in] PNDIS_PHYSICAL_ADDRESS PhysicalAddress,
  [in] ULONG Length,
  [in] PVOID Context
)
{...}

Параметры

[in] MiniportAdapterContext

Дескриптор контекстной области, выделенной драйвером мини-порта, в которой драйвер хранит сведения о состоянии сетевой карты. Драйвер выделяет эту область контекста вФункция MiniportInitializeEx.

[in] VirtualAddress

Базовый виртуальный адрес общей памяти, выделенной драйвером мини-порта путем вызова NdisMAllocateSharedMemoryAsyncEx. VirtualAddress имеет значение NULL , если попытка выделения не удалась.

[in] PhysicalAddress

Базовый физический адрес сетевой карты, который сопоставляется с адресом, который указан параметром VirtualAddress .

[in] Length

Количество байтов, выделенных NdisMAllocateSharedMemoryAsyncEx .

[in] Context

Указатель на контекстную область, указанную драйвером мини-порта в предыдущем вызове NdisMAllocateSharedMemoryAsyncEx.

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

None

Remarks

MiniportAllocateSharedMemoryComplete — это необязательная функция для драйверов мини-портов. Драйвер мини-порта регистрирует функцию MiniportAllocateSharedMemoryComplete в структуре NDIS_SG_DMA_DESCRIPTION, переданной драйверуФункция NdisMRegisterScatterGatherDma.

Вызов водителей минипорта NdisMAllocateSharedMemoryAsyncEx для выделения общей памяти. Если NdisMAllocateSharedMemoryAsyncEx возвращает NDIS_STATUS_PENDING, NDIS вызывает MiniportAllocateSharedMemoryComplete , чтобы передать память драйверу мини-порта.

NDIS вызывает MiniportSharedMemoryAllocateComplete на PASSIVE_LEVEL IRQL.

Примеры

Чтобы определить функцию MiniportSharedMemoryAllocateComplete , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.

Например, чтобы определить функцию MiniportSharedMemoryAllocateComplete с именем MySharedMemoryAllocateComplete, используйте тип MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE , как показано в следующем примере кода:

MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE MySharedMemoryAllocateComplete;

Затем реализуйте функцию следующим образом:

_Use_decl_annotations_
VOID
 MySharedMemoryAllocateComplete(
    NDIS_HANDLE  MiniportAdapterContext,
    PVOID  VirtualAddress,
    PNDIS_PHYSICAL_ADDRESS  PhysicalAddress,
    ULONG  Length,
    PVOID  Context
    )
  {...}

Тип функции MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, не забудьте добавить заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, которые применяются к типу функции MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в статье Объявление функций с помощью типов ролей функций для драйверов NDIS.

Сведения о Use_decl_annotations см. в статье Поведение функции с заметками.

Требования

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

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

MiniportInitializeEx

NdisMAllocateSharedMemoryAsyncEx NdisMRegisterScatterGatherDma