Aracılığıyla paylaş


Sistemin anlık görüntüleri

Anlık görüntüler, araç yardım işlevlerinin merkezinde yer alır. Anlık görüntü, sistem belleğinde bulunan aşağıdaki listelerden birinin veya daha fazlasının geçerli durumunun salt okunur bir kopyasıdır: işlemler, iş parçacıkları, modüller ve yığınlar.

Aracı kullanan işlemler, işlevlerin bu listelere doğrudan işletim sisteminden değil anlık görüntülerden erişmesine yardımcı olur. İşlemler başlatılıp sona erdiğinde, iş parçacıkları oluşturulup yok edildiğinde, yürütülebilir modüller sistem belleğinden yüklenip kaldırıldığında ve yığınlar oluşturulup yok edildiğinde sistem belleğindeki listeler değişir. Anlık görüntüdeki bilgilerin kullanılması tutarsızlıkları önler. Aksi takdirde, bir listede yapılan değişiklikler bir iş parçacığının listede yanlış geçiş yapmasına veya erişim ihlaline (GP hatası) neden olabilir. Örneğin, bir uygulama diğer iş parçacıkları oluşturulurken veya sonlandırılırken iş parçacığı listesinden geçerken, uygulamanın iş parçacığı listesinden geçmek için kullandığı bilgiler güncel olmayabilir ve uygulamanın listeden geçiş yaparken hataya neden olabilir.

Sistem belleğinin anlık görüntüsünü almak için CreateToolhelp32Snapshotişlevinikullanın. Bu işlevi çağırırken aşağıdaki değerlerden birini veya daha fazlasını belirterek anlık görüntünün içeriğini denetleyebilirsiniz:

  • TH32CS_SNAPHEAPLIST
  • TH32CS_SNAPMODULE
  • TH32CS_SNAPPROCESS
  • TH32CS_SNAPTHREAD

TH32CS_SNAPHEAPLIST ve TH32CS_SNAPMODULE değerleri işleme özeldir. Bu değerler belirtildiğinde, belirtilen işlemin yığın ve modül listeleri anlık görüntüye eklenir. İşlem tanımlayıcısı olarak sıfır belirtirseniz geçerli işlem kullanılır. TH32CS_SNAPTHREAD değeri, createToolhelp32Snapshotbir işlem tanımlayıcısı geçirilse bile her zaman sistem genelinde bir anlık görüntü oluşturur.

Tüm işlemler için yığın veya modül durumunu numaralandırmak için geçerli işlemin TH32CS_SNAPALL değerini ve işlem tanımlayıcısını belirtin. Ardından, anlık görüntüdeki her ek işlem için createtoolhelp32Snapshotçağırın ve işlem tanımlayıcısını ve TH32CS_SNAPHEAPLIST veya TH32CS_SNAPMODULE değerini belirtin.

GetLastErrorişlevini kullanarak CreateToolhelp32Snapshot için genişletilmiş bir hata durum kodu alabilirsiniz.

İşleminiz anlık görüntü kullanarak tamamlandığında, CloseHandle işlevini kullanarak yok edin. Bir anlık görüntüyü yok ederseniz, sistem belleği geri kazanıncaya kadar işlem bellek sızıntısına neden olur.

Not

Anlık görüntü tanıtıcısı bir dosya tanıtıcısı gibi davranır ve kullanabildiği işlemler ve iş parçacıklarıyla ilgili olarak aynı kurallara tabidir. Tanıtıcının devralınabilir olduğunu belirtmek için TH32CS_INHERIT değerini kullanarak anlık görüntüyü oluşturun.

 

Anlık Görüntü Alma ve İşlemleri Görüntüleme