PROTOCOL_CM_DEREGISTER_SAP callback function (ndis.h)
The ProtocolCmDeregisterSap function is required. This function is called by NDIS to request that a call manager deregister a SAP on behalf of a connection-oriented client.
Syntax
PROTOCOL_CM_DEREGISTER_SAP ProtocolCmDeregisterSap;
NDIS_STATUS ProtocolCmDeregisterSap(
[in] NDIS_HANDLE CallMgrSapContext
)
{...}
Parameters
[in] CallMgrSapContext
Specifies the handle to a call manager-allocated context area in which the call manager maintains its per-SAP state information. The call manager supplied this handle to NDIS from its ProtocolCmRegisterSap function.
Return value
ProtocolCmDeregisterSap returns the status of its operation(s) as one of the following:
Return code | Description |
---|---|
|
Indicates that the call manager successfully removed the SAP registration and freed any resources allocated to maintain per-SAP information. |
|
Indicates that the call manager will complete the request to deregister the SAP asynchronously. The call manager must call NdisCmDeregisterSapComplete to signal NDIS when the operation is complete. |
Remarks
ProtocolCmDeregisterSap communicates with network control devices or other media-specific agents, as necessary, to deregister the SAP on the network. Such actions could include, but are not limited to:
- Communicating with a switching hardware
- Communicating with a network control station
- Communicating with other media-specific network agents
In addition, ProtocolCmDeregisterSap must free any dynamically-allocated resources in its per-SAP area, provided at CallMgrSapContext, as well as freeing the state area itself before returning control to NDIS.
Examples
To define a ProtocolCmDeregisterSap function, you must first provide a function declaration that identifies the type of function you're defining. Windows provides a set of function types for drivers. Declaring a function using the function types helps Code Analysis for Drivers, Static Driver Verifier (SDV), and other verification tools find errors, and it's a requirement for writing drivers for the Windows operating system.For example, to define a ProtocolCmDeregisterSap function that is named "MyCmDeregisterSap", use the PROTOCOL_CM_DEREGISTER_SAP type as shown in this code example:
PROTOCOL_CM_DEREGISTER_SAP MyCmDeregisterSap;
Then, implement your function as follows:
_Use_decl_annotations_
NDIS_STATUS
MyCmDeregisterSap(
NDIS_HANDLE CallMgrSapContext
)
{...}
The PROTOCOL_CM_DEREGISTER_SAP function type is defined in the Ndis.h header file. To more accurately identify errors when you run the code analysis tools, be sure to add the Use_decl_annotations annotation to your function definition. The Use_decl_annotations annotation ensures that the annotations that are applied to the PROTOCOL_CM_DEREGISTER_SAP function type in the header file are used. For more information about the requirements for function declarations, see Declaring Functions by Using Function Role Types for NDIS Drivers.
For information about Use_decl_annotations, see Annotating Function Behavior.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Supported for NDIS 6.0 and NDIS 5.1 drivers (see ProtocolCmDeregisterSap (NDIS 5.1)) in Windows Vista. Supported for NDIS 5.1 drivers (see ProtocolCmDeregisterSap (NDIS 5.1)) in Windows XP. |
Target Platform | Windows |
Header | ndis.h (include Ndis.h) |
IRQL | <= DISPATCH_LEVEL |