Поделиться через


Использование транспортных средств 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 .