NdisMIndicateStatus 함수(ndis.h)
참고 NDIS 5. x 더 이상 사용되지 않으며 NDIS 6으로 대체됩니다. x . 새로운 NDIS 드라이버 개발은 Windows Vista 시작하는네트워크 드라이버를 참조하세요. NDIS 5 포팅에 대한 자세한 내용입니다. x 드라이버를 NDIS 6에. x NDIS 5.x 드라이버를 NDIS 6.0 참조하세요.
NdisMIndicateStatus NIC의 상태가 상위 수준 NDIS 드라이버로 변경되었음을 나타냅니다.
통사론
void NdisMIndicateStatus(
[in] NDIS_HANDLE MiniportHandle,
[in] NDIS_STATUS GeneralStatus,
[in] PVOID StatusBuffer,
[in] UINT StatusBufferSize
);
매개 변수
[in] MiniportHandle
[in] GeneralStatus
NIC에 대한 일반적인 상태 변경을 나타내는 NDIS_STATUS_ XXX 값을 지정합니다.
[in] StatusBuffer
GeneralStatus값에 따라 달라지는 데이터를 포함하는 호출자 할당 버퍼에 대한 포인터입니다. 상태 변경에 대한 자세한 정보를 나타냅니다.
[in] StatusBufferSize
StatusBuffer버퍼의 크기(바이트)를 지정합니다.
반환 값
없음
발언
미니포트 드라이버가 NdisMIndicateStatus호출하면 NDIS는 각 바인딩된 프로토콜의 ProtocolStatus 함수를 호출합니다. 이렇게 하면 바인딩된 프로토콜 드라이버 또는 구성 관리자가 기본 NIC의 상태 변경을 기록하거나 수정 작업을 수행할 수 있습니다. 예를 들어 프로토콜은 표시된 NDIS_STATUS_ XXX 따라 NdisReset호출할 수 있습니다.
미니포트 드라이버가 NdisMIndicateStatus 호출하여 NIC 상태의 변경 사항을 보고하는 경우 NDIS는 MiniportReset 함수를 호출하여 NIC를 작업 상태로 복원할 수 있습니다. 이러한 상황에서 NDIS는 미니포트 드라이버에서 나타내는 GeneralStatus 아닌 NDIS_STATUS_RESET_START 이상에서만 NDIS_STATUS_RESET_END 사용하여 바인딩된 프로토콜을 호출할 수 있습니다.
NdisMIndicateStatus 두 가지 정보를 제공합니다.
- 상태의 일반적인 변경을 나타내는 전체 상태 값입니다.
- 네트워크별일 수 있는 일반적인 변경의 특정 이유입니다. 예를 들어 링 삽입 오류는 토큰 링(802.5) 네트워크와 관련이 있지만 이더넷(802.3) NIC 및 해당 드라이버와는 관련이 없습니다.
또한 미니포트 드라이버는 NdisMIndicateStatus 호출하여 실수로 제거한 후 다시 삽입된 케이블 또는 일시적으로 실패한 링과 같은 문제를 나타낼 수 있습니다. 예를 들어 다음 조건이 모두 발생한다고 가정합니다.
미니포트 드라이버는 NDIS_STATUS_RING_STATUS NdisMIndicateStatus 호출합니다.
StatusBuffer 다음 상태 값 중 하나를 포함합니다.
- NDIS_RING_LOBE_WIRE_FAULT
- NDIS_RING_HARD_ERROR NDIS_RING_SIGNAL_LOSS
이러한 상태 변경 신호가 표시되면 연결된 임계값 또는 통계 카운터는 변경되지 않은 상태로 유지됩니다.
미니포트 드라이버는 MiniportISR, MiniportHalt또는 MiniportShutdown 함수의 컨텍스트에서 NdisMIndicateStatus 호출할 수 없습니다. 역직렬화된 미니포트 드라이버만 MiniportInitialize 함수의 컨텍스트에서 NdisMIndicateStatus 호출할 수 있습니다.
미니포트 드라이버는 NdisMIndicateStatus호출하기 전에 보유하고 있는 스핀 잠금을 해제해야 합니다.
NdisMIndicateStatus 직렬화된 호출자는 IRQL = DISPATCH_LEVEL 실행해야 합니다. NdisMIndicateStatus 역직렬화된 호출자는 IRQL <= DISPATCH_LEVEL 실행해야 합니다.
네트워크 연결 손실 및 복원을 나타냅니다.
미니포트 드라이버가 네트워크 연결이 끊어졌는지 감지하면 NDIS_STATUS_MEDIA_DISCONNECT NdisMIndicateStatus 호출해야 합니다. 연결이 복원되면 미니포트 드라이버는 NDIS_STATUS_MEDIA_CONNECT NdisMIndicateStatus 호출해야 합니다.
참고 802.11 미니포트 드라이버는 네트워크 연결 표시를 생성할 때 무선 란에 대한 미디어 상태 지침을 따라야 합니다. 이러한 지침에 대한 자세한 내용은 802.11 네트워크 대한미디어 상태 표시를 참조하세요.
NdisMIndicateStatus 무선 LAN 미니포트 드라이버 호출
802.11 WLAN(무선 LAN) 미니포트 드라이버는 WLAN 미디어와 관련된 다양한 표시를 할 수 있습니다. 예를 들어 미니포트 드라이버는 다음이 발생할 때 WLAN 관련 표시를 할 수 있습니다.
- 드라이버는 현재 BSS 연결의 수신된 신호 강도가 변경되었음을 감지합니다.
- 드라이버는 수신된 패킷에서 TKIP MIC 오류를 감지합니다.
NdisMIndicateStatus 802.11 미니포트 드라이버에서 다음과 같은 유형의 WLAN 관련 표시를 수행할 수 있습니다.
- RSSI 표시
- 인증 표시
- PMKID 후보 목록 표시
- 미디어 스트리밍 표시
- 라디오 상태 표시
이러한 미디어 관련 표시에 대한 자세한 내용은 802.11 Media-Specific 상태 표시참조하세요.
WAN 미니포트 드라이버가 NdisMIndicateStatus 호출
대부분의 WAN NIC 드라이버는 일부 특수 상태 코드 및 버퍼 내용이 있는 상태를 나타냅니다. 이러한 상태 표시는 WAN NIC 드라이버에 의해 생성되며, 이러한 미니포트 드라이버에 바인딩된 NDIS 프로토콜 드라이버는 이러한 표시를 무시할 수 있습니다. 그러나 이러한 표시를 올바르게 처리하면 일반적으로 프로토콜 및 WAN NIC 드라이버의 성능이 향상됩니다.
NdisMIndicateStatus사용하여 바인딩된 프로토콜 드라이버에 다음과 같은 4가지 유형의 WAN 관련 표시를 보낼 수 있습니다.
- 줄 바꿈
- 줄 아래로
- 조각
- TAPI 줄 이벤트
NDIS_STATUS_WAN_LINE_UP
WAN 미니포트 드라이버는 새 링크가 활성화될 때마다 라인업 표시를 합니다. 이 경우 NIC는 프레임을 수락하고 성공 또는 실패할 수 있지만 실제로 원격 노드에서 수신될 가능성은 낮습니다. 이 문제가 발생할 때까지 프로토콜은 타이머를 줄이고 재시도 횟수를 줄여 나가는 연결 시도를 신속하게 실패시켜야 합니다.
WAN 미니포트 드라이버는 OID_TAPI_GET_ID 요청에서 반환되기 전에 NdisMIndicateStatus 사용하여 이 표시를 수행합니다.
라인업 표시의 상태 코드가 NDIS_STATUS_WAN_LINE_UP. StatusBuffer 버퍼의 형식은 NDIS_MAC_LINE_UP 구조체로 지정됩니다.
NDIS_STATUS_WAN_LINE_DOWN
WAN 미니포트 드라이버는 링크가 다운 될 때마다 라인다운 표시를 합니다. 이 경우 바인딩된 프로토콜은 타이머를 줄이고 다음 라인업 표시까지 재시도 횟수를 줄여야 합니다.
줄 바꿈 표시의 상태 코드가 NDIS_STATUS_WAN_LINE_DOWN. StatusBuffer 버퍼의 형식은 NDIS_MAC_LINE_DOWN 구조체로 지정됩니다.
NDIS_STATUS_WAN_FRAGMENT
WAN 미니포트 드라이버는 원격 노드에서 부분 패킷을 받을 때마다 조각을 표시합니다. 이 경우 바인딩된 프로토콜은 시간 초과가 발생할 때까지 기다리지 않고 이 상황을 알리는 프레임을 원격 노드로 보내야 합니다.
조각 표시의 상태 코드가 NDIS_STATUS_WAN_FRAGMENT. StatusBuffer 버퍼의 형식은 NDIS_MAC_FRAGMENT 구조체로 지정됩니다.
NDISWAN은 각 링크의 조각 표시 수를 계산하여 삭제된 패킷을 모니터링합니다.
NDIS_TAPI_EVENT
WAN 미니포트 드라이버는 TAPI 상태 표시에 GeneralStatus 값을 NDIS_STATUS_TAPI_INDICATION 사용해야 합니다.StatusBuffer 버퍼의 형식은 NDIS_TAPI_EVENT 구조체로 지정됩니다.
- 대상 플랫폼: 유니버설
- 버전: Windows Vista에서 NDIS 6.0 드라이버에 대해 지원되지 않습니다. 대신 NdisMIndicateStatusEx사용합니다. Windows Vista 및 Windows XP에서 NDIS 5.1 드라이버에 대해 지원됩니다.
요구 사항
요구 | 값 |
---|---|
헤더 | ndis.h(Ndis.h 포함) |
라이브러리 | Ndis.lib |