다음을 통해 공유


NDIS 프로토콜 드라이버 소개

NDIS 프로토콜 드라이버는 낮은 에지에서 ProtocolXxx 함수 집합을 내보냅니다. 이러한 프로토콜 드라이버는 NDIS와 통신하여 네트워크 데이터를 보내고 받습니다. 프로토콜 드라이버는 위쪽 가장자리에서 MiniportXxx 인터페이스를 내보내는 기본 미니포트 드라이버 또는 중간 드라이버에 바인딩됩니다.

참고 중간 드라이버(가상 미니포트)의 미니포트 드라이버 위쪽 가장자리는 물리적 디바이스를 관리하지 않습니다. 기본 미니포트 드라이버는 물리적 디바이스를 관리합니다.

프로토콜 드라이버는 항상 NDIS 제공 함수를 사용하여 기본 NDIS 드라이버와 통신하여 네트워크 데이터를 보내고 받습니다. 예를 들어 연결 없는 하위 에지가 있는 프로토콜 드라이버(이더넷과 같은 연결 없는 미디어의 기본 드라이버와 통신)는 NdisSendNetBufferLists 를 호출하여 네트워크 데이터를 기본 NDIS 드라이버로 보내야 합니다. 프로토콜 드라이버는 NdisOidRequest 를 호출하여 기본 연결 없는 드라이버가 지원하는 OID를 쿼리하거나 설정할 수 있습니다. 연결 지향 하한 가장자리가 있는 프로토콜 드라이버(ISDN과 같은 연결 지향 미디어의 기본 드라이버와 통신)는 NdisCoSendNetBufferLists 를 호출하여 네트워크 데이터를 하위 수준 NDIS 드라이버로 보내야 합니다. NdisCoOidRequest를 호출하여 기본 연결 지향 드라이버에서 지원하는 OID를 쿼리하거나 설정할 수도 있습니다.

NDIS는 기본 운영 체제의 세부 정보를 숨기는 NdisXxx 함수 집합도 제공합니다. 예를 들어 프로토콜 드라이버는 NdisInitializeEvent 를 호출하여 동기화 목적으로 이벤트를 만들고 NdisInitializeListHead 를 호출하여 연결된 목록을 만들 수 있습니다. 이러한 함수의 NDIS 버전을 사용하는 프로토콜 드라이버는 Microsoft 운영 체제에서 더 이식 가능합니다. 그러나 프로토콜 드라이버는 IoCreateDevice와 같은 커널 모드 지원 루틴을 호출할 수도 있습니다. 자세한 내용은 Kernel-Mode 지원 루틴 요약을 참조하세요.

프로토콜 드라이버 개발자는 다른 NDIS 드라이버에 적용되는 것과 동일한 프로그래밍 고려 사항을 사용해야 합니다.