NDIS_PROTOCOL_DRIVER_CHARACTERISTICS structure (ndis.h)
To specify its driver characteristics, a protocol driver initializes an NDIS_PROTOCOL_DRIVER_CHARACTERISTICS structure and passes it to NDIS.
Syntax
typedef struct _NDIS_PROTOCOL_DRIVER_CHARACTERISTICS {
NDIS_OBJECT_HEADER Header;
UCHAR MajorNdisVersion;
UCHAR MinorNdisVersion;
UCHAR MajorDriverVersion;
UCHAR MinorDriverVersion;
ULONG Flags;
NDIS_STRING Name;
SET_OPTIONS_HANDLER SetOptionsHandler;
BIND_HANDLER_EX BindAdapterHandlerEx;
UNBIND_HANDLER_EX UnbindAdapterHandlerEx;
OPEN_ADAPTER_COMPLETE_HANDLER_EX OpenAdapterCompleteHandlerEx;
CLOSE_ADAPTER_COMPLETE_HANDLER_EX CloseAdapterCompleteHandlerEx;
NET_PNP_EVENT_HANDLER NetPnPEventHandler;
UNINSTALL_PROTOCOL_HANDLER UninstallHandler;
OID_REQUEST_COMPLETE_HANDLER OidRequestCompleteHandler;
STATUS_HANDLER_EX StatusHandlerEx;
RECEIVE_NET_BUFFER_LISTS_HANDLER ReceiveNetBufferListsHandler;
SEND_NET_BUFFER_LISTS_COMPLETE_HANDLER SendNetBufferListsCompleteHandler;
DIRECT_OID_REQUEST_COMPLETE_HANDLER DirectOidRequestCompleteHandler;
} NDIS_PROTOCOL_DRIVER_CHARACTERISTICS, *PNDIS_PROTOCOL_DRIVER_CHARACTERISTICS;
Members
Header
The NDIS_OBJECT_HEADER structure for the NDIS_PROTOCOL_DRIVER_CHARACTERISTICS structure. Set the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_PROTOCOL_DRIVER_CHARACTERISTICS.
To indicate the version of the NDIS_PROTOCOL_DRIVER_CHARACTERISTICS structure, set the Revision member to one of the following values:
NDIS_PROTOCOL_DRIVER_CHARACTERISTICS_REVISION_2
Added the DirectOidRequestCompleteHandler member for NDIS 6.1.
Set the Size member to NDIS_SIZEOF_PROTOCOL_DRIVER_CHARACTERISTICS_REVISION_2.
NDIS_PROTOCOL_DRIVER_CHARACTERISTICS_REVISION_1
Original version for NDIS 6.0.
Set the Size member to NDIS_SIZEOF_PROTOCOL_DRIVER_CHARACTERISTICS_REVISION_1.
MajorNdisVersion
The major version of the NDIS library the protocol 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 |
87 | NDIS 6.87 |
88 | NDIS 6.88 |
89 | NDIS 6.89 |
MajorDriverVersion
Reserved for the major version number of the protocol driver. Protocol drivers can specify any value that they require.
MinorDriverVersion
Reserved for the minor version number of the protocol driver. Protocol drivers can specify any value that they require.
Flags
The following flag is supported in NDIS 6.89 and higher:
Value | Meaning |
---|---|
NDIS_PROTOCOL_DRIVER_UDP_RSC_NOT_SUPPORTED 0x00000008 | The driver opt-outs of URO support. |
In NDIS 6.88 and below, Flags is reserved for NDIS. Protocol drivers should set this member to zero.
Name
A Unicode string that is the service name of the protocol driver.
SetOptionsHandler
The entry point for the ProtocolSetOptions function.
BindAdapterHandlerEx
The entry point for the ProtocolBindAdapterEx function.
UnbindAdapterHandlerEx
The entry point for the ProtocolUnbindAdapterEx function.
OpenAdapterCompleteHandlerEx
The entry point for the ProtocolOpenAdapterCompleteEx function.
CloseAdapterCompleteHandlerEx
The entry point for the ProtocolCloseAdapterCompleteEx function.
NetPnPEventHandler
The entry point of the caller's ProtocolNetPnPEvent function.
UninstallHandler
The entry point of the caller's ProtocolUninstall function, if any, or NULL.
OidRequestCompleteHandler
The entry point of the caller's ProtocolOidRequestComplete function.
StatusHandlerEx
The entry point of the caller's ProtocolStatusEx function, if any, or NULL.
ReceiveNetBufferListsHandler
The entry point for the ProtocolReceiveNetBufferLists function.
SendNetBufferListsCompleteHandler
The entry point for the ProtocolSendNetBufferListsComplete function.
DirectOidRequestCompleteHandler
The entry point of the caller's ProtocolDirectOidRequestComplete function. This is an optional function. Set this entry point to NULL if the protocol driver does not support the direct OID request interface.
Remarks
A protocol driver calls the NdisRegisterProtocolDriver function to register its characteristics, including the default entry points for its protocol driver functions (ProtocolXxx). The protocol driver initializes an NDIS_PROTOCOL_DRIVER_CHARACTERISTICS structure and passes a pointer to this structure in the ProtocolCharacteristics parameter of NdisRegisterProtocolDriver.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Supported in NDIS 6.0 and later. |
Header | ndis.h (include Ndis.h) |