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와 같은 실행 컨텍스트 또는 스레드에서 호출되므로 클라이언트 드라이버는 개별 큐 instance 대해 이러한 콜백 함수 간에 동기화할 필요가 없습니다.
큐가 시작되면 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