NdisMRegisterInterruptEx 함수(ndis.h)

NDIS 미니포트 드라이버는 NdisMRegisterInterruptEx 함수를 호출하여 인터럽트를 등록합니다.

구문

NDIS_STATUS NdisMRegisterInterruptEx(
  [in]  NDIS_HANDLE                              MiniportAdapterHandle,
  [in]  NDIS_HANDLE                              MiniportInterruptContext,
  [in]  PNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS MiniportInterruptCharacteristics,
  [out] PNDIS_HANDLE                             NdisInterruptHandle
);

매개 변수

[in] MiniportAdapterHandle

NDIS가 에 전달한 미니포트 어댑터 핸들 MiniportInitializeEx 함수입니다.

[in] MiniportInterruptContext

컨텍스트 정보 블록에 대한 포인터입니다. 미니포트 드라이버는 인터럽트 정보를 저장하기 위해 이 메모리를 할당합니다. NDIS는 인터럽트와 연결된 다른 함수에 대한 후속 호출에서 컨텍스트 정보 블록을 전달합니다.

[in] MiniportInterruptCharacteristics

에 대한 포인터 미니 포트 드라이버가 만든 구조체를 NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS. 드라이버는 인터럽트 특성을 정의하는 처리기 진입점 및 구성 매개 변수를 사용하여 이 구조를 초기화합니다.

[out] NdisInterruptHandle

NDIS 핸들에 대한 포인터입니다. NDIS는 새로 만든 인터럽트 개체의 핸들을 NdisInterruptHandle 포인터가 지정하는 주소에 씁니다.

반환 값

NdisMRegisterInterruptEx 는 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
NDIS_STATUS_SUCCESS
NDIS는 인터럽트 개체를 초기화하고 NdisInterruptHandle 에서 유효한 인터럽트 핸들을 제공했습니다. NDIS는 하드웨어 리소스를 클레임하고 인터럽트 발생 시 호출하는 함수를 설정합니다.
NDIS_STATUS_RESOURCES
리소스가 부족하여 NdisMRegisterInterruptEx가 실패했습니다.
NDIS_STATUS_XXX 또는 NT_STATUS_XXX
인터럽트 개체를 초기화하지 못한 이유는 앞의 목록과 다른 이유로 인해 실패했습니다.

설명

미니포트 드라이버는 인터럽트를 생성하는 NIC를 관리하는 경우 MiniportInitializeEx 함수에서 NdisMRegisterInterruptEx를 호출해야 합니다.

MiniportInitializeEx는 다음을 호출해야 합니다.NdisMRegisterInterruptEx를 호출하기 전에 NdisMSetMiniportAttributes 함수가 작동합니다.

미니포트 드라이버는 다음 인터럽트 서비스 함수에 대한 진입점을 지정해야 합니다.

MiniportInterrupt

MiniportInterruptDPC

MiniportDisableInterruptEx

MiniportEnableInterruptEx

NIC가 MSI(메시지 신호 인터럽트)를 지원하는 경우 미니포트 드라이버는 다음 MSI 서비스 함수에 대한 진입점을 지정해야 합니다.

MiniportMessageInterrupt

MiniportMessageInterruptDPC MiniportDisableMessageInterrupt MiniportEnableMessageInterrupt

드라이버가 MSI의 진입점을 지정하는 경우 MSI가 아닌 인터럽트 서비스 함수에 대한 진입점도 지정해야 합니다. 또한 NdisMRegisterInterruptEx 가 NDIS_STATUS_SUCCESS 반환하는 경우 드라이버는 의 InterruptType 멤버 값을 검사해야 합니다.NDIS가 부여한 인터럽트 유형을 결정하는 구조체를 NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS. NDIS가 MSI 지원을 부여할 수 없는 경우 줄 기반 인터럽트 지원을 부여합니다.

NIC에서 인터럽트를 사용하도록 설정하면 드라이버가 NdisMRegisterInterruptEx를 호출한 후 NdisMRegisterInterruptEx가 반환되기 전에 드라이버의 MiniportInterrupt(또는 MiniportMessageInterrupt) 함수를 언제든지 호출할 수 있습니다. 따라서 드라이버는 인터럽트를 처리할 준비가 될 때까지 NdisMRegisterInterruptEx 를 호출하지 않아야 합니다.

드라이버는 다음을 호출합니다. NdisMDeregisterInterruptEx 함수는 이전에 NdisMRegisterInterruptEx로 할당된 리소스를 해제합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
대상 플랫폼 유니버설
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 Init_DeRegisterInterrupt(ndis), Init_RegisterInterrupt(ndis), Irql_Interrupt_Function(ndis), NdisMDeregisterInterruptEx(ndis)

추가 정보

MiniportDisableInterruptEx

MiniportDisableMessageInterrupt

MiniportEnableInterruptEx

MiniportEnableMessageInterrupt

MiniportInitializeEx

MiniportInterrupt

MiniportInterruptDPC

MiniportMessageInterrupt

MiniportMessageInterruptDPC

NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS

NdisMDeregisterInterruptEx

NdisMSetMiniportAttributes