Bir sürücü için bir RAM sürücü olup olmadığı nasıl belirlenir

Makale çevirileri Makale çevirileri
Makale numarası: 113418 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

C dil işlevleri veya bir sürücü bir RAM sürücü olup olmadığını belirlemek için C çalışma zamanı işlevleri yoktur. GetDriveType() API işletim sisteminden türü belirli bir sürücü edinmek için Win32 uygulamaları tarafından çağrılabilir. Başvurudaki Win32 SDK, Visual C++ 32-bit Edition Books Online'da GetDriveType() hakkında daha fazla bilgi de bulunabilir.

Kullanılabilir hiçbir kesin bir yöntem olsa MS-DOS ve Win16 uygulamalar, belli bir sürücü "büyük olasılıkla" bir RAM sürücü olup olmadığını belirlemek için birkaç olası yol yok. Bu makalenin geri kalanında kısaca her biri için bir RAM sürücü denetlemek için dört yöntem tartışılacaktır. Ana sistem, her sürücü için tüm yöntemler denetlenmeli unutmayın.

Daha fazla bilgi

Yöntem 1

Sürücünün birim etiketini denetleyin. Bu büyük olasılıkla en yaygın yöntemdir. Microsoft RAMDRIVE.SYS bir "MS RAMDRIVE" birim etiketini kullanır. Ancak, bu birim etiketi olmasını garanti edilmez ve diğer şirketlerden RAM sürücülerinde birim etiketi olacaktır büyük bir olasılıkla. Bir kullanıcı da bu etiketi komutunu kullanarak değiştirebilir.

Yöntem 2

Engelleme aygıtları için genel bir g/Ç denetim işlevi olan kesme 21 h işlev 44 h subfunction 0Dh arayın. Aygıtların çoğu bu işlevi destekler. Ancak, RAMDRIVE.SYS şu anda bunu desteklemiyor. Bu desteğinin olmadığını bir RAM sürücü tanımlamak için kullanılır. CX kayıt ile disk sürücüsü aygıt parametreleri almak için 0860h yüklenemedi; işlevi başarısız olursa, taşıyan bayrağı ayarlı, çıkılıyor büyük olasılıkla bir RAM sürücü sürücüsüdür.

Yöntem 3

Sürücünün sahip kaç FAT tabloları denetleyin; yalnızca 1 varsa, büyük olasılıkla bir RAM sürücü. IOCTL RAMDRIVE.SYS desteklemediğinden işlevleri, FAT tabloları sayısını belirlemek için tek yol mutlak disk okuma INT 25 kullanmaktır. Bu işlevi almıştır ve desteklenen Windows altında uyarıları not alın. INT 25'i nasıl gösteren bir örnek ve daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
102870Bir sürücünün önyükleme kesimi okunuyor

Yöntem 4

Son olarak, <a1>kesme</a1> 21 h 44 h işlev çağrısı subfunction 09 h sürücü uzak olup olmadığını denetleyin. DX döndürülen değer 0x0800 ise, 11 kümesi, bit büyük bir olasılıkla bir RAM sürücü sürücüdür. Bu bir RAM sürücü olarak kesintinin bilinir. Bit 6 ve 7 açık olduğundan, bu aygıta IOCTL işlevlerini (aygıtların çoğu gibi kabul verilir. Bit 12 açık olduğu için bu bir ağ sürücüsündeki vb. değil.

Yukarıdaki yöntemlerden hiçbiri garantili olmadığı için bu yöntemlerin bir bileşimini kullanmak en iyisidir. Ilk belirgin, ağ sürücülerine, yerel sabit sürücüler, CD-ROM sürücüleri ve diğerleri gibi kaldırın. Belirli bir sürücünün bir RAM sürücü olup olmadığını belirlemek, daha sonra deneyin.

Özellikler

Makale numarası: 113418 - Last Review: 1 Mart 2014 Cumartesi - Gözden geçirme: 4.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C++ 1.0 Professional Edition
  • Microsoft Visual C++ 1.5 Professional Edition
  • Microsoft Visual C++ 2.0 Professional Edition
  • Microsoft Visual C++ 2.1
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbhowtomaster kblangc KB113418 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:113418

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com