미니포트 어댑터 초기화

네트워킹 디바이스를 사용할 수 있게 되면 시스템이 아직 로드되지 않은 경우 필요한 NDIS 미니포트 드라이버를 로드합니다. 그 후 PnP(플러그 앤 플레이) 관리자는 NDIS에 플러그 앤 플레이 IRP를 보내 디바이스를 시작합니다. NDIS는 미니포트 드라이버의 MiniportInitializeEx 함수를 호출하여 네트워크 I/O 작업에 대한 어댑터를 초기화합니다. NDIS는 드라이버가 초기화된 후 언제든지 MiniportInitializeEx 를 호출할 수 있습니다. 미니포트 드라이버 초기화에 대한 자세한 내용은 Miniport 드라이버 초기화를 참조하세요.

MiniportInitializeEx가 반환될 때까지 NDIS는 초기화되는 어댑터에 대한 요청을 제출하지 않습니다. 어댑터가 초기화 상태에 있습니다.

미니포트 드라이버는 일반적으로 MiniportInitializeEx에서 다음 작업을 수행합니다.

  1. 어댑터에 대한 구성 정보를 가져옵니다.

  2. 어댑터의 하드웨어 리소스에 대한 정보를 가져옵니다.

  3. NdisMSetMiniportAttributes를 호출하고 어댑터와 연결된 다음 특성을 제공합니다.

    • 드라이버 할당 컨텍스트 영역에 대한 포인터입니다.
    • 적절한 특성 플래그입니다.
    • MiniportCheckForHangEx 함수를 호출하기 위한 시간 제한 간격입니다.
    • 인터페이스 형식입니다.
  4. 어댑터 관련 리소스를 초기화합니다.

미니포트 드라이버는 MiniportInitializeExNdisMSetMiniportAttributes에 전달하는 NDIS_MINIPORT_ADAPTER_ATTRIBUTES 구조의 어댑터 특성을 지정합니다.

일반적으로 MiniportInitializeEx 는 어댑터별 리소스를 다음 순서로 할당합니다.

  1. 페이지가 없는 풀 메모리입니다.

  2. 풀 NET_BUFFERNET_BUFFER_LIST ( 미니포트 드라이버 송신 및 수신 작업 참조).

  3. 스핀 잠금.

  4. 타이머.

  5. IO 포트.

  6. DMA( 분산/DMA 수집 참조).

  7. 공유 메모리입니다.

  8. 인터럽트( 인터럽트 관리 참조)

MiniportInitializeEx가 성공적으로 반환되면 어댑터는 일시 중지됨 상태입니다. NDIS는 MiniportRestart 함수를 호출하여 어댑터를 실행 중 상태로 전환할 수 있습니다. 자세한 내용은 미니포트 어댑터 시작을 참조하세요.

MiniportInitializeEx가 NDIS_STATUS_SUCCESS 반환하는 경우 드라이버는 MiniportHaltEx 함수에서 어댑터에 대한 모든 리소스를 해제해야 합니다. 자세한 내용은 미니포트 어댑터 중지를 참조하세요.

드라이버는 NdisMSetMiniportAttributes를 호출하고 NDIS_STATUS_SUCCESS 반환하는 경우 NDIS_MINIPORT_ADAPTER_ATTRIBUTES 구조체에서 GeneralAttributes를 설정해야 합니다.

MiniportInitializeEx가 실패한 경우 MiniportInitializeEx는 반환되기 전에 할당된 모든 리소스를 해제해야 하며 어댑터는 중지됨 상태로 돌아갑니다.

미니포트 어댑터 중지

미니포트 어댑터 상태 및 작업

미니포트 드라이버 보내기 및 받기 작업

분산/수집 DMA

미니포트 어댑터 시작