Usando transportes TDI
O subsistema WSK (Winsock Kernel) dá suporte ao uso de transportes TDI . Para usar transportes TDI por meio da NPI (Interface de Programação de Rede) do WSK, um aplicativo WSK deve mapear a combinação de família de endereços, tipo de soquete e protocolo para cada um dos transportes TDI usados para o nome do dispositivo associado de cada um desses transportes TDI. Um aplicativo WSK mapeia combinações de família de endereços, tipo de soquete e protocolo para nomes de dispositivo de transportes TDI usando o WSK_TDI_DEVICENAME_MAPPING operação de controle do cliente.
O exemplo de código a seguir mostra como um aplicativo WSK pode mapear combinações de família de endereços, tipo de soquete e protocolo para nomes de dispositivos de transportes TDI.
// Number of TDI mappings
#define MAPCOUNT 2
// Array of TDI mappings
const WSK_TDI_MAP TdiMap[MAPCOUNT] =
{
{SOCK_STREAM, ..., ..., ...},
{SOCK_DGRAM, ..., ..., ...}
};
// TDI map info structure
const WSK_TDI_MAP_INFO TdiMapInfo =
{
MAPCOUNT,
TdiMap
}
// Function to set the TDI map
NTSTATUS
SetTdiMap(
PWSK_APP_BINDING_CONTEXT BindingContext
)
{
NTSTATUS Status;
// Perform client control operation
Status =
BindingContext->
WskProviderDispatch->
WskControlClient(
BindingContext->WskClient,
WSK_TDI_DEVICENAME_MAPPING,
sizeof(WSK_TDI_MAP_INFO),
&TdiMapInfo,
0,
NULL,
NULL,
NULL // No IRP for this control operation
);
// Return status of client control operation
return Status;
}
Um aplicativo WSK deve mapear combinações de família de endereços, tipo de soquete e protocolo para nomes de dispositivo de transportes TDI antes de criar qualquer soquete. Depois que o aplicativo WSK tiver mapeado com êxito as combinações de família de endereços, tipo de soquete e protocolo para nomes de dispositivo de transportes TDI, o aplicativo poderá criar novos soquetes que usam os transportes TDI mapeados.
Nota A TDI não terá suporte nas versões do Microsoft Windows após o Windows Vista. Em vez disso, use a Plataforma de Filtragem do Windows ou o Kernel winsock .