الحزمة الرئيسية يستورد ( "إف إم تي" "نداء النظام" "غير آمن" ) الوظيفة الرئيسية () { فار lpRootPathName = "C:\\" فار lpVolumeNameBuffer = make([]uint16, syscall.MAX_PATH 1) فار nVolumeNameSize = uint32(len(lpVolumeNameBuffer)) فار lpVolumeSerialNumber uint32 فار lpMaximumComponentLength uint32 فار lpFileSystemFlags uint32 فار lpFileSystemNameBuffer = make([]uint16, 255) فار nFileSystemNameSize uint32 = syscall.MAX_PATH 1 kernel32، _ := syscall.LoadLibrary("kernel32.dll") getVolume، _ := syscall.GetProcAddress(kernel32, "GetVolumeInformationW") فار نارجس uintptr = 8 ret, _, callErr := syscall.Syscall9(uintptr(getVolume), نرجس, uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpRootPathName))), uintptr(unsafe.Pointer(&lpVolumeNameBuffer[0]))), uintptr(nVolumeNameSize), uintptr(unsafe.Pointer(&lpVolumeSerialNumber))), uintptr(unsafe.Pointer(&lpMaximumComponentLength))), uintptr(unsafe.Pointer(&lpFileSystemFlags)), uintptr(unsafe.Pointer(&lpFileSystemNameBuffer[0]))), uintptr(nFileSystemNameSize), 0) fmt.Println(ret, callErr, syscall.UTF16ToString(lpVolumeNameBuffer))
package main import ( "fmt" "syscall" "unsafe" ) func main() { var lpRootPathName = "C:\\" var lpVolumeNameBuffer = make([]uint16, syscall.MAX_PATH 1) var nVolumeNameSize = uint32(len(lpVolumeNameBuffer)) var lpVolumeSerialNumber uint32 var lpMaximumComponentLength uint32 var lpFileSystemFlags uint32 var lpFileSystemNameBuffer = make([]uint16, 255) var nFileSystemNameSize uint32 = syscall.MAX_PATH 1 kernel32, _ := syscall.LoadLibrary("kernel32.dll") getVolume, _ := syscall.GetProcAddress(kernel32, "GetVolumeInformationW") var nargs uintptr = 8 ret, _, callErr := syscall.Syscall9(uintptr(getVolume), nargs, uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpRootPathName))), uintptr(unsafe.Pointer(&lpVolumeNameBuffer[0])), uintptr(nVolumeNameSize), uintptr(unsafe.Pointer(&lpVolumeSerialNumber)), uintptr(unsafe.Pointer(&lpMaximumComponentLength)), uintptr(unsafe.Pointer(&lpFileSystemFlags)), uintptr(unsafe.Pointer(&lpFileSystemNameBuffer[0])), uintptr(nFileSystemNameSize), 0) fmt.Println(ret, callErr, syscall.UTF16ToString(lpVolumeNameBuffer)) }
الاستنتاج
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3