다음을 통해 공유


어댑터에 바인딩

NDIS는 프로토콜 드라이버의 ProtocolBindAdapterEx 함수를 호출하여 드라이버가 바인딩할 수 있는 기본 어댑터를 사용할 수 있게 될 때마다 바인딩을 엽니다. NDIS가 ProtocolBindAdapterEx를 호출하면 바인딩이 열기 상태로 들어갑니다. 열기 상태에서 프로토콜 드라이버는 바인딩에 대한 리소스를 할당하고 어댑터를 엽니다.

NDIS는 바인딩 작업에 대한 NDIS 컨텍스트와 NDIS_BIND_PARAMETERS 구조체에 대한 포인터를 ProtocolBindAdapterEx에 전달합니다. 이 구조체에는 다음과 같은 어댑터에 대한 정보가 포함되어 있습니다.

  • 어댑터의 이름입니다.

  • 레지스트리의 프로토콜 서비스 항목에서 이 바인딩과 관련된 매개 변수의 레지스트리 위치입니다.

  • 어댑터의 물리적 디바이스 개체입니다.

어댑터를 열려면 프로토콜 드라이버는 NdisOpenAdapterEx 함수를 호출합니다 . 프로토콜 드라이버는 다음을 NdisOpenAdapterEx에 전달합니다.

  • NdisRegisterProtocolDriver 함수의 NdisProtocolHandle 매개 변수에서 NDIS가 드라이버에 반환한 핸들입니다.

  • 이 바인딩에 대한 프로토콜 드라이버의 컨텍스트입니다.

  • 형식 NDIS_OPEN_PARAMETERS 구조체에 대한 포인터입니다.

NDIS_OPEN_PARAMETERSNdisOpenAdapterEx 가 열어야 하는 어댑터의 이름, 프로토콜 드라이버가 지원하는 중간 형식 배열 및 필요에 따라 드라이버가 이 바인딩에서 수신할 수 있는 프레임 형식 배열과 같은 정보를 포함합니다.

프로토콜 드라이버가 ProtocolBindAdapterEx에서 NDIS_STATUS_PENDING 반환하는 경우 최종 상태 NdisCompleteBindAdapterEx를 호출하여 바인딩 요청을 완료해야 합니다.

NDIS가 NdisOpenAdapterEx에서 NDIS_STATUS_PENDING 반환하는 경우 NDIS는 나중에 열린 요청이 완료된 후 최종 상태 프로토콜 드라이버의 ProtocolOpenAdapterCompleteEx 함수를 호출합니다.

드라이버가 어댑터에 대한 바인딩을 성공적으로 열면 바인딩이 일시 중지됨 상태입니다.

프로토콜 드라이버는 NdisCloseAdapterEx 함수를 호출하여 어댑터를 닫습니다. 드라이버는 ProtocolBindAdapterEx 함수 또는 ProtocolUnbindAdapterEx 함수에서 NdisCloseAdapterEx 호출할 수 있습니다.

어댑터를 열고 바인딩 요청을 완료하기 전에 ProtocolBindAdapterEx 에서 오류가 발생하고 어댑터에 대한 바인딩을 닫아야 하는 경우 NdisCloseAdapterEx를 호출할 수 있습니다. 어댑터를 닫는 방법에 대한 자세한 내용은 어댑터에서 바인딩 해제를 참조하세요.