Функция 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 в подпрограмме AddDev ice.

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

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

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

Если возвращается NetDmaRegisterProvider, он предоставляет дескриптор в расположении, которое указывает параметр pNetDmaProviderHand le. Интерфейс 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 (include Netdma.h)
IRQL PASSIVE_LEVEL

См. также

AddDevice

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoCreateDevice

NET_DMA_PROVIDER_CHARACTERISTICS

NetDmaDeregisterProvider

ProviderSetDmaChannelCpuAffinity