Pada Windows, soket adalah tautan antara titik akhir komunikasi dan suatu proses. Inilah sebabnya, ketika Anda menduplikasi soket, Anda berakhir dengan dua soket tetapi hanya satu titik akhir. Inilah sebabnya mengapa Anda tidak dapat melewatkan soket dari satu proses ke proses lainnya tanpa membuat soket baru di proses lainnya.
Jika proses tidak ada lagi, soketnya tidak ada lagi. Tidak ada konsep soket tanpa proses untuk menahannya. Inilah sebabnya mengapa pengandar kernel Windows yang ingin membuat soket di tingkat kernel harus menentukan proses untuk memiliki soket atau memanggil fungsi dari konteks proses yang dapat memiliki soket. (Atau mereka dapat memanipulasi titik akhir secara langsung tanpa menggunakan soket.)
Pertanyaan Anda tampaknya bukan tentang soket tetapi tentang titik akhir komunikasi itu sendiri. Soket memiliki referensi ke titik akhir komunikasinya. Ketika soket hilang, jumlah referensi turun. Jika mencapai nol, itu akan dihapus segera setelah diizinkan mengingat persyaratan protokol komunikasi yang dikaitkan dengan titik akhir. TCP memiliki status TIME_WAIT di mana titik akhir harus disimpan untuk menangani paket "sisa".