다음을 통해 공유


CoNDIS 프로토콜 드라이버 OID 요청

CoNDIS 프로토콜 드라이버(클라이언트 또는 호출 관리자)는 미니포트 드라이버 및 기타 프로토콜 드라이버의 운영 매개 변수를 쿼리하거나 설정할 수 있습니다. CoNDIS 프로토콜 드라이버는 MCM(미니포트 호출 관리자)에서 정보를 쿼리하거나 설정할 수도 있습니다. OID 요청 및 MCM에 대한 자세한 내용은 CoNDIS MCM OID 요청을 참조하세요.

기본 드라이버에 대한 OID 요청을 시작하려면 프로토콜 드라이버가 NdisCoOidRequest 함수를 호출하고 NdisAfHandle 매개 변수의 AF(주소 패밀리) 핸들을 NULL로 설정합니다. 다른 CoNDIS 프로토콜 드라이버에 대한 OID 요청을 시작하려면 프로토콜 드라이버가 NdisCoOidRequest 를 호출하고 유효한 AF 핸들을 제공합니다.

프로토콜 드라이버가 NdisCoOidRequest 함수를 호출한 후 NDIS는 다른 드라이버(기본 드라이버 또는 다른 CoNDIS 프로토콜 드라이버)의 OID 요청 함수를 호출합니다. 미니포트 드라이버의 경우 NDIS는 MiniportCoOidRequest 함수를 호출합니다. 프로토콜 드라이버의 경우 NDIS는 ProtocolCoOidRequest 함수를 호출합니다.

다음 그림에서는 미니포트 드라이버로 전달되는 OID 요청을 보여 줍니다.

미니포트 드라이버로 전달되는 OID 요청을 보여 주는 다이어그램

다음 그림에서는 프로토콜 드라이버로 전달되는 OID 요청을 보여 줍니다.

프로토콜 드라이버로 전달되는 OID 요청을 보여 주는 다이어그램

동기적으로 완료하기 위해 NdisCoOidRequest는 NDIS_STATUS_SUCCESS 또는 오류 상태 반환합니다. 비동기적으로 완료하기 위해 NdisCoOidRequest 는 NDIS_STATUS_PENDING 반환합니다.

NdisCoOidRequest가 NDIS_STATUS_PENDING 반환하는 경우 다른 드라이버가 NdisMCoOidRequestComplete 함수 또는 NdisCoOidRequestComplete 함수를 호출하여 OID 요청을 완료한 후 NDIS는 ProtocolCoOidRequestComplete 함수를 호출합니다. 이 경우 NDIS는 ProtocolCoOidRequestCompleteOidRequest 매개 변수에서 요청 결과를 전달합니다. NDIS는 ProtocolCoOidRequestCompleteStatus 매개 변수에서 요청의 최종 상태 전달합니다.

NdisCoOidRequest가 NDIS_STATUS_SUCCESS 반환하는 경우 OidRequest 매개 변수 지점의 NDIS_OID_REQUEST 구조에서 쿼리 요청의 결과를 반환합니다. 이 경우 NDIS는 ProtocolCoOidRequestComplete 함수를 호출하지 않습니다.

기본 드라이버가 OID 요청을 후속 상태 표시와 연결해야 하는 경우 프로토콜 드라이버는 NDIS_OID_REQUEST 구조에서 RequestIdRequestHandle 멤버를 설정해야 합니다. 기본 드라이버가 상태 표시하면 드라이버는 NDIS_STATUS_INDICATION 구조체의 RequestId 멤버를 NDIS_OID_REQUEST 구조체의 RequestId 멤버 및 NDIS_STATUS_INDICATION 구조체의 DestinationHandle 멤버의 값으로 NDIS_OID_REQUEST 구조체의 RequestHandle 멤버 값으로 설정합니다.

바인딩이 다시 시작, 실행 중, 일시 중지 또는 일시 중지됨 상태일 때 드라이버는 NdisCoOidRequest를 호출할 수 있습니다.