Share via


NDKPI(네트워크 직접 커널 공급자 인터페이스) 개요

NDKPI(네트워크 직접 커널 공급자 인터페이스)는 IHV가 네트워크 어댑터(RNIC라고도 함)에서 커널 모드 RDMA(원격 직접 메모리 액세스) 지원을 제공할 수 있도록 하는 NDIS에 대한 확장입니다. 어댑터의 RDMA 기능을 노출하려면 IHV가 NDKPI 참조에 정의된 대로 NDKPI 인터페이스를 구현해야 합니다.

NDKPI 및 RDMA

NIC 공급업체는 소프트웨어, 펌웨어 및 하드웨어의 조합으로 RDMA를 구현합니다. 하드웨어 및 펌웨어 부분은 NDK/RDMA 기능을 제공하는 네트워크 어댑터입니다. 이 유형의 어댑터를 RDMA 지원 NIC(RNIC)라고도 합니다. 소프트웨어 부분은 NDKPI 인터페이스를 구현하는 NDK 지원 미니포트 드라이버입니다.

RDMA의 Windows 구현을 ND(네트워크 다이렉트)라고 합니다. 커널 부분을 NDK(네트워크 직접 커널)라고 합니다.

NDK 공급자는 NDK 지원 미니포트 어댑터에 할당된 IPv4 및 IPv6 주소를 통해 네트워크 직접 연결을 지원해야 합니다.

RDMA에 대한 자세한 내용은 RDMA에서 백그라운드 읽기를 참조하세요.

NDK 공급자

NDK 공급자는 NDKPI 인터페이스를 구현하는 미니포트 드라이버입니다.

NDK 공급자는 PnP 관리자에 의해 로드되고 초기화됩니다. 자세한 내용은 NDK-Capable Miniport 드라이버 초기화NDK 미니포트 어댑터 초기화를 참조하세요.

NDK 공급자가 로드되고 초기화되면 NDK 소비자의 요청을 처리할 준비가 된 것입니다. 이러한 요청은 공급자 함수에 대한 호출로 도착합니다.

NDK 소비자의 요청을 처리할 때 공급자는 소비자의 NDK 콜백 함수를 호출할 수 있습니다. 이러한 내용은 NDKPI 소비자 콜백 함수에 설명되어 있습니다.

NDK 공급자는 NDKPI 소비자 콜백 함수를 제외하고 NDKPI 참조에 설명된 NDKPI 인터페이스의 모든 요소를 구현해야 합니다.

NDK 소비자

NDK 소비자는 SMB 서버 및 클라이언트와 같은 커널 모드 Windows 구성 요소입니다.

참고 이 설명서에서는 NDK 소비자를 구현하는 방법을 설명하지 않습니다. NDKPI DDI(소비자 디바이스 드라이버 인터페이스)는 독점 Windows 내부 인터페이스입니다.

NDK 소비자는 공급자의 NdkOpenAdapter (OPEN_NDK_ADAPTER_HANDLER) 콜백 함수를 호출하여 어댑터 개체를 만들고 NdkCloseAdapter (NDK_FN_CLOSE_OBJECT)를 호출하여 닫습니다. 공급자가 어댑터 개체를 만든 후 소비자는 다른 공급자 콜백 함수를 호출하여 추가 NDK 개체를 만듭니다.

NDK 소비자는 NDK 공급자가 호출하는 NDKPI 소비자 콜백 함수를 구현합니다.