NdisRegisterProtocolDriver (Compact 2013)
3/26/2014
A protocol driver calls this function to register its ProtocolXxx functions with NDIS.
Syntax
NDIS_STATUS
NdisRegisterProtocolDriver(
IN NDIS_HANDLE ProtocolDriverContext,
IN PNDIS_PROTOCOL_DRIVER_CHARACTERISTICS ProtocolCharacteristics,
OUT PNDIS_HANDLE NdisProtocolHandle
);
Parameters
- ProtocolDriverContext
A handle to a driver-allocated context area where the driver maintains state and configuration information.
- ProtocolCharacteristics
A pointer to an NDIS_PROTOCOL_DRIVER_CHARACTERISTICS structure that the protocol driver created and initialized with its ProtocolXxx function entry points.
- NdisProtocolHandle
A pointer to a caller-supplied handle variable. NDIS writes a handle to this variable that uniquely identifies the driver that is registering. The driver must save this handle for use in later NdisXxx function calls.
Return Value
NdisRegisterProtocolDriver returns one of the following status values:
Value |
Meaning |
---|---|
NDIS_STATUS_SUCCESS |
NdisRegisterProtocolDriver returns NDIS_STATUS_SUCCESS if it registered the protocol driver. |
NDIS_STATUS_BAD_VERSION |
The version that is specified in the MajorNdisVersion member of the structure at ProtocolCharacteristics is invalid. |
NDIS_STATUS_BAD_CHARACTERISTICS |
Some members of the structure at the ProtocolCharacteristics parameter are invalid. |
NDIS_STATUS_RESOURCES |
NdisRegisterProtocolDriver failed because of insufficient resources. |
NDIS_STATUS_FAILURE |
NdisRegisterProtocolDriver returns NDIS_STATUS_FAILURE if none of the preceding values applies. |
Remarks
A protocol driver calls the NdisRegisterProtocolDriver function from its DriverEntry routine. For more information about DriverEntry, see DriverEntry of NDIS Protocol Drivers.
Every protocol driver exports a set of ProtocolXxx functions by setting up the NDIS_PROTOCOL_DRIVER_CHARACTERISTICS structure and calling NdisRegisterProtocolDriver. NDIS copies this structure to the NDIS library's internal storage.
To enable protocol drivers to register optional services, NDIS calls the ProtocolSetOptions function within the context of NdisRegisterProtocolDriver.
Protocol drivers call the NdisDeregisterProtocolDriver function to release resources that were previously allocated with NdisRegisterProtocolDriver.
Requirements
Header |
ndis.h |
See Also
Reference
NDIS Functions for Protocol Drivers
DriverEntry of NDIS Protocol Drivers
NDIS_PROTOCOL_DRIVER_CHARACTERISTICS
NdisDeregisterProtocolDriver
NdisSetOptionalHandlers