क्या Win32 API का उपयोग कर किसी पीसी में सभी हार्ड डिस्क का क्रम संख्या प्राप्त करने का कोई आसान तरीका है?हार्ड डिस्क से सीरियल नंबर कैसे प्राप्त करें?
उत्तर
GetVolumeInformation आपका मित्र है।
GetVolumeInformation() आपको केवल वॉल्यूम का सीरियल नंबर देगा। डिस्क वॉल्यूम! = हार्ड डिस्क। वॉल्यूम धारावाहिक आमतौर पर डिस्क स्वरूपित होने पर 32-बिट टाइमस्टैम्प होता है। –
आप सही हैं। –
वॉल्यूम आईडी 101% अविश्वसनीय है क्योंकि इसे आसानी से बदला जा सकता है! – Ampere
GetVolumeInformation
आप ही के बारे में विभाजन या मात्रा जानकारी दे देंगे, न कि पूरी HDD के बारे में।
आपको जानकारी प्राप्त करने के लिए DeviceIoControl
फ़ंक्शन का उपयोग करना चाहिए।
यहाँ संभव कोड:
#include <atlstr.h>
#include <Windows.h>
#include <winioctl.h>
BOOL getSerial(CString diskSerial) {
BOOL bResult = FALSE;
STORAGE_PROPERTY_QUERY storagePropertyQuery;
STORAGE_DESCRIPTOR_HEADER storageDescHeader = { 0 };
STORAGE_DEVICE_DESCRIPTOR *pDeviceDesc;
DWORD dwBytes = 0;
DWORD dwOutBufferSize = 0;
DWORD dwSerialNumberOffset = 0;
BYTE *pOutBuffer = nullptr;
ZeroMemory(&storagePropertyQuery, sizeof(STORAGE_PROPERTY_QUERY));
storagePropertyQuery.PropertyId = StorageDeviceProperty;
storagePropertyQuery.QueryType = PropertyStandardQuery;
HANDLE hDevice = CreateFile("\\\\.\\PhysicalDrive0", 0,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, 0, NULL);
if (hDevice == INVALID_HANDLE_VALUE) {
std::cout << "Can't get access to HDD.\nTerminating." << std::endl;
exit(EXIT_FAILURE);
}
bResult = DeviceIoControl(hDevice, IOCTL_STORAGE_QUERY_PROPERTY,
&storagePropertyQuery, sizeof(storagePropertyQuery),
&storageDescHeader, sizeof(storageDescHeader),
&dwBytes, NULL);
dwOutBufferSize = storageDescHeader.Size;
try {
pOutBuffer = new BYTE[dwOutBufferSize];
ZeroMemory(pOutBuffer, sizeof(pOutBuffer));
} catch (std::bad_alloc exp) {
CloseHandle(hDevice);
std::cout << exp.what() << std::endl;
return FALSE;
}
bResult = DeviceIoControl(hDevice, IOCTL_STORAGE_QUERY_PROPERTY,
&storagePropertyQuery, sizeof(STORAGE_PROPERTY_QUERY),
pOutBuffer, dwOutBufferSize, &dwBytes, NULL);
pDeviceDesc = (STORAGE_DEVICE_DESCRIPTOR *)pOutBuffer;
dwSerialNumberOffset = pDeviceDesc->SerialNumberOffset;
diskSerial = CString(pOutBuffer + dwSerialNumberOffset);
std::cout << "Serial Number: " << diskSerial << std::endl;
delete[] pOutBuffer;
CloseHandle(hDevice);
return TRUE;
}
आप और अधिक तो 1 हार्ड ड्राइव स्थापित है, तो यू बदलना चाहिए "\\\\.\\PhysicalDrive0"
"\\\\.\\PhysicalDrive1"
करने आदि
यह प्रश्न का उत्तर हो सकता है। यह बेहतर होगा यदि आप कुछ उदाहरण डालते हैं (भविष्य के पाठक के लिए, यदि लिंक टूटा हुआ हो) –
@PriyeshKumar सलाह के लिए धन्यवाद, मैं सिर्फ स्टैक ओवरफ्लो के लिए नया हूं। – johnbrovi
- 1. मैक हार्ड डिस्क से सीरियल नंबर कैसे प्राप्त करें?
- 2. EXIF से कैमरा सीरियल नंबर कैसे प्राप्त करें?
- 3. डिवाइस से सीरियल नंबर पुनर्प्राप्त
- 4. हार्ड डिस्क विखंडन से कैसे बचें?
- 5. एटमेल यूसी 3 - सीरियल नंबर कैसे प्राप्त करें?
- 6. क्वेरी में सीरियल नंबर कैसे उत्पन्न करें?
- 7. डब्लूएमआई एचडीडी सीरियल नंबर ट्रांसपोज़
- 8. निष्पादन योग्य में सीरियल नंबर कैसे रिकॉर्ड करें?
- 9. वर्चुअल हार्ड डिस्क (.vhd) Defrag?
- 10. डेल्फी आरएडी स्टूडियो सीरियल नंबर
- 11. फ्लोट नंबर से अंश कैसे प्राप्त करें?
- 12. TraceDebugging मेरी सभी हार्ड डिस्क स्पेस
- 13. सीरियल नंबर कैसे उत्पन्न करें + चयन कथन में 1 जोड़ें
- 14. हार्ड डिस्क और प्रोसेसर spec दूरस्थ रूप से
- 15. जावा का उपयोग कर राम आकार और हार्ड डिस्क का आकार कैसे प्राप्त करें?
- 16. कमांड लाइन से हार्ड डिस्क और फ्लैश-डिस्क (या फाइल सिस्टम) के कैश को कैसे फ़्लश करें?
- 17. वास्तविक डिवाइस से मोबाइल नंबर प्राप्त करें
- 18. हार्ड डिस्क से एंड्रॉइड एमुलेटर के एसडी कार्ड में छवियों की प्रतिलिपि कैसे करें?
- 19. मैक ओएस एक्स पर सीरियल पोर्ट नंबर कैसे खोजें?
- 20. फोनगैप में आईएमईआई नंबर कैसे प्राप्त करें?
- 21. जावा में हार्ड लिंक गणना प्राप्त करें
- 22. सी ++ में किसी फ़ाइल से लाइन नंबर कैसे प्राप्त करें?
- 23. मैं एक सीरियल नंबर (पंजीकरण संख्या) कैसे उत्पन्न करूं?
- 24. हार्ड डिस्क ड्राइव से विंडोज़ को प्रोग्रामिक रूप से कैसे रोकें?
- 25. हार्ड डिस्क पर स्मृति और आकार में डीएलएल आकार
- 26. Google Checkout - एक्सएमएल एपीआई सहयोगी कॉलबैक सीरियल नंबर मूल ऑर्डर
- 27. प्रोग्रामिंग के रूप में आप आईफोन के सीरियल नंबर कैसे प्राप्त करते हैं?
- 28. मुफ्त डिस्क स्थान की गणना कैसे करें?
- 29. बाहरी हार्ड डिस्क में VMware वर्चुअल मशीनों को संग्रहीत करना
- 30. मैं अपने स्रोत कोड को उजागर किए बिना हार्ड डिस्क से कैसे छुटकारा पा सकता हूं?
, सं। आपको एक समर्पित निम्न स्तर (एएसएम) पुस्तकालय का उपयोग करने की आवश्यकता है। – Ampere