EVT_PACKET_QUEUE_START 콜백 함수(netpacketqueue.h)
EvtPacketQueueStart 콜백 함수는 클라이언트 드라이버가 패킷 큐에 대한 데이터 경로를 시작하기 위해 구현하는 선택적 콜백입니다.
통사론
EVT_PACKET_QUEUE_START EvtPacketQueueStart;
void EvtPacketQueueStart(
[_In_] NETPACKETQUEUE PacketQueue
)
{...}
매개 변수
[_In_] PacketQueue
패킷 큐에 대한 핸들입니다.
반환 값
없음
발언
선택적 콜백입니다. 이 콜백 함수를 EVT_NET_ADAPTER_CREATE_TX(RX)QUEUE 콜백에 등록합니다. NET_PACKET_QUEUE_CONFIG_INIT사용하여 구조를 초기화한 후 NET_PACKET_QUEUE_CONFIG 구조체의 적절한 멤버를 설정한 다음 NetTx(Rx)QueueCreate호출합니다.
이 콜백에서 클라이언트 드라이버는 일반적으로 해당 하드웨어가 패킷 전송 또는 수신에 필요한 정보를 구성합니다. 이 콜백은 값을 반환하지 않으므로 실패하지 않아야 하므로 클라이언트 드라이버는 큐를 만드는 동안 리소스 할당과 같은 작업을 수행해야 합니다. 따라서 이 콜백은 빠르게 실행되는 경량 함수여야 합니다.
클라이언트 드라이버는 EvtPacketQueueStart 반환될 때까지 EVT_PACKET_QUEUE_ADVANCE, EVT_PACKET_QUEUE_CANCEL또는 EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED 호출을 받지 않습니다. 또한 EvtPacketQueueStart 동일한 실행 컨텍스트에서 호출됩니다. 또는 스레드가 EvtPacketQueueAdvance, EvtPacketQueueCancel및 EvtPacketQueueSetNotificationEnabled 클라이언트 드라이버는 개별 큐 인스턴스에 대해 이러한 콜백 함수 간에 동기화할 필요가 없습니다.
큐가 시작되면 NetAdapterCx는 이 큐의 모든 링 버퍼에 대해 BeginIndex == NextIndex == 0 보장합니다. 시작 후 프레임워크는 패킷 링 버퍼에 대한 NextIndex 읽거나 쓰지 않으므로 클라이언트 드라이버는 필요에 따라 이를 사용하거나 사용하지 않도록 선택할 수 있습니다. BeginIndex 프레임워크에서 읽지만 EvtPacketQueueStart외부에서 수정되지 않습니다.
NetAdapterCx 데이터 경로 폴링 모델을 보여 주는 자세한 정보 및 다이어그램은 전송 및 수신 큐를 참조하세요.
요구 사항
요구 | 값 |
---|---|
대상 플랫폼 | 보편적 |
최소 KMDF 버전 | 1.27 |
최소 UMDF 버전 | 2.33 |
헤더 | netpacketqueue.h(netadaptercx.h 포함) |
IRQL | PASSIVE_LEVEL |
참고 항목
EVT_NET_ADAPTER_CREATE_RXQUEUE
EVT_NET_ADAPTER_CREATE_TXQUEUE