阅读:1213回复:6
有谁知道sysinternals上面的sync是怎么实现的吗?
有谁知道sysinternals上面的sync是怎么实现的吗?这个主要是把cache里面的数据刷新到磁盘里面,不知道怎么实现的,有谁了解吗?谢谢了!
|
|
沙发#
发布于:2007-11-22 11:22
IRP_MJ_FLUSH_BUFFERS ??
|
|
板凳#
发布于:2007-11-22 12:09
应该有这个,但是肯定不仅仅是这个
|
|
地板#
发布于:2007-11-22 13:52
#include <windows.h>
#include <stdio.h> int main(int argc, char **argv) { DWORD drives = GetLogicalDrives(); int drive; for (drive = 0; drive < 32; drive++) { if (drives & (1 << drive)) { char name[10]; if (_snprintf(name, sizeof(name), "%c:\\", 'A' + drive) == -1) exit(-1); if (GetDriveType(name) == DRIVE_FIXED) { HANDLE h_disk; if (_snprintf(name, sizeof(name), "\\\\.\\%c:", 'A' + drive) == -1) exit(-1); h_disk = CreateFile(name, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if (h_disk == (HANDLE)-1) continue; if (FlushFileBuffers(h_disk)) printf("%c", 'A' + drive); CloseHandle(h_disk); } } } return 0; } |
|
地下室#
发布于:2007-11-23 15:10
哈哈,谢谢大家,我觉得效果好像有点差异,当然这个不怎么好比较
|
|
5楼#
发布于:2007-11-30 15:57
IOCTL_VOLSNAP_FLUSH_AND_HOLD_WRITES
|
|
6楼#
发布于:2007-12-07 09:39
你说的这个ioctl有吗?大侠
引用第5楼lovehhy于2007-11-30 15:57发表的 : |
|