win32读取raw扇区
来源:互联网 发布:优化新闻源的排名 编辑:程序博客网 时间:2024/05/17 04:20
#define WIN32_LEAN_AND_MEAN#include <stdio.h>#include <stdlib.h>#include <windows.h>#define BytesPerSector 512char Drive[] = "\\\\.\\PHYSICALDRIVE0";BOOL ReadPhysicalSector(LONGLONG SectorStart, ULONG SectorCount, PVOID p){ULONG nBytes;BOOL result = FALSE;HANDLE hDeviceHandle = NULL;hDeviceHandle = CreateFile(Drive,GENERIC_READ,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0, 0);if(hDeviceHandle){LARGE_INTEGER pointer;pointer.QuadPart = SectorStart;pointer.QuadPart *= BytesPerSector;SetFilePointer(hDeviceHandle, pointer.LowPart, &pointer.HighPart, FILE_BEGIN);if(ReadFile(hDeviceHandle, p, SectorCount*BytesPerSector, &nBytes, NULL))result = TRUE;elseprintf("read error %d\n", GetLastError());CloseHandle(hDeviceHandle);}else{printf("open error %d\n", GetLastError());}return result;}#define Printable(cc) ((cc>='a' && cc<='z')||(cc>='A' && cc<='Z'))int main(){int n = 2, s, i, j;UCHAR data[n*BytesPerSector], *p;if (ReadPhysicalSector(0, n, data)){for (s=0; s<n; s++){for (i=1; i<=BytesPerSector; i++){p = data + s*BytesPerSector;printf("%02x ", p[i-1]);if (i % 16 == 0){for (j=i-16; j<i; j++)printf("%c", Printable(p[j])?p[j]:'.');printf("\n");}else if (i % 8 == 0) printf(" ");}printf("-----------------------------------------------------------------\n");}}return 0;}
0 0
- win32读取raw扇区
- C++读取磁盘扇区
- 读取硬盘扇区的数据
- linux读取硬盘指定扇区
- 通过扇区读取文件内容
- (WIN32和Kernel)直接读写硬盘扇区.
- WIN32和Kernel直接读写硬盘扇区.
- (WIN32和Kernel)直接读写硬盘扇区
- WIN32和Kernel直接读写硬盘扇区
- RAW文件的读取
- RAW文件的读取
- 读取Raw下文本文件
- itk读取raw 图片
- 读取raw文件
- raw 文件读取
- 读取光驱上的指定扇区
- 读取软盘逻辑扇区的汇编过程
- 磁盘扇区数据的读取和写入
- 了解oracle表空间操作详解
- strlen和strcpy_s引发的堆破坏
- [三分]ZOJ3203Light Bulb
- oracle 10g开启审计
- Java Android 环境变量配置
- win32读取raw扇区
- xcode 中生成和打包 ipa文件的方法和步骤
- POJ2533(最长递增子序列)
- 编译原理学习笔记08——(没有国你什么都不是之FOLLOW ME—推导笔记06的FOWLOW集)——2014_1_24
- HDU 1205 吃糖果
- 数据库clone(ebs)2
- svchost.exe应用程序错误怎么办,我来告诉你
- 数据库的clone(ebs)3
- uva10158 - War 并查集判断同伙的两种方法