TdiDeregisterNetAddress function
The TdiDeregisterNetAddress function is the reciprocal of TdiRegisterNetAddress. It removes a transport-supplied network address from the list of valid network addresses registered with TDI.
Syntax
NTSTATUS TdiDeregisterNetAddress(
_In_ HANDLE AddrRegistrationHandle
);
Parameters
- AddrRegistrationHandle [in]
Specifies the handle returned by a preceding call to TdiRegisterNetAddress.
Return value
TdiDeregisterNetAddress returns STATUS_SUCCESS if the registration was released and all bound clients were notified. Otherwise, it can return STATUS_INSUFFICIENT_RESOURCES. (Because the availability of system resources is dynamic, a subsequent call from the same transport can succeed.)
Remarks
A TDI transport calls TdiDeregisterNetAddress when a disconnection from a remote node on the network occurs, whether the disconnection was initiated at the remote node or because the transport itself initiated this operation, possibly because it is tearing down a binding to the underlying NIC. In either case, the transport must tear down the state it was maintaining about the network address that it previously registered with TdiRegisterNetAddress.
TdiDeregisterNetAddress notifies the calling transport's clients that they can no longer send data to nor expect to receive data from the formerly registered network address. When this call occurs, TDI calls the ClientPnPDelNetAddress functions of all clients that have registered themselves with TdiRegisterPnPHandlers to receive these notifications. If a client has the given address open when this call to ClientPnPDelNetAddress occurs, it must close that address.
If TdiDeregisterNetAddress returns STATUS_INSUFFICIENT_RESOURCES, the transport should fail any subsequent incoming client sends directed to its still registered network address. When convenient, the transport should call TdiDeregisterNetAddress again because a temporary shortage of available system memory might have caused its original call to fail.
Note The TDI feature is deprecated and will be removed in future versions of Microsoft Windows. Depending on how you use TDI, use either the Winsock Kernel (WSK) or Windows Filtering Platform (WFP). For more information about WFP and WSK, see Windows Filtering Platform and Winsock Kernel. For a Windows Core Networking blog entry about WSK and TDI, see Introduction to Winsock Kernel (WSK).
Requirements
Target platform |
Universal |
Header |
Tdikrnl.h (include TdiKrnl.h) |
Library |
Tdi.lib |
IRQL |
< DISPATCH_LEVEL |
See also