Birbirine Bağlı Tek Bağlantılı Listeler
tek bağlantılı bağlantılı liste (SList) bağlı listeden ekleme ve silme görevini kolaylaştırır. Listeler, atomik eşitleme sağlamak, sistem performansını artırmak ve öncelik ters çevirme ve konvoyları kilitleme gibi sorunları önlemek için engelleyici olmayan bir algoritma kullanılarak uygulanır.
Listelerin 32 bit kodda uygulanması ve kullanılması kolaydır. Ancak, yerel kilitlenmiş exchange ilkelleri tarafından değiştirilebilir veri miktarı 32 bit kodda olduğu gibi adres boyutunun iki katı olmadığından, bunları 64 bit kodda uygulamak zordur. Bu nedenle, Listeler üst düzey ölçeklenebilir algoritmaların Windows'a taşımasını sağlar.
Windows 8: Windows 8'den başlayarak, 64 bit kod için uygun yerel kilitlenmiş exchange temel bileşenleri kullanılabilir, örneğin InterlockedCompare64Exchange128.
Uygulamalar listenin başını başlatmak için InitializeSListHead işlevini çağırarak Listeleri kullanabilir. Listeye öğe eklemek için InterlockedPushEntrySListişlevinikullanın. Listedeki öğeleri silmek için InterlockedPopEntrySListişlevinikullanın.
Tüm liste öğeleri bir MEMORY_ALLOCATION_ALIGNMENT sınırına hizalanmalıdır. Hizalanmamış öğeler öngörülemeyen sonuçlara neden olabilir. bkz. _aligned_malloc.
Örnek için bkz. Tek Bağlantılı Listeleri Kullanma.
Aşağıdaki tabloda SList işlevleri listelenmektedir.
Fonksiyon | Açıklama |
---|---|
InitializeSListHead | Tek bağlantılı listenin başını başlatır. |
InterlockedFlushSList | Tek bağlantılı bir listedeki öğelerin listesinin tamamını temizler. |
InterlockedPopEntrySList | Tek bağlantılı listenin önünden bir öğeyi kaldırır. |
InterlockedPushEntrySList | Tek bağlantılı listenin önüne öğe ekler. |
InterlockedPushListSList | Başka bir tek bağlantılı listenin önüne tek bağlantılı bir liste ekler. |
InterlockedPushListSListEx | Başka bir tek bağlantılı listenin önüne tek bağlantılı bir liste ekler. Yönteminin bu sürümü __fastcall çağırma kuralını kullanmaz. |
RtlFirstEntrySList | Tek bağlantılı listedeki ilk girdiyi alır. |
QueryDepthSList | Belirtilen tek tek bağlı listedeki girdi sayısını alır. |