Функция NetDmaRegisterProvider (netdma.h)

Примечание Интерфейс NetDMA не поддерживается

в Windows 8 и более поздних версий.

 
Функция NetDmaRegisterProvider регистрирует поставщик DMA.

Синтаксис

NET_DMA_EXPORT NTSTATUS NetDmaRegisterProvider(
  [in] PVOID                             ProviderContext,
  [in] PVOID                             *pNetDmaProviderHandle,
  [in] PNET_DMA_PROVIDER_CHARACTERISTICS ProviderCharacteristics
);

Параметры

[in] ProviderContext

Указатель на блок сведений о контексте, выделенном драйвером, в котором хранятся сведения о поставщике DMA. NetDMA передает сведения о контексте в последующих вызовах функций поставщикаXxx, которым требуется контекст поставщика DMA.

[in] pNetDmaProviderHandle

Указатель на значение, представляющее собой дескриптор, предоставляемый NetDmaRegisterProvider для идентификации поставщика DMA. Драйвер поставщика DMA передает этот дескриптор функциям NetDmaXxx , которым требуется дескриптор поставщика.

[in] ProviderCharacteristics

Указатель на NET_DMA_PROVIDER_CHARACTERISTICS структуры, определяющей характеристики поставщика DMA.

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

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

Код возврата Описание
STATUS_SUCCESS
Операция выполнена успешно.
STATUS_RESOURCES
Операция завершилась сбоем из-за нехватки ресурсов.
STATUS_UNSUCCESSFUL
Операция завершилась сбоем по неопределенным причинам.

Комментарии

Драйверы поставщика DMA вызывают функцию NetDmaRegisterProvider для регистрации поставщика DMA. Драйверы поставщика DMA вызывают NetDmaRegisterProvider в своей процедуре AddDevice .

В подпрограмме AddDevice драйвер поставщика DMA вызывает функцию IoCreateDevice для создания функционального объекта устройства (FDO) и вставляет его в верхнюю часть стека устройств. Затем драйвер поставщика DMA вызывает NetDmaRegisterProvider для регистрации связанного поставщика DMA.

Драйвер поставщика DMA предоставляет NET_DMA_PROVIDER_CHARACTERISTICS структуру в параметре ProviderCharacteristicsобъекта NetDmaRegisterProvider. Структура NET_DMA_PROVIDER_CHARACTERISTICS определяет характеристики поставщика NetDMA, включая точки входа для функций ProviderXxx .

Драйвер поставщика DMA предоставляет указатель на блок сведений о контексте, выделенных драйвером, в параметре ProviderContextобъекта NetDmaRegisterProvider. В этой области контекста хранятся сведения о поставщике DMA. Интерфейс NetDMA передает сведения о контексте в последующих вызовах функций ProviderXxx, которым требуется контекст поставщика DMA.

Когда NetDmaRegisterProvider возвращается, он предоставляет дескриптор в расположении, указанном параметром pNetDmaProviderHandle . Интерфейс NetDMA назначает этот дескриптор для идентификации поставщика DMA. Драйвер поставщика DMA использует этот дескриптор во всех последующих вызовах функций NetDmaXxx , связанных с поставщиком DMA.

Если компьютер поддерживает MSI-X, интерфейс NetDMA в контексте функции NetDmaRegisterProvider вызывает драйвер поставщика DMA. Функция ProviderSetDmaChannelCpuAffinity для указания сходства ЦП прерывания для каждого канала DMA.

Если компьютер поддерживает MSI-X, драйвер поставщика DMA может указать сходство прерываний при обработке IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP. После успешного возврата подпрограммы AddDevice диспетчер Plug and Play (PnP) отправляет IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP для поставщика DMA. Драйвер поставщика DMA должен попытаться выделить ресурсы прерываний MSI-X в соответствии с параметрами сходства, которые интерфейс NetDMA передал в ProviderSetDmaChannelCpuAffinity.

Чтобы отменить регистрацию поставщика DMA, драйвер поставщика DMA вызывает Функция NetDmaDeregisterProvider .

Требования

Требование Значение
Минимальная версия клиента Поддерживается для драйверов NetDMA 1.0 в Windows Vista.
Целевая платформа Универсальное
Верхняя часть netdma.h (включая Netdma.h)
IRQL PASSIVE_LEVEL

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

AddDevice

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoCreateDevice

NET_DMA_PROVIDER_CHARACTERISTICS

NetDmaDeregisterProvider

ProviderSetDmaChannelCpuAffinity