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는 DMA 공급자 컨텍스트가 필요한 ProviderXxx 함수에 대한 후속 호출에서 컨텍스트 정보를 전달합니다.

[in] pNetDmaProviderHandle

NetDmaRegisterProvider가 DMA 공급자를 식별하기 위해 제공하는 핸들인 값에 대한 포인터입니다. DMA 공급자 드라이버는 공급자 핸들이 필요한 NetDmaXxx 함수에 이 핸들을 전달합니다.

[in] ProviderCharacteristics

에 대한 포인터입니다. DMA 공급자의 특성을 정의하는 NET_DMA_PROVIDER_CHARACTERISTICS 구조체입니다.

반환 값

NetDmaRegisterProvider 는 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
STATUS_SUCCESS
작업이 성공적으로 완료되었습니다.
STATUS_RESOURCES
리소스가 부족하여 작업이 실패했습니다.
STATUS_UNSUCCESSFUL
지정되지 않은 이유로 작업이 실패했습니다.

설명

DMA 공급자 드라이버는 NetDmaRegisterProvider 함수를 호출하여 DMA 공급자를 등록합니다. DMA 공급자 드라이버는 AddDevice 루틴에서 NetDmaRegisterProvider를 호출합니다.

AddDevice 루틴에서 DMA 공급자 드라이버는 IoCreateDevice 함수를 호출하여 FDO(기능 디바이스 개체)를 만들고 디바이스 스택의 맨 위에 삽입합니다. 그런 다음 DMA 공급자 드라이버는 NetDmaRegisterProvider 를 호출하여 연결된 DMA 공급자를 등록합니다.

DMA 공급자 드라이버는 NET_DMA_PROVIDER_CHARACTERISTICS 구조체는 NetDmaRegisterProviderProviderCharacteristics 매개 변수에 있습니다. NET_DMA_PROVIDER_CHARACTERISTICS 구조체는 ProviderXxx 함수의 진입점을 포함하여 NetDMA 공급자의 특성을 지정합니다.

DMA 공급자 드라이버는 NetDmaRegisterProviderProviderContext 매개 변수에서 드라이버 할당 컨텍스트 정보 블록에 대한 포인터를 제공합니다. 이 컨텍스트 영역에는 DMA 공급자에 대한 정보가 저장됩니다. NetDMA 인터페이스는 DMA 공급자 컨텍스트가 필요한 ProviderXxx 함수에 대한 후속 호출에서 컨텍스트 정보를 전달합니다.

NetDmaRegisterProvider가 반환되면 pNetDmaProviderHandle 매개 변수가 지정하는 위치에 핸들을 제공합니다. NetDMA 인터페이스는 이 핸들을 할당하여 DMA 공급자를 식별합니다. DMA 공급자 드라이버는 DMA 공급자와 연결된 NetDmaXxx 함수에 대한 모든 후속 호출에서 이 핸들을 사용합니다.

컴퓨터가 MSI-X를 지원하는 경우 NetDMA 인터페이스는 NetDmaRegisterProvider 함수의 컨텍스트에서 DMA 공급자 드라이버의 를 호출합니다. ProviderSetDmaChannelCpuAffinity 함수는 각 DMA 채널에 대한 인터럽트의 CPU 선호도를 지정합니다.

컴퓨터가 MSI-X를 지원하는 경우 DMA 공급자 드라이버는 를 처리하는 동안 인터럽트 친화성을 지정할 수 있습니다. IRP_MN_FILTER_RESOURCE_REQUIREMENTS Irp. AddDevice 루틴이 성공적으로 반환되면 플러그 앤 플레이(PnP) 관리자는 DMA 공급자에 대한 IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP를 보냅니다. DMA 공급자 드라이버는 NetDMA 인터페이스가 ProviderSetDmaChannelCpuAffinity에 전달한 선호도 매개 변수에 따라 MSI-X 인터럽트 리소스를 할당하려고 시도해야 합니다.

DMA 공급자를 등록 취소하기 위해 DMA 공급자 드라이버는 를 호출합니다. NetDmaDeregisterProvider 함수입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista의 NetDMA 1.0 드라이버에 대해 지원됩니다.
대상 플랫폼 유니버설
헤더 netdma.h(Netdma.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

AddDevice

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoCreateDevice

NET_DMA_PROVIDER_CHARACTERISTICS

NetDmaDeregisterProvider

ProviderSetDmaChannelCpuAffinity