NdisMSynchronizeWithInterruptEx 함수(ndis.h)
미니포트 드라이버는 NdisMSynchronizeWithInterruptEx 함수를 호출하여 미니포트 드라이버 제공 함수의 실행을 MiniportInterrupt 함수와 동기화합니다.
구문
BOOLEAN NdisMSynchronizeWithInterruptEx(
[in] NDIS_HANDLE NdisInterruptHandle,
[in] ULONG MessageId,
[in] MINIPORT_SYNCHRONIZE_INTERRUPT_HANDLER SynchronizeFunction,
[in] PVOID SynchronizeFunction,
[in] PVOID SynchronizeContext
);
매개 변수
[in] NdisInterruptHandle
미니포트 드라이버가 에 대한 이전 호출에서 얻은 인터럽트 핸들 NdisMRegisterInterruptEx 함수입니다.
[in] MessageId
드라이버가 동기화해야 하는 메시지 신호 인터럽트입니다. NDIS가 드라이버에 대한 신호 인터럽트 메시지를 부여하지 않은 경우 NDIS는 이 매개 변수를 무시합니다. MessageId 는 에 대한 인덱스입니다. IO_INTERRUPT_MESSAGE_INFO_ENTRY 구조체 IO_INTERRUPT_MESSAGE_INFO 구조체입니다. 드라이버가 NdisMRegisterInterruptEx 함수를 사용하여 MSI에 성공적으로 등록되면 NDIS는 MessageInfoTable 멤버의 연결된 IO_INTERRUPT_MESSAGE_INFO 구조체에 대한 포인터를 전달합니다.
[in] SynchronizeFunction
드라이버의 진입점 MiniportSynchronizeInterrupt 함수입니다.
[in] SynchronizeFunction
드라이버의 진입점 MiniportSynchronizeInterrupt 함수입니다.
[in] SynchronizeContext
SynchronizeContext 의 MiniportSynchronizeInterrupt 함수에 전달되는 미니포트 드라이버 결정 컨텍스트 영역에 대한 포인터입니다.
반환 값
NdisMSynchronizeWithInterruptEx 는 MiniportSynchronizeInterrupt 가 반환하는 부울 값을 반환합니다.
설명
NdisMRegisterInterruptEx에 인터럽트를 등록하는 미니포트 드라이버는 NdisMSynchronizeWithInterruptEx를 사용합니다. 에 있는 값입니다. MiniportSynchronizeInterrupt 함수 반환은 NdisMSynchronizeWithInterruptEx에서도 반환됩니다. 이 전파된 값은 호출자에게 상태 제공합니다.
DIRQL에서 실행되는 다른 드라이버 함수와 리소스를 공유하는 모든 미니포트 드라이버 함수는 NdisMSynchronizeWithInterruptEx 를 사용하여 해당 리소스에 대한 액세스를 동기화해야 합니다. MiniportSynchronizeInterrupt 함수는 DIRQL에서도 실행되며 공유 리소스는 시스템 할당 스핀 잠금으로 보호됩니다. 따라서 공유 리소스는 MiniportInterrupt 함수 및 호출자에 의해 동시 액세스로부터 보호됩니다.
NdisMSynchronizeWithInterruptEx 는 시스템 스핀 잠금을 해제하고 제어를 반환하기 전에 호출자의 원래 IRQL을 복원합니다.
NDIS 스핀 잠금을 획득하고 해제하는 방법에 대한 자세한 내용은 네트워크 드라이버의 동기화 및 알림을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.0 이상에서 지원됩니다. |
대상 플랫폼 | 유니버설 |
헤더 | ndis.h(Ndis.h, Video.h 포함) |
라이브러리 | Ndis.lib |
IRQL | <= DIRQL |
DDI 규정 준수 규칙 | NdisMDeregisterInterruptEx(ndis) |