NdisMCoIndicateReceiveNetBufferLists 함수(ndis.h)
NdisMCoIndicateReceiveNetBufferLists 함수는 미니포트 드라이버가 네트워크에서 데이터를 수신했음을 나타냅니다.
구문
void NdisMCoIndicateReceiveNetBufferLists(
[in] IN NDIS_HANDLE NdisVcHandle,
[in] IN PNET_BUFFER_LIST NetBufferLists,
[in] IN ULONG NumberOfNetBufferLists,
[in] IN ULONG CoReceiveFlags
);
매개 변수
[in] NdisVcHandle
VC(가상 연결)를 식별하는 핸들입니다. 미니포트 드라이버는 클라이언트가 나가는 호출을 설정할 때 또는 호출 관리자가 들어오는 호출 알림을 나타내기 위해 클라이언트 등록 SAP(서비스 액세스 지점)에 대한 VC를 만들 때 MiniportCoCreateVc 함수에 대한 입력 매개 변수로 이 핸들을 얻었습니다.
[in] NetBufferLists
미니포트 드라이버가 할당한 NET_BUFFER_LIST 구조체의 연결된 목록입니다.
[in] NumberOfNetBufferLists
NetBufferLists에서 지정하는 연결된 구조 목록에 있는 NET_BUFFER_LIST 구조체의 수입니다.
[in] CoReceiveFlags
보내기 작업에 대한 특성을 정의하는 플래그입니다. 플래그를 비트 OR 연산과 결합할 수 있습니다. 모든 플래그를 지우려면 이 매개 변수를 0으로 설정합니다. NdisMCoIndicateReceiveNetBufferLists는 다음 플래그를 지원합니다.
NDIS_RECEIVE_FLAGS_DISPATCH_LEVEL
현재 IRQL이 DISPATCH_LEVEL. 이 플래그에 대한 자세한 내용은 디스패치 IRQL 추적을 참조하세요.
NDIS_RECEIVE_FLAGS_RESOURCES
미니포트 드라이버는 NdisMCoIndicateReceiveNetBufferLists 가 반환된 직후 NET_BUFFER_LIST 구조체 및 연결된 모든 NET_BUFFER 구조체의 소유권을 회수합니다.
반환 값
없음
설명
미니포트 드라이버는 일반적으로 MiniportInterruptDPC 함수에서 NdisMCoIndicateReceiveNetBufferLists 함수를 호출합니다. 미니포트 드라이버가 NdisMCoIndicateReceiveNetBufferLists를 호출하는 경우 NetBufferLists 매개 변수의 NET_BUFFER_LIST 구조 목록을 지정합니다. 그런 다음 NDIS는 바인딩된 프로토콜 드라이버에 NET_BUFFER_LIST 구조를 전달합니다.
미니포트 드라이버는 NDIS가 NET_BUFFER_LIST 구조를 올바른 미니포트 드라이버로 반환할 수 있도록 각 NET_BUFFER_LIST 구조체의 SourceHandle 멤버를 NdisVcHandle 매개 변수와 동일한 값으로 설정해야 합니다.
미니포트 드라이버 가 NdisMCoIndicateReceiveNetBufferLists 를 호출하고 CoReceiveFlags 매개 변수에서 NDIS_RECEIVE_FLAGS_RESOURCES 플래그를 지우면 NDIS는 NetBufferLists 가 지정하는 NET_BUFFER_LIST 구조를 미니포트 드라이버의 MiniportReturnNetBufferLists 함수에 반환합니다. 이 경우 미니포트 드라이버는 NDIS가 NET_BUFFER_LIST 구조를 미니포트 드라이버의 MiniportReturnNetBufferLists 함수에 반환할 때까지 NET_BUFFER_LIST 구조를 회수해서는 안 됩니다.
미니포트 드라이버가 NdisMCoIndicateReceiveNetBufferLists 를 호출하고 CoReceiveFlags 매개 변수에서 NDIS_RECEIVE_FLAGS_RESOURCES 플래그를 설정하는 경우 미니포트 드라이버는 즉시 NET_BUFFER_LIST 구조체의 소유권을 되찾아야 합니다. 이 경우 NDIS는 미니포트 드라이버의 MiniportReturnNetBufferLists 함수를 호출하여 NET_BUFFER_LIST 구조를 반환하지 않습니다. 대신 NDIS는 NdisMCoIndicateReceiveNetBufferLists 가 반환되면 미니포트 드라이버에 NET_BUFFER_LIST 구조를 반환합니다. 미니포트 드라이버는 NdisMCoIndicateReceiveNetBufferLists 가 반환된 직후에 NET_BUFFER_LIST 구조를 회수해야 합니다. NET_BUFFER_LIST 구조를 회수하기 위해 미니포트 드라이버는 자체 MiniportReturnNetBufferLists 함수를 호출할 수 있습니다.
미니포트 드라이버가 CoReceiveFlags 매개 변수에서 NDIS_RECEIVE_FLAGS_RESOURCES 플래그를 설정하는 경우 프로토콜 드라이버는 네트워크 데이터를 복사하고 NET_BUFFER_LIST 구조를 미니포트 드라이버로 해제해야 합니다. 불필요한 복사를 방지하기 위해 미리 할당된 NET_BUFFER_LIST 구조로 미니포트 드라이버를 디자인해야 합니다.
NdisMCoIndicateReceiveNetBufferLists의 호출자는 NET_BUFFER_LIST 구조체, 연결된 NET_BUFFER 구조 및 연결된 모든 MDL(메모리 설명자 목록)을 제대로 초기화해야 합니다.
요구 사항
| 지원되는 최소 클라이언트 | NDIS 6.0 이상에서 지원됩니다. |
| 대상 플랫폼 | 데스크톱 |
| 머리글 | ndis.h(Ndis.h 포함) |
| 라이브러리 | Ndis.lib |
| IRQL | <= DISPATCH_LEVEL |
| DDI 규정 준수 규칙 | Irql_MCO_Function(ndis) |
참고 항목
피드백
다음에 대한 사용자 의견 제출 및 보기