Share via


FwpsCompleteOperation0 (Compact 2013)

3/26/2014

This function resumes packet processing that was suspended pending completion of another operation.

Syntax

VOID NTAPI
  FwpsCompleteOperation0(
    IN HANDLE  completionContext,
    IN PNET_BUFFER_LIST  netBufferList
    );

Parameters

  • completionContext
    A completion context handle that was previously created by a call to the FwpsPendOperation0 function
  • netBufferList
    A pointer to a NET_BUFFER_LIST structure that describes the packet data for which processing has been suspended pending completion of another operation.

Return Value

The FwpsCompleteOperation0 function returns one of the following NTSTATUS codes:

Value

Description

STATUS_SUCCESS

The packet processing was successfully resumed.

Other status codes

An error occurred.

Remarks

When the callout is ready to resume packet processing after operations on the packet were suspended by a call to FwpsPendOperation0, the callout should call the FwpsCompleteOperation0 function. The completionContext parameter value from FwpsPendOperation0 and the NET_BUFFER_LIST data that describes the packet should be passed to the callout.

To complete a connection that was previously pended at the FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_Xxx layer, the callout must reinject the packet that was cloned at that layer and call FwpsCompleteOperation0.

Pended connections are reauthenticated after the FwpsCompleteOperation0 function executes. TCP connections, if they are allowed, are created by completing the handshake operation. Non-TCP connections create state entries. Any pended packet data is flushed from memory when the FwpsCompleteOperation0 function finishes. Therefore, an application must retransmit those packets. The callout can buffer such data and reinject the data on the application's behalf.

Requirements

Header

fwpsk.h

See Also

Reference

Functions Called by Callout Drivers
NET_BUFFER_LIST
FwpsPendOperation0
WFP Callout Driver Functions