NDIS_SWITCH_GET_NET_BUFFER_LIST_DESTINATIONS 콜백 함수(ndis.h)
GetNetBufferListDestinations 함수는 NET_BUFFER_LIST 구조로 지정된 패킷의 Hyper-V 확장 가능한 스위치 대상 포트를 반환합니다.
구문
NDIS_SWITCH_GET_NET_BUFFER_LIST_DESTINATIONS NdisSwitchGetNetBufferListDestinations;
void NdisSwitchGetNetBufferListDestinations(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST NetBufferList,
[out] PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY *Destinations
)
{...}
매개 변수
[in] NdisSwitchContext
Hyper-V 확장 가능 스위치 확장이 연결된 확장 가능한 스위치 모듈의 핸들을 포함하는 NDIS_SWITCH_CONTEXT 값입니다. 확장이 NdisFGetOptionalSwitchHandlers를 호출하면 이 핸들은 NdisSwitchContext 매개 변수를 통해 반환됩니다.
[in, out] NetBufferList
NET_BUFFER_LIST 구조체의 연결된 목록에 대한 포인터입니다.
[out] Destinations
NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 구조체에 대한 포인터입니다. 이 구조체는 패킷의 확장 가능한 스위치 대상 포트를 지정합니다.
반환 값
호출이 성공하면 함수는 NDIS_STATUS_SUCCESS 반환합니다. 그렇지 않으면 Ndis.h에 정의된 NDIS_STATUS_Xxx 오류 코드를 반환합니다.
설명
확장 가능한 스위치 확장은 GetNetBufferListDestinations 함수를 호출하여 패킷에 대한 확장 가능한 스위치 대상 포트의 배열을 가져옵니다. 함수가 성공적으로 반환되면 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 구조체에 대한 포인터가 포함된 Destinations 매개 변수를 통해 배열을 가져옵니다. 이 배열의 각 요소는 패킷의 대상 포트를 지정하는 NDIS_SWITCH_PORT_DESTINATION 구조체로 형식이 지정됩니다.
확장이 패킷을 할당하는 경우 확장은 GetNetBufferListDestinations를 호출하기 전에 먼저 AllocateNetBufferListForwardingContext 함수를 호출해야 합니다. AllocateNetBufferListForwardingContext 함수는 패킷에 대해 확장 가능한 스위치 전달 컨텍스트를 할당합니다. 이 컨텍스트에는 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 구조를 포함하는 OOB(out-of-band) 확장 가능한 스위치 데이터가 포함됩니다.
확장 가능한 스위치 전달 컨텍스트에 대한 자세한 내용은 Hyper-V 확장 가능한 전환 전달 컨텍스트를 참조하세요.
확장에서 배열을 가져온 후 다음을 수행할 수 있습니다.
-
배열의 추가 NDIS_SWITCH_PORT_DESTINATION 요소에 대한 공간을 할당합니다.
자세한 내용은 패킷에 확장 가능한 스위치 대상 포트 데이터 추가를 참조하세요.
-
배열의 NDIS_SWITCH_PORT_DESTINATION 요소에서 대상 포트 정보를 수정합니다. 예를 들어 확장은 패킷을 전달할 포트를 지정하거나 지정된 포트로 전달되는 패킷을 제외할 수 있습니다.
자세한 내용은 패킷의 확장 가능한 스위치 원본 포트 데이터 수정을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.30 이상에서 지원됩니다. |
대상 플랫폼 | 데스크톱 |
머리글 | ndis.h(Ndis.h 포함) |
IRQL | <= DISPATCH_LEVEL |
추가 정보
AllocateNetBufferListForwardingContext