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


Макрос NdisMoveMemory (ndis.h)

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

Синтаксис

void NdisMoveMemory(
  [out]  Destination,
  [in]   Source,
  [in]   Length
);

Параметры

[out] Destination

Указатель на буфер пространства системы, который является назначением перемещения. Этот буфер должен быть по крайней мере длина байтов в размере.

[in] Source

Указатель на буфер пространства системы, из которого эта функция копирует данные в целевой буфер. Этот буфер должен быть по крайней мере длина байтов в размере.

[in] Length

Количество байтов для копирования.

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

Никакой

Замечания

Оба исходного и назначения — это виртуальные адреса.

Если любой адрес попадает в диапазон памяти устройства, сопоставленной с NdisMMapIoSpace, минипорт-драйвер должен вызвать один из Ndis.. Функции mappedMemory вместо NdisMoveMemory.

Диапазон, указанный источника и длина, не может перекрывать диапазон назначения.

Вызывающие NdisMoveMemory могут выполняться в любом IRQL, если указанный источник и назначение являются резидентами. В противном случае вызывающие элементы должны работать в IRQL < DISPATCH_LEVEL, например, если любой адрес находится в стеке.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается для существующих драйверов в NDIS 6.0 и более поздних версиях, но новые драйверы должны использовать RtlCopyMemory (а не RtlMoveMemory).
целевая платформа Настольный
заголовка ndis.h (include Ndis.h)
IRQL См. раздел "Примечания"

См. также

NdisAllocateMemoryWithTagPriority

NdisMMapIoSpace