TdiRegisterProvider function
The TdiRegisterProvider function notifies TDI that a PnP-supporting transport driver is initializing and that the transport will make a subsequent call to TdiProviderReady when it has established its bindings to one or more underlying NDIS miniport drivers and is ready to carry out network I/O operations.
Syntax
NTSTATUS TdiRegisterProvider(
_In_ PUNICODE_STRING ProviderName,
_Out_ HANDLE *ProviderHandle
);
Parameters
ProviderName [in]
Pointer to a buffered Unicode string that is a generic name for the transport, such as \device\tcp_{ GUID_for_tcp}, \device\nwlinkipx, and so forth.ProviderHandle [out]
Specifies the caller-supplied location of a variable in which TdiRegisterProvider returns an opaque handle if this call succeeds.
Return value
TdiRegisterProvider returns STATUS_SUCCESS when TDI has set up whatever internal state it maintains to track this transport and notified its potential clients of this transport's existence. Otherwise, it can return STATUS_INSUFFICIENT_RESOURCES, although it is highly unlikely to ever return this status to a transport that is initializing itself during system startup.
Remarks
TDI transport drivers call TdiRegisterProvider from their DriverEntry routines.
The handle returned by a successful call to TdiRegisterProvider must be saved for a subsequent call to TdiProviderReady and for a reciprocal call to TdiDeregisterProvider from the transport driver's Unload routine.
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