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