出于研究目的,我一直在尝试学习使用ctypes来创建媒体驱动程序管理应用程序。使用fmifs.dll我能够实现格式和setlabel函数,但是我似乎无法实现chkdsk,尽管我已经显示了我的参数正确的文档。
CB_FUNC = WINFUNCTYPE(c_int, c_int, c_int, c_void_p)
FileManager = windll.LoadLibrary("fmifs.dll")
def Callback(command, modifier, arg):
print(command)
return 1
def check_disk(Drive, Format):
FileManager.ChkdskEx(c_wchar_p(Drive), c_wchar_p(Format),
True, False,False, False,
c_void_p(0), c_void_p(0), CB_FUNC(Callback))
check_disk('I:\\', 'FAT32')
编译器给我一条错误消息说"异常:访问冲突读取0x00000000",所以如果有人知道实现这个的正确方法,我将不胜感激。