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
FilterCancelDirectOidRequest FilterCancelSendNetBufferLists FilterDirectOidRequestComplete FilterSendNetBufferListsCompleteINF File Settings for Filter Drivers
NDIS_FILTER_PARTIAL_CHARACTERISTICSFeedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for