다음을 통해 공유


MINIPORT_CHECK_FOR_HANG 콜백 함수(ndis.h)

경고

MiniportCheckForHangExMiniportResetEx 콜백 함수는 모든 NDIS 6.83 이상 드라이버에 대해 권장되지 않습니다. 자세한 내용은 NDIS 6.83 이상에서 중단 검사 및 다시 설정 작업을 참조하세요.

NDIS는 미니포트 드라이버의 MiniportCheckForHangEx 함수를 호출하여 NIC(네트워크 인터페이스 카드)를 나타내는 미니포트 어댑터의 작동 상태를 검사.

참고 미니포트 드라이버는 MINIPORT_CHECK_FOR_HANG 형식을 사용하여 이 함수를 선언할 수 있습니다.
 
참고 NDIS 6.30부터 이 함수는 주기적인 중단 검사 활동으로 인한 부정적인 전력 영향을 방지하기 위해 저전력 SoC 플랫폼에서 실행되는 드라이버에 등록해서는 안 됩니다.
 

구문

MINIPORT_CHECK_FOR_HANG MiniportCheckForHang;

BOOLEAN MiniportCheckForHang(
  [in] NDIS_HANDLE MiniportAdapterContext
)
{...}

매개 변수

[in] MiniportAdapterContext

Miniport 드라이버가 MiniportInitializeEx 함수에 할당한 컨텍스트 영역에 대한 핸들입니다. 미니포트 드라이버는 이 컨텍스트 영역을 사용하여 미니포트 어댑터에 대한 상태 정보를 유지 관리합니다.

반환 값

MiniportCheckForHangEx는 드라이버가 NIC가 작동하지 않는다고 판단하고 NDIS가 드라이버의 MiniportResetEx 함수를 호출해야 하는 경우 TRUE를 반환합니다. 자세한 내용은 주의 섹션을 참조하세요.

설명

미니포트 드라이버는 를 호출할 때 MiniportCheckForHangEx 진입점을 지정합니다. NdisMRegisterMiniportDriver 함수.

중간 드라이버에는 MiniportCheckForHangEx가 필요하지 않습니다.

MiniportCheckForHangEx는 NIC의 내부 상태를 검사 NIC가 제대로 작동하지 않는 것을 감지하면 TRUE를 반환합니다.

기본적으로 NDIS는 약 2초마다 MiniportCheckForHangEx 를 호출합니다. 이러한 이유로 미니포트 드라이버의 MiniportCheckForHangEx 함수는 가능한 한 빨리 반환되어야 합니다.

참고 NDIS 6.30부터 허용 오차가 높은 병합 가능한 타이머가 MiniportCheckForHangEx 호출 간의 간격을 측정하는 데 사용됩니다. 따라서 이 루틴은 시간에 민감한 작업에 사용해서는 안 됩니다.
 
MiniportCheckForHangExTRUE를 반환하면 NDIS는 미니포트 드라이버의 MiniportResetEx 함수를 호출합니다.

Miniport 드라이버가 MiniportCheckForHangEx에 대한 두 번의 연속 호출 내에서 OID 요청을 완료하지 않으면 NDIS는 드라이버의 MiniportResetEx 함수를 호출할 수 있습니다. 그러나 불필요한 재설정을 방지하기 위해 드라이버의 MiniportInitializeEx 함수는 를 호출할 때 적절한 CheckForHangTimeInSeconds 값을 설정하여 검사 중단 시간 제한 간격을 확장할 수 있습니다. NdisMSetMiniportAttributes 함수입니다.

CheckForHangTimeInSeconds 시간 제한 값을 설정하는 방법에 대한 자세한 내용은 미니포트 어댑터 중단 확인 및 다시 설정 작업을 참조하세요.

참고 NDIS 6.30부터 미니포트 드라이버가 제한 시간이 만료되기 전에 NIC가 보류 중인 송신 요청을 완료하지 않은 것을 감지하는 경우 MiniportCheckForHangExTRUE 를 반환해야 합니다. 시간 제한 기간은 드라이버별로 지정되지만 시간 제한 기간은 2초로 사용하는 것이 좋습니다.
 
MiniportCheckForHangEx 는 인터럽트를 통해 선점할 수 있습니다.

NDIS는 IRQL = PASSIVE_LEVEL MiniportCheckForHangEx 를 호출합니다.

MiniportCheckForHangEx 함수를 정의하려면 먼저 정의할 함수의 형식을 식별하는 함수 선언을 제공해야 합니다. Windows는 드라이버에 대한 함수 형식 집합을 제공합니다. 함수 형식을 사용하여 함수를 선언하면 드라이버에 대한 코드 분석, SDV( 정적 드라이버 검증 도구 ) 및 기타 확인 도구에서 오류를 찾는 데 도움이 되며 Windows 운영 체제용 드라이버를 작성하기 위한 요구 사항입니다.

예를 들어 " MyCheckForHangEx"라는 MiniportCheckForHangEx 함수를 정의하려면 이 코드 예제와 같이 MINIPORT_CHECK_FOR_HANG 형식을 사용합니다.

MINIPORT_CHECK_FOR_HANG MyCheckForHangEx;

그런 다음 다음과 같이 함수를 구현합니다.

_Use_decl_annotations_
BOOLEAN
 MyCheckForHangEx(
    NDIS_HANDLE  MiniportAdapterContext
    )
  {...}

MINIPORT_CHECK_FOR_HANG 함수 형식은 Ndis.h 헤더 파일에 정의되어 있습니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 Use_decl_annotations 주석을 추가해야 합니다. Use_decl_annotations 주석은 헤더 파일의 MINIPORT_CHECK_FOR_HANG 함수 형식에 적용되는 주석이 사용되도록 합니다. 함수 선언 요구 사항에 대한 자세한 내용은 NDIS 드라이버에 함수 역할 형식을 사용하여 함수 선언을 참조하세요.

Use_decl_annotations 대한 자세한 내용은 함수 동작에 주석을 추가를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
대상 플랫폼 Windows
헤더 ndis.h(Ndis.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

미니포트 어댑터 중단 및 다시 설정 작업 확인

MiniportInitializeEx

MiniportResetEx

NdisMRegisterMiniportDriver

NdisMSetMiniportAttributes