NDIS_FILTER_DRIVER_CHARACTERISTICS structure (ndis.h)

To specify its driver characteristics, a filter driver initializes an NDIS_FILTER_DRIVER_CHARACTERISTICS structure and passes it to NDIS.

Syntax

typedef struct _NDIS_FILTER_DRIVER_CHARACTERISTICS {
  NDIS_OBJECT_HEADER                              Header;
  UCHAR                                           MajorNdisVersion;
  UCHAR                                           MinorNdisVersion;
  UCHAR                                           MajorDriverVersion;
  UCHAR                                           MinorDriverVersion;
  ULONG                                           Flags;
  NDIS_STRING                                     FriendlyName;
  NDIS_STRING                                     UniqueName;
  NDIS_STRING                                     ServiceName;
  SET_OPTIONS_HANDLER                             SetOptionsHandler;
  FILTER_SET_FILTER_MODULE_OPTIONS_HANDLER        SetFilterModuleOptionsHandler;
  FILTER_ATTACH_HANDLER                           AttachHandler;
  FILTER_DETACH_HANDLER                           DetachHandler;
  FILTER_RESTART_HANDLER                          RestartHandler;
  FILTER_PAUSE_HANDLER                            PauseHandler;
  FILTER_SEND_NET_BUFFER_LISTS_HANDLER            SendNetBufferListsHandler;
  FILTER_SEND_NET_BUFFER_LISTS_COMPLETE_HANDLER   SendNetBufferListsCompleteHandler;
  FILTER_CANCEL_SEND_HANDLER                      CancelSendNetBufferListsHandler;
  FILTER_RECEIVE_NET_BUFFER_LISTS_HANDLER         ReceiveNetBufferListsHandler;
  FILTER_RETURN_NET_BUFFER_LISTS_HANDLER          ReturnNetBufferListsHandler;
  FILTER_OID_REQUEST_HANDLER                      OidRequestHandler;
  FILTER_OID_REQUEST_COMPLETE_HANDLER             OidRequestCompleteHandler;
  FILTER_CANCEL_OID_REQUEST_HANDLER               CancelOidRequestHandler;
  FILTER_DEVICE_PNP_EVENT_NOTIFY_HANDLER          DevicePnPEventNotifyHandler;
  FILTER_NET_PNP_EVENT_HANDLER                    NetPnPEventHandler;
  FILTER_STATUS_HANDLER                           StatusHandler;
  FILTER_DIRECT_OID_REQUEST_HANDLER               DirectOidRequestHandler;
  FILTER_DIRECT_OID_REQUEST_COMPLETE_HANDLER      DirectOidRequestCompleteHandler;
  FILTER_CANCEL_DIRECT_OID_REQUEST_HANDLER        CancelDirectOidRequestHandler;
  FILTER_SYNCHRONOUS_OID_REQUEST_HANDLER          SynchronousOidRequestHandler;
  FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE_HANDLER SynchronousOidRequestCompleteHandler;
} NDIS_FILTER_DRIVER_CHARACTERISTICS, *PNDIS_FILTER_DRIVER_CHARACTERISTICS;

Members

Header

The NDIS_OBJECT_HEADER structure for the filter driver characteristics structure (NDIS_FILTER_DRIVER_CHARACTERISTICS). Set the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_FILTER_DRIVER_CHARACTERISTICS.

To indicate the version of the NDIS_FILTER_DRIVER_CHARACTERISTICS structure, set the Revision member to one of the following values:

NDIS_FILTER_CHARACTERISTICS_REVISION_3

Added the SynchronousOidRequestHandler and SynchronousOidRequestCompleteHandler members for NDIS 6.80.

Set the Size member to NDIS_SIZEOF_FILTER_DRIVER_CHARACTERISTICS_REVISION_3.

NDIS_FILTER_CHARACTERISTICS_REVISION_2

Added the DirectOidRequestHandler, DirectOidRequestCompleteHandler, and CancelDirectOidRequestHandler members for NDIS 6.1.

Set the Size member to NDIS_SIZEOF_FILTER_DRIVER_CHARACTERISTICS_REVISION_2.

NDIS_FILTER_CHARACTERISTICS_REVISION_1

Original version.

Set the Size member to NDIS_SIZEOF_FILTER_DRIVER_CHARACTERISTICS_REVISION_1.

MajorNdisVersion

The major version of NDIS that the driver is using. The current value is 0x06.

MinorNdisVersion

The minor NDIS version. The following are the available minor version value settings.

Value Meaning
0 NDIS 6
20 NDIS 6.20
30 NDIS 6.30
40 NDIS 6.40
50 NDIS 6.50
51 NDIS 6.51
60 NDIS 6.60
70 NDIS 6.70
80 NDIS 6.80
81 NDIS 6.81
82 NDIS 6.82
83 NDIS 6.83
84 NDIS 6.84
85 NDIS 6.85
86 NDIS 6.86

MajorDriverVersion

Reserved for the major version number of the filter driver. Filter drivers can specify any value that they require.

MinorDriverVersion

Reserved for the minor version number of the filter driver. Filter drivers can specify any value that they require.

Flags

Reserved for NDIS.

FriendlyName

A Unicode string that represents the user-readable description of the filter driver.

UniqueName

A Unicode string that represents the unique name for the filter driver. This string must be a GUID, enclosed in curly braces, for example "{5cbf81bd-5055-47cd-9055-a76b2b4e3697}". This GUID must match the one in the NetCfgInstanceId INF file entry in the filter driver's INF file. For more information, see INF File Settings for Filter Drivers.

ServiceName

A Unicode string that represents the service name of the filter driver. This string must be the service name from the AddService directive in the filter driver's INF file. For more information, see INF File Settings for Filter Drivers.

SetOptionsHandler

Specifies the entry point of the caller's FilterSetOptions function.

SetFilterModuleOptionsHandler

The entry point of the caller's FilterSetModuleOptions function.

AttachHandler

The entry point of the caller's FilterAttach function.

DetachHandler

The entry point of the caller's FilterDetach function.

RestartHandler

The entry point of the caller's FilterRestart function.

PauseHandler

The entry point of the caller's FilterPause function.

SendNetBufferListsHandler

The entry point of the caller's FilterSendNetBufferLists function. To bypass this function, set this member to NULL.

SendNetBufferListsCompleteHandler

The entry point of the caller's FilterSendNetBufferListsComplete function. To bypass this function, set this member to NULL.

CancelSendNetBufferListsHandler

The entry point of the caller's FilterCancelSendNetBufferLists function. To bypass this function, set this member to NULL.

ReceiveNetBufferListsHandler

The entry point of the caller's FilterReceiveNetBufferLists function. To bypass this function, set this member to NULL.

ReturnNetBufferListsHandler

The entry point of the caller's FilterReturnNetBufferLists function. To bypass this function, set this member to NULL.

OidRequestHandler

The entry point of the caller's FilterOidRequest function. To bypass this function, set this member to NULL.

OidRequestCompleteHandler

The entry point of the caller's FilterOidRequestComplete function. To bypass this function, set this member to NULL.

CancelOidRequestHandler

The entry point of the caller's FilterCancelOidRequest function. To bypass this function, set this member to NULL.

DevicePnPEventNotifyHandler

The entry point of the caller's FilterDevicePnPEventNotify function. To bypass this function, set this member to NULL.

NetPnPEventHandler

The entry point of the caller's FilterNetPnPEvent function. To bypass this function, set this member to NULL.

StatusHandler

The entry point of the caller's FilterStatus function. To bypass this function, set this member to NULL.

DirectOidRequestHandler

The entry point of the caller's FilterDirectOidRequest function. To bypass this function, set this member to NULL.

DirectOidRequestCompleteHandler

The entry point of the caller's FilterDirectOidRequestComplete function. To bypass this function, set this member to NULL.

CancelDirectOidRequestHandler

The entry point of the caller's FilterCancelDirectOidRequest function. To bypass this function, set this member to NULL.

SynchronousOidRequestHandler

The entry point of the caller's FilterSynchronousOidRequest function. To bypass this function, set this member to NULL.

SynchronousOidRequestCompleteHandler

The entry point of the caller's FilterSynchronousOidRequestComplete function. To bypass this function, set this member to NULL.

Remarks

A filter driver calls the NdisFRegisterFilterDriver function to register its characteristics, including the default entry points for its filter driver functions (FilterXxx). The filter driver initializes an NDIS_FILTER_DRIVER_CHARACTERISTICS structure and passes a pointer to this structure in the FilterCharacteristics parameter of NdisFRegisterFilterDriver.

Requirements

Requirement Value
Minimum supported client Supported in NDIS 6.0 and later.
Header ndis.h (include Ndis.h)

See also

FilterAttach

FilterCancelDirectOidRequest

FilterCancelOidRequest

FilterCancelSendNetBufferLists

FilterDetach

FilterDevicePnPEventNotify

FilterDirectOidRequest

FilterDirectOidRequestComplete

FilterNetPnPEvent

FilterOidRequest

FilterOidRequestComplete

FilterPause

FilterReceiveNetBufferLists

FilterRestart

FilterReturnNetBufferLists

FilterSendNetBufferLists

FilterSendNetBufferListsComplete

FilterSetModuleOptions

FilterSetOptions

FilterStatus

INF File Settings for Filter Drivers

Initializing a Filter Driver

NDIS_FILTER_PARTIAL_CHARACTERISTICS

NDIS_OBJECT_HEADER

NdisFRegisterFilterDriver