NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS 구조체(ndis.h)
NDIS 미니포트 드라이버는 NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS 구조체에서 인터럽트 특성을 정의하고 구조체를 NdisMRegisterInterruptEx 함수입니다.
통사론
typedef struct _NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS {
NDIS_OBJECT_HEADER Header;
MINIPORT_ISR_HANDLER InterruptHandler;
MINIPORT_INTERRUPT_DPC_HANDLER InterruptDpcHandler;
MINIPORT_DISABLE_INTERRUPT_HANDLER DisableInterruptHandler;
MINIPORT_ENABLE_INTERRUPT_HANDLER EnableInterruptHandler;
BOOLEAN MsiSupported;
BOOLEAN MsiSyncWithAllMessages;
MINIPORT_MSI_ISR_HANDLER MessageInterruptHandler;
MINIPORT_MSI_INTERRUPT_DPC_HANDLER MessageInterruptDpcHandler;
MINIPORT_DISABLE_MSI_INTERRUPT_HANDLER DisableMessageInterruptHandler;
MINIPORT_ENABLE_MSI_INTERRUPT_HANDLER EnableMessageInterruptHandler;
NDIS_INTERRUPT_TYPE InterruptType;
PIO_INTERRUPT_MESSAGE_INFO MessageInfoTable;
} NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS, *PNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS;
회원
Header
NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS 구조체의 NDIS_OBJECT_HEADER 구조체입니다. Header 지정하는 구조체의 Type 멤버를 NDIS_OBJECT_TYPE_MINIPORT_INTERRUPT, Revision 멤버를 NDIS_MINIPORT_INTERRUPT_REVISION_1, Size 멤버를 NDIS_SIZEOF_MINIPORT_INTERRUPT_CHARACTERISTICS_REVISION_1 설정합니다.
InterruptHandler
이 인터럽트와 연결된 MiniportInterrupt 함수의 진입점입니다.
InterruptDpcHandler
이 인터럽트와 연결된 MiniportInterruptDPC 함수의 진입점입니다.
DisableInterruptHandler
에 대한 진입점 MiniportDisableInterruptEx 함수입니다.
EnableInterruptHandler
에 대한 진입점 MiniportEnableInterruptEx 함수입니다.
MsiSupported
미니포트 드라이버가 MSI(메시지 신호 인터럽트) 서비스 함수를 지원하는 경우 이 멤버를 TRUE 설정합니다. 미니포트 드라이버는 MSI 서비스 함수에 대한 진입점을 제공해야 합니다.
이 값을 FALSE 설정하면 MSI가 지원되지 않음을 나타냅니다. MSI 서비스 함수 진입점은 NULL 설정해야 합니다.
MsiSyncWithAllMessages
미니포트 드라이버가 모든 MSI 서비스 함수를 직렬화해야 하는 경우 이 멤버를 TRUE 설정합니다.
이 값을 TRUE 설정하면 인터럽트 성능이 저하됩니다. 여러 메시지를 처리하는 여러 인터럽트 서비스 함수가 동시에 실행되는 것이 더 효율적입니다.
MessageInterruptHandler
에 대한 진입점 MiniportMessageInterrupt 함수가 있는 경우 이 인터럽트와 연결된 함수입니다. 드라이버가 메시지 인터럽트(interrupts)를 지원하지 않는 경우 이 멤버를 NULL 설정합니다.
MessageInterruptDpcHandler
에 대한 진입점 MiniportMessageInterruptDPC 이 인터럽트와 연결된 함수(있는 경우)입니다. 드라이버가 메시지 신호 인터럽트(interrupts)를 지원하지 않는 경우 이 멤버를 NULL 설정합니다.
DisableMessageInterruptHandler
에 대한 진입점 MiniportDisableMessageInterrupt 함수(있는 경우)입니다. 드라이버가 메시지 신호 인터럽트(인터럽트)를 지원하지 않는 경우 이 멤버를 NULL 설정합니다.
EnableMessageInterruptHandler
에 대한 진입점 MiniportEnableMessageInterrupt 함수(있는 경우)입니다. 드라이버가 메시지 신호 인터럽트(interrupts)를 지원하지 않는 경우 이 멤버를 NULL 설정합니다.
InterruptType
NDIS_INTERRUPT_TYPE형식의 변수입니다. NDIS는 미니포트 드라이버에 부여한 인터럽트 종류를 나타내도록 이 변수를 설정합니다. 드라이버가 MSI를 지원하는 경우 NdisMRegisterInterruptEx NDIS_STATUS_SUCCESS 반환하는 경우 이 값을 확인해야 합니다. InterruptTypeNDIS_CONNECT_LINE_BASED설정된 경우 NDIS는 드라이버가 메시지 신호 인터럽트를 지원하는 경우에도 발생할 수 있는 줄 기반 인터럽트를 드라이버에 부여했습니다. InterruptTypeNDIS_CONNECT_MESSAGE_BASED설정된 경우 NDIS는 드라이버에 메시지 신호 인터럽트를 부여합니다. 이 경우 드라이버는 MessageInfoTable 액세스하여 인터럽트 정보를 가져올 수 있습니다.
MessageInfoTable
NDIS 제공 포인터 IO_INTERRUPT_MESSAGE_INFO 구조체입니다.
- InterruptTypeNDIS_CONNECT_MESSAGE_BASED경우 NDIS는 인터럽트에 대한 정보를 사용하여 IO_INTERRUPT_MESSAGE_INFO 구조를 초기화하고 MessageInfoTable 구조체에 대한 포인터로 설정합니다. 미니포트 드라이버는 구조를 수정하지 않아야 합니다.
- InterruptTypeNDIS_CONNECT_LINE_BASED경우 messageInfoTable NULL이어야 합니다.
발언
미니포트 드라이버는 NdisMRegisterInterruptEx 함수를 호출하여 인터럽트를 등록합니다. 드라이버는 인터럽트 특성 및 처리기 진입점을 지정하기 위해 NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS 구조를 할당하고 초기화하고 구조를 NdisMRegisterInterruptEx전달합니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.0 이상에서 지원됩니다. |
헤더 | ndis.h(Ndis.h 포함) |