Поделиться через


FilterPause (Compact 2013)

3/26/2014

NDIS calls a filter driver's FilterPause function to begin a pause operation for the specified filter module.

Syntax

NDIS_STATUS
  FilterPause(
    IN NDIS_HANDLE  FilterModuleContext,
    IN PNDIS_FILTER_PAUSE_PARAMETERS  FilterPauseParameters
    );

Parameters

  • FilterModuleContext
    A handle to the context area for the filter module that the filter driver should pause. The filter driver created and initialized this context area in the FilterAttach function.

Return Value

NDIS drivers cannot fail a pause request. The filter driver should call the NdisWriteEventLogEntry function together with parameters that specify the reason for any errors that occur.

FilterPause returns one of the following status values:

Value

Description

NDIS_STATUS_SUCCESS

FilterPause successfully paused the specified filter module.

NDIS_STATUS_PENDING

The filter driver will complete the request asynchronously with a call to the NdisFPauseComplete function.

Remarks

FilterPause is a required function. NDIS can call FilterPause when the filter module is in the Running state. The filter module enters the Pausing state at the start of execution in the FilterPause function.

A filter driver performs the following operations when NDIS calls FilterPause:

After the filter driver returns NDIS_STATUS_SUCCESS from FilterPause or calls the NdisFPauseComplete function, the pause operation is complete. The filter module is in the Paused state.

In the Pausing or Paused states, a filter driver should continue to handle OID requests or status indications. The driver should reject calls to its FilterSendNetBufferLists function. The driver can pass on calls to its FilterReceiveNetBufferLists function. However, the driver cannot pass any buffers that it created. The driver must not originate any receive indications or send requests.

In the Paused state, the filter module must not generate send requests or receive indications.

NDIS calls the FilterRestart function to initiate a restart request for a filter module that is in the Paused state.

NDIS calls FilterPause at IRQL = PASSIVE_LEVEL.

Requirements

Header

filter.h

See Also

Reference

NDIS Filter Driver Functions
FilterAttach
FilterReceiveNetBufferLists
FilterRestart
FilterReturnNetBufferLists
FilterSendNetBufferLists
FilterSendNetBufferListsComplete
NDIS_FILTER_PAUSE_PARAMETERS
NDIS_OBJECT_HEADER
NdisFPauseComplete
NdisFReturnNetBufferLists
NdisFSendNetBufferListsComplete