Share via


FilterSetOptions (Compact 7)

3/12/2014

NDIS calls a filter driver's FilterSetOptions function to allow the filter driver to register optional services.

Syntax

NDIS_STATUS
  FilterSetOptions(
    IN NDIS_HANDLE  NdisDriverHandle,
    IN NDIS_HANDLE  DriverContext
    );

Parameters

  • NdisDriverHandle
    A handle that identifies this filter driver. NDIS returns this handle to the filter driver when it returns from the NdisFRegisterFilterDriver function.
  • DriverContext
    The handle that the driver passed to NdisFRegisterFilterDriver that identifies the driver context area.

Return Value

Value Meaning

NDIS_STATUS_SUCCESS

FilterSetOptions successfully registered the driver's optional services and resources.

NDIS_STATUS_RESOURCES

FilterSetOptions could not allocate the resources that the driver requires.

NDIS_STATUS_XXX or NTSTATUS_XXX

The filter driver's attempt to register options failed. Usually, such an error status is propagated from an NdisXxx function or a kernel-mode support routine.

Remarks

FilterSetOptions is an optional function. If the entry point for FilterSetOptions is not NULL in the NDIS_FILTER_DRIVER_CHARACTERISTICS structure, NDIS calls FilterSetOptions within the context of the filter driver's call to the NdisFRegisterFilterDriver function.

FilterSetOptions registers optional services and can allocate other driver resources. To register optional FilterXxx functions, the filter driver must call the NdisSetOptionalHandlers function from FilterSetOptions. The driver passes the handle from the NdisDriverHandle parameter of FilterSetOptions to the NdisHandle parameter of NdisSetOptionalHandlers. The driver passes a characteristics structure at the OptionalHandlers parameter.

If an attempt to allocate resources or services fails, FilterSetOptions should undo all the allocations that succeeded before it returns control with a status other than NDIS_STATUS_SUCCESS.

NDIS can call the filter driver's other FilterXxx functions at any time after FilterSetOptions returns. The driver should be prepared to be called back at the FilterAttach function. The filter modules are in the Detached state before the NDIS calls FilterAttach. The FilterDriverUnload function should undo all the operations that were performed in FilterSetOptions.

NDIS calls FilterSetOptions at IRQL = PASSIVE_LEVEL.

Requirements

Header

filter.h

See Also

Reference

NDIS Filter Driver Functions
NDIS_FILTER_DRIVER_CHARACTERISTICS
NdisFRegisterFilterDriver
NdisSetOptionalHandlers