Использование транспортных средств TDI
Подсистема ядра Winsock (WSK) обеспечивает поддержку использования транспорта TDI . Чтобы использовать транспорты TDI через сетевой программный интерфейс WSK (NPI), приложение WSK должно сопоставить сочетание семейства адресов, типа сокета и протокола для каждого транспорта TDI, которое оно использует, с соответствующим именем устройства каждого из этих транспортов TDI. Приложение WSK сопоставляет сочетания семейства адресов, типа сокета и протокола с именами устройств транспорта TDI с помощью операции управления клиентом WSK_TDI_DEVICENAME_MAPPING .
В следующем примере кода показано, как приложение WSK может сопоставлять сочетания семейства адресов, типа сокета и протокола с именами устройств транспорта 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;
}
Приложение WSK должно сопоставлять сочетания семейства адресов, типа сокета и протокола с именами устройств транспорта TDI перед созданием сокетов. После успешного сопоставления приложению WSK сочетаний семейства адресов, типа сокета и протокола с именами устройств транспорта TDI приложение сможет создавать новые сокеты, использующие сопоставленные транспорты TDI.
Примечание TDI не будет поддерживаться в версиях Microsoft Windows после Windows Vista. Вместо этого используйте платформу фильтрации Windows или ядро Winsock .