السلام عليكم
مالخطا في هدا الكود يااخوة
ال handle دائما يساوي -1
Imports System
Imports System.Runtime.InteropServices
Public Class Form
Const GENERIC_READ = &H80000000
Const GENERIC_WRITE = &H40000000
Const OPEN_EXISTING = 3
Const FILE_SHARE_READ = &H1
Const FILE_SHARE_WRITE = &H2
Const FILE_ATTRIBUTE_NORMAL = &H80
Const FILE_FLAG_NO_BUFFERING = &H20000000
Const INVALID_HANDLE_VALUE = -1
Const INFINITE = -1
Const WAIT_OBJECT_0 = &H0
Const WAIT_TIMEOUT = &H102
Const FILE_FLAG_OVERLAPPED = &H4
Public Structure OVERLAPPED
Dim ternal As Long
Dim ternalHigh As Long
Dim offset As Long
Dim OffsetHigh As Long
Dim hEvent As Long
End Structure
'-----------------------------------------------------------------------------------create file function
Public Declare Function creerFichier Lib "KERNEL32.dll" Alias "CreateFileA" (ByVal lpFileName As String, _
ByVal dwDesiredAccess As Integer, _
ByVal dwShareMode As Integer, _
ByVal lpSecurityAttributes As IntPtr, _
ByVal dwCreationDisposition As Integer, _
ByVal dwFlagsAndAttributes As Integer, _
ByVal hTemplateFile As IntPtr) _
As IntPtr
'-----------------------------------------------------------------------------------read file function
Public Declare Function lireFichier Lib "kernel32.dll" Alias "ReadFileA" (ByVal hFile As Long, _
<System.Runtime.InteropServices.MarshalAsAttribute _
(System.Runtime.InteropServices.UnmanagedType.AsAny)> ByVal o As Object, _
ByVal nNumberOfBytesToRead As Long, ByVal lpNumberOfBytesRead As Long, _
ByRef lpOverlapped As OVERLAPPED) _
As Long
'-----------------------------------------------------------------------------------Wait function
Declare Function WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObjectA" (ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) _
As Long
'-----------------------------------------------------------------------------------close handle function
Declare Function CloseHandle Lib "kernel32" Alias "CloseHandleA" (ByVal hObject As Long) _
As Long
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ntfs.Text = checkntfs("\\.\C:")
End Sub
Public Function checkntfs(ByVal strDrive As String) As Boolean
Dim nRead As Integer
Dim hnd As IntPtr
Dim ret As UInt32
Dim Buffer(1024) As Byte
Dim ov As OVERLAPPED
Hnd = creerFichier("\\.\C:", _
GENERIC_READ, _
FILE_SHARE_READ, _
IntPtr.Zero, _
OPEN_EXISTING, _
FILE_ATTRIBUTE_NORMAL Or FILE_FLAG_NO_BUFFERING, _
0)
MsgBox(Hnd)
If (Hnd <> INVALID_HANDLE_VALUE) Then
ret = lireFichier(Hnd, Buffer, 1024, nRead, ov)
Else
Return False
End If
If ret = 0 Then
ret = WaitForSingleObject(Hnd, INFINITE)
Select Case ret
Case WAIT_OBJECT_0
Case WAIT_TIMEOUT
End Select
Else
Return False
End If
CloseHandle(Hnd)
Return Buffer(3) = 78 And Buffer(4) = 84 And Buffer(5) = 70 And Buffer(6) = 83
End Function
End Classوشكرا مقدما