की रोटेशन स्पीड प्राप्त करें मैं वीसी ++ में वास्तव में अच्छा नहीं हूं लेकिन क्या किसी के पास कंप्यूटर में डिस्क की रोटेशन गति प्राप्त करने के लिए नमूना कोड है। मैं एसएसडी ड्राइव का पता लगाने पर काम कर रहा हूं और पूरे दिन शोध करने से एक समाधान रोटेशन की गति प्राप्त करना था और चूंकि एसएसडी में 0 आरपीएम है, यह एसएसडी ड्राइव का पता लगाने का एकमात्र तरीका हो सकता है।डिस्क नमूना कोड
उत्तर
एक NV कैश प्रबंधक interface used for ReadyDrive जो विस्टा के लिए नई है नहीं है। मुझे लगता है कि यह NV_FEATURE_PARAMETER के NVReadSpeed और NVWrtSpeed मानों का परीक्षण कर रहा है।
विंडोज 7 एटीए 8-एसीएस का उपयोग करके एसएसडी का पता लगाता है शब्द 217: नाममात्र मीडिया रोटेशन दर, मूल्य 0001h के साथ ठोस राज्य उपकरणों जैसे गैर घूर्णन मीडिया के रूप में। लेकिन सभी एसएसडी एटीए 8-एसीएस 1 स्पेक सेक्शन 7.16.7.77 का पालन नहीं करते हैं, कुछ को फर्मवेयर अपडेट की आवश्यकता हो सकती है।
यदि आप विंडोज़ में एटीए कमांड भेजने के बारे में और अधिक झुकाव करना चाहते हैं, तो मैं आपको स्टोरेज प्लेटफार्म एटीए मंच को खोदने का सुझाव देता हूं। इस मंच को संग्रहीत किया जा रहा है इसलिए जल्दी कार्य करें।
इसके अलावा बहुत शिक्षाप्रद:
http://blogs.msdn.com/b/e7/archive/2009/05/05/support-and-q-a-for-solid-state-drives-and.aspx
विल डिस्क defragmentation SSDs पर डिफ़ॉल्ट रूप से अक्षम हो?
हां। डीफ्रैग्मेंटेशन का स्वचालित शेड्यूलिंग उन उपकरणों पर विभाजन को बहिष्कृत करेगा जो स्वयं को एसएसडी के रूप में घोषित करते हैं। इसके अतिरिक्त, यदि सिस्टम डिस्क में 8 एमबी/सेकंड की दहलीज के ऊपर प्रदर्शन विशेषताओं को यादृच्छिक पढ़ा गया है, तो इसे भी बाहर रखा जाएगा। दहलीज आंतरिक विश्लेषण द्वारा निर्धारित किया गया था।
आप संभवतः टीआरआईएम कमांड की तलाश में बेहतर हैं।
BOOL IsDriveSSD(){
DWORD dwBytesReturned;
HANDLE volhand = INVALID_HANDLE_VALUE;
try{
volhand = CreateFile("\\\\.\\PHYSICALDRIVE0", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
}
catch(...){
volhand = INVALID_HANDLE_VALUE;
}
if (volhand == INVALID_HANDLE_VALUE) return FALSE;
// Test 1: See if we have a TRIM command, if so, we're SSD.
STORAGE_PROPERTY_QUERY spq;
DEVICE_TRIM_DESCRIPTOR dtr;
memset(&dtr,0,sizeof(DEVICE_TRIM_DESCRIPTOR));
memset(&spq,0,sizeof(STORAGE_PROPERTY_QUERY));
spq.PropertyId=StorageDeviceTrimProperty;
spq.QueryType=PropertyStandardQuery;
BOOL ret = DeviceIoControl(volhand, IOCTL_STORAGE_QUERY_PROPERTY,
&spq,sizeof(spq),
&dtr,sizeof(dtr),
&dwBytesReturned,FALSE);
if(ret){
ret = dtr.TrimEnabled;
}
CloseHandle(volhand);
return ret;
}
मेरा मानना है कि यह दृढ़ता से ओएस-विशिष्ट है, तो आप एक ऑपरेटिंग सिस्टम में आपकी रुचि है निर्दिष्ट करना चाहिए। – Kos
मेरे लक्ष्य ओएस विंडोज 7 है। – patlimosnero