RPC NDR Biçim Dizeleri
NDR Altyapısı: 32 bit Yorumlayıcı
Bu belgede, 32 bit NDR altyapısı için bazen MOP'ler olarak da adlandırılan biçim dizesi tanımlayıcıları açıklanmaktadır. Bu bölümde, –Oi yorumlayıcıdan –Oif yorumlayıcı katmanına evrimle ilişkili değişikliklerin yanı sıra kanallar ve zaman uyumsuz destekle ilgili eklemeler açıklanmaktadır.
Bu belgede, altyapı perspektifinden ve geçerli NDR altyapısından geçerli Microsoft Arabirim Tanımlama Dili (MIDL) teknolojisi açıklanmaktadır.
Genel bakış
NDR altyapısı, Uzaktan Yordam Çağrısı (RPC) ve DCOM bileşenlerinin hazırlama altyapısıdır. Uzak bir çağrının saplamayla ilgili tüm sorunlarını işler. Bir işlem olarak NDR hazırlama, MIDL tarafından oluşturulan saplamalardan, MIDL JIT türü oluşturucudan veya diğer araçlar tarafından oluşturulan veya el ile yazılan saplamalardan gelen C kodu tarafından yönlendirilir. Buna karşılık, NDR altyapısı belirli aktarımlarla iletişim kuran temel çalışma süresini (DCOM veya RPC) çalıştırır.
Tasarımın özgün amacı, MIDL derleyicisi tarafından sağlanan bilgilere dayalı olarak rastgele veriler için etkili bir sıralama aracı sağlamaktı. Bu belgede açıklanan biçim dizeleri ve aslında NDR altyapısı tüketimi için derleyici tarafından oluşturulan tüm bilgiler her zaman derleyici ile altyapı arasında bir iç arabirim olarak kabul edilmiştir. Benzer şekilde, çalışma zamanı sorunlarını işlemek için altyapı tarafından kullanılabilen arabirimler de çoğunlukla iç arabirimlerdir (bazı özel durumlar RPC çalışma zamanı tarafında bulunur ve altyapı tarafından kullanılan bazı DCOM arabirimleri dıştır).
Sıralamaya yönelik iki tipik yaklaşım her zaman satır içi ve veri odaklı (yorumlanmış) teknoloji olmuştur. MIDL, C tarafından oluşturulan saplamalarında hem –Os hem de –Oi* anahtarları aracılığıyla destekler. Ayrıca MIDL, oleautomation paketi tarafından kullanılan TLB kitaplıklarını oluşturabilir. Buna göre, motorun iç kısımlarından biri iki parçadan oluşmasıdır.
Birincisi, bir yapı veya dizi gibi tipik veri türü nesnelerine karşılık gelen boyutlandırma, sıralama vb. işlemleri işleyen bir dizi yordamdır. Bu yordamlar performans için ince ayarlıdır; örneğin, genellikle mümkün olan her yerde verileri engellemeye çalışırlar. Bu bölüm genellikle çekirdek NDR altyapısı olarak adlandırılır.
İkinci bölüm bir yorumlayıcı ve ilgili parçalardan oluşur. Yorumlayıcı, tüm bağımsız değişkenleri uygun şekilde sıralanmış ve özetlenmemiş bir uzak çağrı yürütmek için bir iç kitaplıktaki gibi çekirdek NDR altyapısındaki yordamları kullanır.
Çekirdek NDR altyapısı, satır içi saplamalardan veya yorumlayıcıdan benzer şekilde kullanılır. Tüm çekirdek altyapı yordamları, saplama iletisi yapısı tarafından geçirilen duruma bağlıdır. Yapı satır içi saplama veya yorumlayıcı tarafından uygun şekilde ayarlanır. Yıllar içinde çekirdek altyapı farklı bir bağlamda kullanılmıştı; şu anda yorumlayıcı aslında birkaç ayrı yorumlayıcı döngüsü kümesidir. Bunlar eski ve yeni (–Oi ve –Oif) yorumlayıcılarının yanı sıra veri serileştirme (pickling), RPC zaman uyumsuz desteği ve DCOM zaman uyumsuz desteği (RPC ve DCOM farklı zaman uyumsuz programlama modellerine sahiptir) ile ilişkilidir.
Yeni özelliklerin eklenmesinin ötesinde, NDR altyapısının evriminin önemli bir yönü, yorumlayıcılara yaklaşımda genel bir değişimdir. NDR sürüm1.1, sıralamaya yönelik yeni bir MIDL 2.0 yaklaşımının bir parçası olarak başladı ve satır içi saplamalar performans açısından tercih ediliyor. NDR'nin en son sürümüyle, –Oif neredeyse satır içi saplamaların dışlanması için derleyicinin en yaygın kullanılan modu haline gelmiştir.
RPC NDR Altyapısı biçim dizesi tanımlayıcıları aşağıdaki konularda daha ayrıntılı olarak açıklanmıştır:
- Biçim Dizeleri
- Yordam Biçim Dizeleri
- Yordam Üst Bilgi Tanımlayıcısı
- Tanıtıcıları
- Üst Bilgi
- Parametre Tanımlayıcıları
- Tür Biçim Dizeleri