NDIS 프로토콜 드라이버는 현재 수신 큐 일괄 처리에 대한 할당이 완료되었음을 미니포트 드라이버에 알리기 위해 OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE OID(개체 식별자) 메서드 요청을 실행합니다.
NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버에는 각 큐에 대한 NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS 구조 뒤에 NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY 구조체에 대한 포인터가 포함됩니다. OID 메서드 요청에서 성공적으로 반환된 후 NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버에는 동일한 구조 배열에 대한 포인터가 포함되고 각 NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS 구조체의 CompletionStatus 멤버에는 각 큐의 완료 상태가 포함됩니다.
발언
OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE OID 메서드 요청은 NDIS 6.20 이상 미니포트 드라이버에 대해 선택 사항입니다. VMQ(가상 머신 큐) 인터페이스를 지원하는 미니포트 드라이버의 경우 필수입니다.
하나 이상의 수신 큐를 할당하고 선택적으로 초기 필터를 설정한 후 프로토콜 드라이버는 현재 수신 큐 일괄 처리에 대한 할당이 완료되었음을 미니포트 드라이버에 알리기 위해 OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE OID 메서드 요청을 실행해야 합니다. 이렇게 하면 미니포트 드라이버가 여러 수신 큐 간에 하드웨어 리소스의 균형을 맞출 수 있습니다. 필요한 경우 수신 큐에 공유 메모리와 같은 리소스를 할당할 수 있습니다.
미니포트 드라이버가 OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE 요청을 수신하고 큐에 설정된 필터가 있으면 큐는 실행 중 상태입니다. 이 상태에서 미니포트 드라이버는 NdisMIndicateReceiveNetBufferLists호출하여 큐의 패킷 표시를 시작할 수 있습니다.
반환 상태 코드
미니포트 드라이버는 OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE OID 메서드 요청에 대해 다음 상태 코드 중 하나를 반환합니다.
| 상태 코드 | 묘사 |
|---|---|
NDIS_STATUS_SUCCESS |
큐 할당이 완료되었습니다. 정보 버퍼에는 업데이트된 NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY 구조 및 큐 할당에 대한 완료 상태의 매개 변수 구조가 포함됩니다. |
NDIS_STATUS_PENDING |
요청이 완료 보류 중입니다. 최종 상태 코드 및 결과는 호출자의 OID 요청 완료 처리기에 전달됩니다. |
NDIS_STATUS_INVALID_PARAMETER |
오버리싱 드라이버가 제공한 하나 이상의 매개 변수가 잘못되었습니다. |
NDIS_STATUS_INVALID_LENGTH |
정보 버퍼가 너무 짧습니다. NDIS는 DATA설정합니다.METHOD_INFORMATION. NDIS_OID_REQUEST 구조체의 BytesNeeded멤버를 필요한 최소 버퍼 크기로. |
NDIS_STATUS_NOT_SUPPORTED |
미니포트 드라이버의 NDIS 버전은 버전 6.20보다 이전 버전입니다. |
NDIS_STATUS_FAILURE |
다른 이유로 인해 요청이 실패했습니다. |
요구 사항
버전 |
NDIS 6.20 이상에서 지원됩니다. |
머리글 |
Ntddndis.h(Ndis.h 포함) |
참고 항목
NdisMIndicateReceiveNetBufferLists