각 큐에 대해 네트워크 어댑터는 다음 작업 상태 집합을 지원해야 합니다.
정의되지 않음
큐가 할당되지 않았습니다. 큐를 할당하기 위해 상위 드라이버는 OID_RECEIVE_FILTER_ALLOCATE_QUEUE OID 요청을 보냅니다.
할당된
할당된 상태는 큐의 초기 상태입니다. 큐가 할당된 상태인 경우 오버리징 드라이버는 일반적으로 OID_RECEIVE_FILTER_SET_FILTER OID를 사용하여 큐에서 필터를 설정하거나 OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE OID 요청을 사용하여 큐 할당을 완료합니다.
집합
상태에서 큐에는 하나 이상의 필터가 할당되어 있지만, 상위 드라이버가 OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE OID를 보내지 않았습니다.
실행 중
실행 상태에서 큐에 필터가 설정되고, 큐 할당이 완료되고, 미니포트 어댑터가 큐에 대한 수신 패킷을 나타냅니다.
일시 중지됨
일시 중지된 상태에서 네트워크 어댑터는 큐에 대해 수신된 네트워크 데이터를 나타내지 않습니다.
OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE OID 요청 전에 큐에 설정된 필터가 없었거나 OID_RECEIVE_FILTER_CLEAR_FILTER OID 요청으로 큐에 설정된 모든 필터를 지웠습니다.
DMA 중지됨
DMA 중지 상태에서 미니포트 드라이버가 OID_RECEIVE_FILTER_FREE_QUEUE OID 요청을 받았습니다. DMA가 중지되고 드라이버가 DMA 중지 상태 표시(NDIS_STATUS_RECEIVE_QUEUE_STATE포함)를 실행하면 드라이버가 해제 상태로 전환됩니다.
해제
해제 상태에서 미니포트 드라이버는 큐에 대한 보내기 및 수신 작업을 중지하는 데 필요한 작업을 완료하고 연결된 리소스를 해제합니다. 모든 미해결 수신 표시가 완료되면 큐가 삭제되고 큐가 정의되지 않습니다.
다음 표에서 머리글은 큐 상태를 나타냅니다. 주 이벤트는 첫 번째 열에 나열됩니다. 테이블의 나머지 항목은 이벤트가 상태 내에서 발생한 후 큐가 입력하는 다음 상태를 지정합니다. 빈 항목은 잘못된 이벤트/상태 조합을 나타냅니다.
| 이벤트 \ 상태 | 정의되지 않음 | 할당 | 집합 | 달리기 | 일시 중지 | DMA 중지 | 해방하는 |
|---|---|---|---|---|---|---|---|
OID_RECEIVE_FILTER_ALLOCATE_QUEUE - 메서드(설정) |
할당 |
||||||
OID_RECEIVE_FILTER_QUEUE_PARAMETERS - 메서드(쿼리) 요청 |
할당 |
집합 |
달리기 |
일시 중지 |
|||
OID_RECEIVE_FILTER_QUEUE_PARAMETERS - 요청 설정 |
할당 |
집합 |
달리기 |
일시 중지 |
|||
OID_RECEIVE_FILTER_SET_FILTER - 메서드(설정) 요청 |
집합 |
집합 |
달리기 |
달리기 |
|||
OID_RECEIVE_FILTER_CLEAR_FILTER - 요청 설정(마지막 필터) |
할당 |
일시 중지 |
|||||
OID_RECEIVE_FILTER_CLEAR_FILTER - 요청 설정(마지막 필터 아님) |
집합 |
달리기 |
|||||
OID_RECEIVE_FILTER_ENUM_FILTERS - 메서드 ("쿼리 요청") |
할당 |
집합 |
달리기 |
일시 중지 |
|||
OID_RECEIVE_FILTER_PARAMETERS - 메서드(쿼리) 요청 |
집합 |
달리기 |
|||||
OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE - 메서드 설정 요청 |
일시 중지 |
달리기 |
|||||
수신 패킷 |
달리기 |
||||||
OID_RECEIVE_FILTER_FREE_QUEUE 설정 요청 |
DMA 중지 |
DMA 중지 |
|||||
DMA가 중지되고 NDIS_STATUS_RECEIVE_QUEUE_STATE 상태 표시가 전송되었습니다(참고: DMA가 이미 할당됨 또는 일시 중지됨 상태에서 중지되었을 수 있습니다). |
해방하는 |
||||||
모든 수신 표시가 완료되고 큐 리소스가 해제됩니다. |
정의되지 않음 |
참고 앞의 표에 나열된 이벤트에는 상태 변경을 초래하지 않는 몇 가지 보조 이벤트가 포함됩니다. 이러한 보조 이벤트는 테이블에 포함되어 이러한 이벤트가 유효한 상태를 지정합니다.
기본 큐 이벤트는 다음과 같이 정의됩니다.
OID_RECEIVE_FILTER_ALLOCATE_QUEUE - 메서드(설정) 요청
상위 드라이버가 큐를 할당했습니다. 큐 할당에 대한 자세한 내용은 할당 및 VM 큐해제를 참조하세요.
OID_RECEIVE_FILTER_SET_FILTER - 메서드(설정) 요청
상위 드라이버가 큐에 필터를 설정했습니다. 오버리싱 드라이버가 OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE OID를 보내지 않은 경우 큐는 Set 상태입니다. 그렇지 않으면 큐가 실행 중 상태입니다. 큐에서 필터를 설정하는 방법에 대한 자세한 내용은 설정 및 VMQ 필터 지우기참조하세요.
OID_RECEIVE_FILTER_CLEAR_FILTER - 요청 설정하기
상위 드라이버가 큐에서 필터를 제거했습니다. 실행 중인 큐에서 마지막 필터가 지워진 경우 DMA를 중지할 수 있습니다. 수신 표시가 중지되고 수신된 데이터가 있는 경우 큐를 지워야 합니다. 큐에서 필터를 지우는 방법에 대한 자세한 내용은 설정 및 VMQ 필터 지우기참조하세요.
OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE - 메서드(집합) 요청
상위 드라이버가 큐 할당을 완료했습니다. 큐에 설정된 필터가 있는 경우 실행 중 상태이며 수신 표시가 시작될 수 있습니다. 큐 할당을 완료하는 방법에 대한 자세한 내용은 VM 큐 할당 및 해제를참조하세요.
수신 패킷
미니포트 드라이버는 실행 중인 상태에 있는 큐에 대한 수신 패킷만 나타낼 수 있습니다. 큐에 대해 수신된 데이터를 나타내는 방법에 대한 자세한 내용은 VMQ 보내기 및 받기 작업참조하세요.
OID_RECEIVE_FILTER_FREE_QUEUE 요청을 설정합니다.
상위 드라이버가 큐를 해제했습니다. 드라이버가 DMA 중지 상태 표시(NDIS_STATUS_RECEIVE_QUEUE_STATE)를 발행하면, 드라이버가 해제 상태로 전환됩니다. 모든 미해결 수신 신호가 완료되고 큐 리소스가 해제되면, 큐는 정의되지 않은 상태입니다.