TCP_OFFLOAD_RECEIVE_INDICATE_HANDLER 콜백 함수(ndischimney.h)
[TCP 굴뚝 오프로드 기능은 더 이상 사용되지 않으며 사용하면 안 됩니다.]
NDIS는 프로토콜 드라이버 또는 중간 드라이버의 를 호출합니다. ProtocolTcpOffloadReceiveIndicate 함수는 기본 드라이버 또는 오프로드 대상에 의해 표시되는 수신된 데이터를 전달합니다.
구문
TCP_OFFLOAD_RECEIVE_INDICATE_HANDLER TcpOffloadReceiveIndicateHandler;
NDIS_STATUS TcpOffloadReceiveIndicateHandler(
[in] IN PVOID OffloadContext,
[in] IN PNET_BUFFER_LIST NetBufferList,
[in] IN NDIS_STATUS Status,
[out] OUT PULONG BytesConsumed
)
{...}
매개 변수
[in] OffloadContext
표시가 이루어지는 TCP 연결에 대한 프로토콜 또는 중간 드라이버의 NDIS_OFFLOAD_HANDLE 구조에 대한 포인터입니다. 프로토콜 또는 중간 드라이버는 연결을 오프로드할 때 이 포인터를 NdisInitiateOffload 함수에 대한 입력 매개 변수로 제공했습니다.
[in] NetBufferList
NET_BUFFER_LIST 구조체에 대한 포인터입니다. 각 NET_BUFFER_LIST 구조체는 NET_BUFFER 구조의 목록을 설명합니다. 목록의 각 NET_BUFFER 구조는 MDL(메모리 설명자 목록) 체인에 매핑됩니다. MDL에는 수신된 데이터가 포함됩니다. MDL은 그대로 유지되도록 잠겨 있지만 시스템 메모리에 매핑되지 않습니다.
NetBufferList에 지정된 NET_BUFFER_LIST 구조체는 독립 실행형 구조체여야 하며 연결된 NET_BUFFER_LIST 구조체 목록의 첫 번째 구조체일 수 없습니다. 오프로드 대상은 오프로드 수신 표시에서 동일한 NET_BUFFER 필요한 만큼의 MDL을 연결하여 이 제한을 해결할 수 있습니다.
[in] Status
중간 드라이버는 호출할 때 이 상태 전파해야 합니다. NdisTcpOffloadReceiveHandler.
[out] BytesConsumed
클라이언트 애플리케이션에서 사용한 바이트 수를 수신하는 ULONG 형식 변수에 대한 포인터입니다.
반환 값
The ProtocolTcpOffloadReceiveIndicate 함수는 다음 값 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
클라이언트 애플리케이션은 표시된 모든 수신 데이터를 사용했습니다. |
|
클라이언트 애플리케이션이 표시된 모든 수신 데이터를 거부했습니다. |
|
클라이언트 애플리케이션은 표시된 수신 데이터의 하위 집합을 사용했습니다. 클라이언트 애플리케이션에서 사용한 데이터 양(바이트)은 BytesConsumed 매개 변수로 지정된 변수에 반환됩니다. |
설명
오버리싱 드라이버 또는 호스트 스택에 표시를 전파하기 위해 중간 드라이버는 를 호출합니다. NdisTcpOffloadReceiveHandler 함수입니다. 중간 드라이버는 다음 매개 변수를 NdisTcpOffloadReceiveHandler 함수에 전달합니다.
- 오프로드된 TCP 연결에 대한 컨텍스트에 저장된 오프로드 대상인 NdisOffloadHandle 입니다. 자세한 내용은 중간 드라이버를 통해 오프로드된 상태를 참조합니다.
- NDIS가 중간 드라이버의 ProtocolTcpOffloadReceiveIndicate 함수에 전달한 NetBufferList 포인터입니다.
- NDIS가 중간 드라이버의 ProtocolTcpOffloadReceiveIndicate 함수에 전달한 상태입니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | ndischimney.h(Ndischimney.h 포함) |