다음을 통해 공유


미니포트 어댑터 초기화

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

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

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

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

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

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

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

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

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

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

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

  3. 스핀락

  4. 타이머.

  5. IO 포트.

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

  7. 공유 메모리.

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

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

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

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

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

미니포트 어댑터 중지하기

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

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

분산/수집 DMA

미니포트 어댑터 시작하기