Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
в Windows 8 и более поздних версиях.
Синтаксис
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 может возвращать одно из следующих значений:
| Возвращаемый код | Описание |
|---|---|
|
Операция успешно завершена. |
|
Операция завершилась ошибкой из-за нехватки ресурсов. |
|
Операция завершилась ошибкой из-за неуказаемых причин. |
Замечания
Драйверы поставщика 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 |