Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

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)

See also

NdisRegisterProtocolDriver

ProtocolBindAdapterEx

ProtocolCloseAdapterCompleteEx ProtocolDirectOidRequestComplete

ProtocolNetPnPEvent

ProtocolOidRequestComplete

ProtocolOpenAdapterCompleteEx ProtocolReceiveNetBufferLists ProtocolSendNetBufferListsComplete

ProtocolSetOptions

ProtocolStatusEx

ProtocolUnbindAdapterEx

ProtocolUninstall


Feedback

Was this page helpful?

Additional resources