Each time the below function is called the mbr is not changed... please help
an example call,
_SetMBRPartitionType("\\.\e:",$PARTITION_HIDDEN_FAT32)
Local Const $PARTITION_IFS = 7 ; IFS Partition
Local Const $PARTITION_FAT32 = 11 ; FAT32
Local Const $PARTITION_FAT32_XINT13 = 12 ; FAT32 using extended int13 services
Local Const $PARTITION_HIDDEN_FAT32 = 27 ; Hidden WIN95 OSR2 32-bit FAT
Local Const $PARTITION_HIDDEN_FAT32_LBA = 28 ; Hidden WIN95 OSR2 32-bit FAT, LBA-mapped
Local Const $FILE_ANY_ACCESS = 0
Local Const $PARTITION_STYLE_MBR = 0
Local Const $FILE_SHARE_NEITHER = 0
Local Const $FILE_OPEN_EXISTING = 3
Local Const $FILE_ATTRIBUTE_NORMAL = 128
Local Const $IOCTL_DISK_SET_PARTITION_INFO = 0x7C008
Local Const $IOCTL_DISK_UPDATE_PROPERTIES = 0x70140
Func _SetMBRPartitionType($sDevice, $sType)
Local Const $tagPARTITION_SET_MBR = "short;ubyte "& $sType;"
Local Const $tagPARTITION_SET_EX_MBR = _
"int " & $PARTITION_STYLE_MBR & ;" & _
$tagPARTITION_SET_MBR;"
Local $tPIX = DllStructCreate($tagPARTITION_SET_EX_MBR)
Local $hDevice
Local $a_hCall, $a_iCall
$a_hCall = DllCall("kernel32.dll", "hwnd", "CreateFile", _
"str", $sDevice, _
"dword", $FILE_ANY_ACCESS, _
"dword", 0, _
"ptr", $FILE_SHARE_NEITHER, _
"dword", $FILE_OPEN_EXISTING, _
"dword", $FILE_ATTRIBUTE_NORMAL, _
"ptr", 0)
$hDevice = $a_hCall[0]
$a_iCall = DllCall("kernel32.dll", "int", "DeviceIoControl", _
"hwnd", $hDevice, _
"dword", $IOCTL_DISK_SET_PARTITION_INFO_EX, _; IOCTL_DISK_SET_PARTITION_INFO_EX
"ptr", DllStructGetPtr($tPIX), _
"dword", DllStructGetSize($tPIX), _
"ptr", 0, _
"dword", 0, _
"dword*", 0, _
"ptr", 0)
$a_iCall = DllCall("kernel32.dll", "int", "DeviceIoControl", _
"hwnd", $hDevice, _
"dword", $IOCTL_DISK_UPDATE_PROPERTIES, _; IOCTL_DISK_UPDATE_PROPERTIES
"ptr", 0, _
"dword", 0, _
"ptr", 0, _
"dword", 0, _
"dword*", 0, _
"ptr", 0)
DllCall("kernel32.dll", "int", "CloseHandle", "hwnd", $hDevice)
EndFunc