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 구조를 반환하지 않습니다. 대신 NdisMCoIndicateReceiveNetBufferLists 가 반환되면 NDIS는 미니포트 드라이버에 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)

추가 정보

MiniportCoCreateVc

MiniportInterruptDPC

MiniportReturnNetBufferLists

NET_BUFFER

NET_BUFFER_LIST