NDIS_SWITCH_OPTIONAL_HANDLERS 구조체(ndis.h)
NDIS_SWITCH_OPTIONAL_HANDLERS 구조체는 Hyper-V 확장 가능한 스위치 처리기 함수에 대한 포인터를 지정합니다. 이러한 함수는 확장 가능한 스위치 확장에서 호출할 수 있습니다.
구문
typedef struct _NDIS_SWITCH_OPTIONAL_HANDLERS {
NDIS_OBJECT_HEADER Header;
NDIS_SWITCH_ALLOCATE_NET_BUFFER_LIST_FORWARDING_CONTEXT_HANDLER AllocateNetBufferListForwardingContext;
NDIS_SWITCH_FREE_NET_BUFFER_LIST_FORWARDING_CONTEXT_HANDLER FreeNetBufferListForwardingContext;
NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE_HANDLER SetNetBufferListSource;
NDIS_SWITCH_ADD_NET_BUFFER_LIST_DESTINATION_HANDLER AddNetBufferListDestination;
NDIS_SWITCH_GROW_NET_BUFFER_LIST_DESTINATIONS_HANDLER GrowNetBufferListDestinations;
NDIS_SWITCH_GET_NET_BUFFER_LIST_DESTINATIONS_HANDLER GetNetBufferListDestinations;
NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS_HANDLER UpdateNetBufferListDestinations;
NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO_HANDLER CopyNetBufferListInfo;
NDIS_SWITCH_REFERENCE_SWITCH_NIC_HANDLER ReferenceSwitchNic;
NDIS_SWITCH_DEREFERENCE_SWITCH_NIC_HANDLER DereferenceSwitchNic;
NDIS_SWITCH_REFERENCE_SWITCH_PORT_HANDLER ReferenceSwitchPort;
NDIS_SWITCH_DEREFERENCE_SWITCH_PORT_HANDLER DereferenceSwitchPort;
NDIS_SWITCH_REPORT_FILTERED_NET_BUFFER_LISTS_HANDLER ReportFilteredNetBufferLists;
NDIS_SWITCH_SET_NET_BUFFER_LIST_SWITCH_CONTEXT_HANDLER SetNetBufferListSwitchContext;
NDIS_SWITCH_GET_NET_BUFFER_LIST_SWITCH_CONTEXT_HANDLER GetNetBufferListSwitchContext;
PVOID SwitchPDReserved[NDIS_SWITCH_OPTIONAL_HANDLERS_PD_RESERVED_SIZE];
} NDIS_SWITCH_OPTIONAL_HANDLERS, *PNDIS_SWITCH_OPTIONAL_HANDLERS;
멤버
Header
NDIS_SWITCH_OPTIONAL_HANDLERS 구조체의 형식, 수정 버전 및 크기입니다. 이 멤버는 NDIS_OBJECT_HEADER 구조체로 형식이 지정됩니다.
헤더의 Type 멤버를 NDIS_OBJECT_TYPE_DEFAULT 설정해야 합니다. NDIS_SWITCH_OPTIONAL_HANDLERS 구조체의 버전을 지정하려면 Header의 Revision 멤버를 다음 값으로 설정해야 합니다.
NDIS_SWITCH_OPTIONAL_HANDLERS_REVISION_1
NDIS 6.30 이상에 대한 원래 버전입니다.
Size 멤버를 NDIS_SIZEOF_NDIS_SWITCH_NIC_ARRAY_REVISION_1 설정합니다.
AllocateNetBufferListForwardingContext
AllocateNetBufferListForwardingContext 함수에 대한 포인터입니다.
FreeNetBufferListForwardingContext
FreeNetBufferListForwardingContext 함수에 대한 포인터입니다.
SetNetBufferListSource
SetNetBufferListSource 함수에 대한 포인터입니다.
AddNetBufferListDestination
AddNetBufferListDestination 함수에 대한 포인터입니다.
GrowNetBufferListDestinations
GrowNetBufferListDestinations 함수에 대한 포인터입니다.
GetNetBufferListDestinations
GetNetBufferListDestinations 함수에 대한 포인터입니다.
UpdateNetBufferListDestinations
UpdateNetBufferListDestinations 함수에 대한 포인터입니다.
CopyNetBufferListInfo
CopyNetBufferListInfo 함수에 대한 포인터입니다.
ReferenceSwitchNic
ReferenceSwitchNic 함수에 대한 포인터입니다.
DereferenceSwitchNic
DereferenceSwitchNic 함수에 대한 포인터입니다.
ReferenceSwitchPort
ReferenceSwitchPort 함수에 대한 포인터입니다.
DereferenceSwitchPort
DereferenceSwitchPort 함수에 대한 포인터입니다.
ReportFilteredNetBufferLists
ReportFilteredNetBufferLists 함수에 대한 포인터입니다.
SetNetBufferListSwitchContext
GetNetBufferListSwitchContext
SwitchPDReserved[NDIS_SWITCH_OPTIONAL_HANDLERS_PD_RESERVED_SIZE]
설명
확장 가능한 스위치 처리기 함수는 확장 가능한 스위치 확장에서 수행하는 필터링 및 전달 작업을 지원합니다. 이러한 작업은 다음과 같습니다.
- 전달 컨텍스트를 할당하거나 해제합니다. 이 데이터는 패킷의 NET_BUFFER_LIST 구조의 OOB(대역 외) 데이터에 저장됩니다. 전달 컨텍스트에 대한 자세한 내용은 Hyper-V 확장 가능한 전환 전달 컨텍스트를 참조하세요.
- 패킷의 전달 컨텍스트에 포함된 대상 포트를 가져오기 또는 설정합니다.
- 패킷의 전달 컨텍스트에 대상 포트를 추가합니다.
확장 가능한 스위치 확장이 NdisFGetOptionalSwitchHandlers를 호출하면 NdisSwitchHandlers 매개 변수에 NDIS_SWITCH_OPTIONAL_HANDLERS 구조체에 대한 포인터가 포함됩니다. 확장 가능한 스위치 확장은 일반적으로 FilterAttach 함수에서 NdisFGetOptionalSwitchHandlers를 호출합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.30 이상에서 지원됩니다. |
머리글 | ndis.h(Ndis.h 포함) |
추가 정보
AllocateNetBufferListForwardingContext
FreeNetBufferListForwardingContext