다음을 통해 공유


WDM Lower Edge에 대한 구현 팁 및 요구 사항

이 항목에서는 NDIS-WDM 미니포트 드라이버를 구현하기 위한 팁과 요구 사항에 대해 설명합니다. NDIS-WDM 미니포트 드라이버는 NDIS 및 비 NDIS 함수를 모두 호출할 수 있습니다. 이러한 비 NDIS 함수에는 특정 버스 드라이버 인터페이스에 대한 WDM-커널 모드 지원 루틴 및 함수가 포함됩니다.

NDIS-WDM 미니포트 드라이버를 구현할 때 다음 사항에 유의하세요.

  • NDIS-WDM 미니포트 드라이버를 빌드하려면 Ndis.h 헤더 파일이 포함되기 전에 NDIS_WDM 플래그를 정의해야 합니다. NDIS_WDM 플래그를 정의하면 Ndis.h에 적절한 WDM 헤더 파일이 자동으로 포함됩니다. NDIS_WDM 플래그는 미니포트 드라이버의 소스 코드 시작 부분에 포함되거나 미니포트 드라이버의 소스 파일에 설정되어야 합니다. NDIS-WDM 미니포트 드라이버는 IoCallDriverIoAllocateIrp와 같은 커널 모드 루틴을 호출하기 위해 WDM 헤더 파일이 필요합니다.

  • 특정 버스 드라이버 인터페이스에 대한 함수 호출에는 해당 버스 드라이버에 대한 헤더 파일이 필요합니다.

  • 호환되지 않을 수 있으므로 동일한 원본 파일에 NDIS 및 비 NDIS 헤더를 포함하는 것은 권장되지 않습니다. 즉, NDIS 함수를 호출하는 코드와 NDIS가 아닌 함수를 호출하는 코드에 대해 별도의 소스 파일을 만들어야 합니다.

  • NDIS-WDM 미니포트 드라이버는 다음 시나리오 중 하나에서 리소스를 할당하고 해제하지 않는 한 적절한 NDIS 함수를 호출하여 리소스를 할당하고 해제해야 합니다.

    • 일반적으로 메모리 리소스인 리소스는 NDIS-WDM 미니포트 드라이버에 의해 할당되며 나중에 버스 드라이버 인터페이스와 같은 비 NDIS 엔터티에 의해 릴리스됩니다.
    • 일반적으로 메모리 리소스인 리소스는 NDIS가 아닌 엔터티에 의해 할당되며 나중에 NDIS-WDM 미니포트 드라이버에서 릴리스됩니다.

    이전 시나리오의 경우 NDIS-WDM 미니포트 드라이버는 적절한 WDM 루틴을 호출하여 비 NDIS 엔터티에 대한 리소스를 할당하거나 해제해야 합니다.