NdisMQueueDpc 함수(ndis.h)

NDIS 미니포트 드라이버는 NdisMQueueDpc 함수를 호출하여 CPU에서 DPC 호출을 예약합니다.

구문

ULONG NdisMQueueDpc(
  [in]           NDIS_HANDLE NdisInterruptHandle,
  [in]           ULONG       MessageId,
  [in]           ULONG       TargetProcessors,
  [in, optional] PVOID       MiniportDpcContext
);

매개 변수

[in] NdisInterruptHandle

미니포트 드라이버가 에 대한 이전 호출에서 얻은 인터럽트 핸들 NdisMRegisterInterruptEx 함수입니다.

[in] MessageId

DPC에 대한 MSI 메시지 ID입니다. DPC가 줄 기반 인터럽트용인 경우 이 매개 변수는 사용되지 않으며 0으로 설정해야 합니다. 그렇지 않으면 MessageId 는 에 대한 인덱스입니다. IO_INTERRUPT_MESSAGE_INFO_ENTRY 구조체 IO_INTERRUPT_MESSAGE_INFO 구조체입니다. 드라이버가 NdisMRegisterInterruptEx 함수를 사용하여 MSI에 성공적으로 등록되면 NDIS는 MessageInfoTable 멤버의 연결된 IO_INTERRUPT_MESSAGE_INFO 구조체에 대한 포인터를 전달합니다.

[in] TargetProcessors

NDIS가 DPC를 예약해야 하는 대상 프로세서를 나타내는 비트맵입니다. TargetProcessors의 각 비트는 CPU를 식별합니다. 호출자가 비트 0을 설정하는 경우 NDIS는 CPU 0용 DPC를 예약합니다. 호출자가 비트 1을 설정하는 경우 NDIS는 CPU 1 등에 대한 DPC를 예약합니다.

[in, optional] MiniportDpcContext

호출자가 지정한 컨텍스트 영역에 대한 포인터입니다. NDIS는 MiniportInterruptDPC 및 의 MiniportDpcContext 매개 변수에 이 포인터를 전달합니다. MiniportMessageInterruptDPC 함수.

반환 값

NdisMQueueDpc 는 NDIS가 DPC를 성공적으로 예약한 대상 프로세서를 나타내는 비트맵을 반환합니다. 반환 값의 각 비트는 CPU를 식별합니다. NDIS가 비트 0을 설정하는 경우 NDIS는 CPU 0용 DPC를 예약했습니다. NDIS가 비트 1을 설정하는 경우 NDIS는 CPU 1용 DPC 등을 예약했습니다.

드라이버가 CPU에 대해 DPC를 요청했고 NDIS가 해당 DPC를 예약하지 않았음을 나타내는 경우 DPC가 해당 CPU에 대해 이미 예약되었기 때문에 DPC가 예약되지 않았습니다.

설명

NDIS는 MiniportInterruptDPC 또는 를 호출합니다. MiniportMessageInterruptDPC - 인터럽트의 지연된 처리를 완료합니다. 미니포트 드라이버는 NdisMQueueDpc 를 호출하여 다른 프로세서에 대한 추가 DPC 호출을 요청할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.0 및 6.1에서 지원됩니다. NDIS 6.20 이상에서는 NdisMQueueDpcEx를 사용합니다.
대상 플랫폼 유니버설
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL 모든 수준

추가 정보

MiniportInterruptDPC

MiniportMessageInterruptDPC

NdisMQueueDpcEx

NdisMRegisterInterruptEx