NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO 콜백 함수(ndis.h)
Hyper-V 확장은 CopyNetBufferListInfo 함수를 호출하여 원본 패킷의 NET_BUFFER_LIST 구조에서 대상 패킷의 NET_BUFFER_LIST 구조로 OOB(out-of-band) 전달 컨텍스트를 복사합니다. 이 컨텍스트에는 확장 가능한 스위치 원본 포트 및 네트워크 어댑터 정보가 포함됩니다. 확장 가능한 스위치 대상 포트 정보도 복사할 수 있습니다.
구문
NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO NdisSwitchCopyNetBufferListInfo;
NDIS_STATUS NdisSwitchCopyNetBufferListInfo(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST DestNetBufferList,
[in] PNET_BUFFER_LIST SrcNetBufferList,
[in] UINT32 Flags
)
{...}
매개 변수
[in] NdisSwitchContext
확장이 연결된 확장 가능한 스위치 모듈의 핸들을 포함하는 NDIS_SWITCH_CONTEXT 값입니다. 확장이 NdisFGetOptionalSwitchHandlers를 호출하면 이 핸들은 NdisSwitchContext 매개 변수를 통해 반환됩니다.
[in, out] DestNetBufferList
확장 가능한 스위치 전달 컨텍스트가 복사되는 대상 패킷의 NET_BUFFER_LIST 구조체에 대한 포인터입니다.
[in] SrcNetBufferList
확장 가능한 스위치 전달 컨텍스트가 복사되는 원본 패킷에 대한 NET_BUFFER_LIST 구조체에 대한 포인터입니다.
[in] Flags
UINT32 값입니다. NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS 플래그를 지정하면 함수는 확장 가능한 스위치 대상 포트를 원본 패킷에서 대상 패킷으로 복사합니다.
원본 패킷의 NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO 공용 구조체에 포함된 데이터는 항상 대상 패킷의 확장 가능한 스위치 전달 컨텍스트에 복사됩니다. 이 데이터에는 패킷이 시작된 네트워크 어댑터 연결의 원본 포트 식별자 및 인덱스가 포함됩니다. 대상 패킷에 복사되는 확장 가능한 스위치 대상 포트 수에 따라 NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO 공용 구조체의 NumAvailableDestinations 멤버가 대상 패킷에서 업데이트됩니다.
전달 컨텍스트에 대한 자세한 내용은 Hyper-V 확장 가능한 전환 전달 컨텍스트를 참조하세요.
반환 값
호출이 성공하면 함수는 NDIS_STATUS_SUCCESS 반환합니다. 그렇지 않으면 Ndis.h에 정의된 NDIS_STATUS_Xxx 오류 코드를 반환합니다.
설명
확장 가능한 스위치 확장은 CopyNetBufferListInfo 함수를 호출하여 원본 패킷에서 대상 패킷으로 OOB 데이터를 복사합니다. 이 데이터에는 다음이 포함됩니다.
- 원본 패킷의 NET_BUFFER_LIST 구조의 NetBufferListInfo 배열의 데이터입니다.
- 원본 패킷의 확장 가능한 스위치 전달 컨텍스트에서 데이터를 NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO .
-
원본 패킷의 확장 가능한 스위치 전달 컨텍스트에서 확장 가능한 스위치 대상 포트에 대한 데이터입니다.
참고 이 데이터는 NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS 플래그가 지정된 경우에만 복사됩니다.
-
확장은 먼저 원본 패킷의 NET_BUFFER_LIST 구조에서 파생된 대상 패킷에 대한 NET_BUFFER_LIST 구조를 초기화해야 합니다.
예를 들어 확장은 NdisAllocateCloneNetBufferList 를 호출하여 원본 패킷의 전체 복사본을 만들 수 있습니다. 또한 확장은 NdisAllocateFragmentNetBufferList 를 호출하여 원본 패킷 조각의 복사본만 만들 수 있습니다. 자세한 내용은 파생 NET_BUFFER_LIST 구조를 참조하세요.
- 확장은 대상 패킷에 대한 확장 가능한 스위치 전달 컨텍스트를 할당하려면 AllocateNetBufferListForwardingContext 함수를 호출해야 합니다. 이 데이터는 패킷의 원본 및 대상 포트와 같은 OOB 확장 가능한 스위치 전달 정보를 저장하는 데 사용됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.30 이상에서 지원됩니다. |
대상 플랫폼 | 데스크톱 |
머리글 | ndis.h(Ndis.h 포함) |
IRQL | <= DISPATCH_LEVEL |
추가 정보
AllocateNetBufferListForwardingContext
NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO
NdisAllocateCloneNetBufferList