NDIS_FILTER_DRIVER_CHARACTERISTICS structure

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;
#if (NDIS_SUPPORT_NDIS61)
  FILTER_DIRECT_OID_REQUEST_HANDLER             DirectOidRequestHandler;
  FILTER_DIRECT_OID_REQUEST_COMPLETE_HANDLER    DirectOidRequestCompleteHandler;
  FILTER_CANCEL_DIRECT_OID_REQUEST_HANDLER      CancelDirectOidRequestHandler;
#endif 
} 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_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.

ValueMeaning
0

NDIS 6

20

NDIS 6.20

30

NDIS 6.30

 

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.

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

Version

Supported in NDIS 6.0 and later.

Header

Ndis.h (include Ndis.h)

See also

FilterAttach
FilterCancelDirectOidRequest
FilterCancelOidRequest
FilterCancelSendNetBufferLists
FilterDetach
FilterDevicePnPEventNotify
FilterDirectOidRequest
FilterDirectOidRequestComplete
FilterNetPnPEvent
FilterReceiveNetBufferLists
FilterOidRequest
FilterOidRequestComplete
FilterPause
FilterRestart
FilterReturnNetBufferLists
FilterSendNetBufferLists
FilterSendNetBufferListsComplete
FilterSetModuleOptions
FilterSetOptions
FilterStatus
NDIS_FILTER_PARTIAL_CHARACTERISTICS
NDIS_OBJECT_HEADER
NdisFRegisterFilterDriver
INF File Settings for Filter Drivers
Initializing a Filter Driver

 

 

Send comments about this topic to Microsoft

Show:
© 2015 Microsoft