NDIS_SWITCH_ALLOCATE_NET_BUFFER_LIST_FORWARDING_CONTEXT 콜백 함수(ndis.h)
AllocateNetBufferListForwardingContext 함수는 확장 가능한 스위치 내에서 보내기 또는 받기 작업을 위한 NET_BUFFER_LIST 구조를 준비합니다.
구문
NDIS_SWITCH_ALLOCATE_NET_BUFFER_LIST_FORWARDING_CONTEXT NdisSwitchAllocateNetBufferListForwardingContext;
NDIS_STATUS NdisSwitchAllocateNetBufferListForwardingContext(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST NetBufferList
)
{...}
매개 변수
[in] NdisSwitchContext
Hyper-V 확장 가능 스위치 확장이 연결된 확장 가능한 스위치 모듈의 핸들을 포함하는 NDIS_SWITCH_CONTEXT 값입니다. 확장이 NdisFGetOptionalSwitchHandlers를 호출하면 이 핸들은 NdisSwitchContext 매개 변수를 통해 반환됩니다.
[in, out] NetBufferList
NET_BUFFER_LIST 구조체의 연결된 목록에 대한 포인터입니다.
반환 값
호출이 성공하면 함수는 NDIS_STATUS_SUCCESS 반환합니다. 그렇지 않으면 Ndis.h에 정의된 NDIS_STATUS_Xxx 오류 코드를 반환합니다.
설명
확장 가능한 스위치 확장은 확장 가능한 스위치 데이터 경로 내에서 패킷 보내기 작업을 발생시킬 수 있습니다. 예를 들어 확장은 확장 가능한 스위치의 모든 포트에 패킷을 보낼 수 있습니다. 이 데이터 경로에 대한 자세한 내용은 Hyper-V 확장 가능 스위치 데이터 경로를 참조하세요.
확장이 NdisAllocateNetBufferList 또는 NdisAllocateCloneNetBufferList 를 호출하여 NET_BUFFER_LIST 풀에서 패킷을 만들거나 복제한 후 확장은 AllocateNetBufferListForwardingContext 함수를 호출해야 합니다. 이 함수는 지정된 NET_BUFFER_LIST 구조체에 대한 OOB(out-of-band) 확장 가능한 스위치 전달 컨텍스트를 할당하고 초기화합니다. 이 컨텍스트에 대한 자세한 내용은 Hyper-V 확장 가능한 전환 전달 컨텍스트를 참조하세요.
확장은 AllocateNetBufferListForwardingContext 함수를 통해 전달 컨텍스트를 할당하기 위해 다음 지침을 따라야 합니다.
-
확장은 NdisAllocateNetBufferList 를 호출하여 확장 가능한 스위치를 통해 보내기 또는 받기 작업을 위해 확장의 NET_BUFFER_LIST 풀에서 패킷을 할당합니다. 확장이 패킷에 대한 원본 및 대상 포트를 초기화하기 전에 AllocateNetBufferListForwardingContext를 호출해야 합니다.
원본 및 대상 확장 가능한 스위치 포트를 지정하는 방법에 대한 자세한 내용은 Hyper-V 확장 가능한 스위치 원본 및 대상 포트 데이터 관리를 참조하세요.
- 확장이 AllocateNetBufferListForwardingContext를 호출하기 전에 할당된 각 NET_BUFFER_LIST 구조체의 SourceHandle 멤버를 확장을 식별하는 핸들 값으로 설정해야 합니다. 확장은 NDIS가 확장의 FilterAttach 함수를 호출할 때 NdisFilterHandle 매개 변수를 통해 이 핸들을 받습니다.
- 보내기 작업이 완료되면 확장은 FreeNetBufferListForwardingContext 함수를 호출하여 전달 컨텍스트에 대한 리소스의 할당을 취소해야 합니다. 확장은 패킷을 NET_BUFFER_LIST 풀로 반환하기 위해 NdisFreeNetBufferList를 호출하기 전에 이 함수를 호출해야 합니다.
- 확장이 패킷을 복제하는 경우 CopyNetBufferListInfo 를 호출하여 원본 패킷에서 복제된 패킷으로 전달 컨텍스트를 복사해야 합니다. 확장은 AllocateNetBufferListForwardingContext를 호출한 후에 이 작업을 수행해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.30 이상에서 지원됩니다. |
대상 플랫폼 | 데스크톱 |
머리글 | ndis.h(Ndis.h 포함) |
IRQL | <= DISPATCH_LEVEL |
추가 정보
FreeNetBufferListForwardingContext
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기