📄 cooperator.h
字号:
// [out] 用于保存返回值的缓冲,宽字符串.
// len
// [in] 缓冲大小.
//
//返回值:成功则返回TRUE.
//
//备注:
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsdQueryProcessFileName(
DWORD Pid,
char *FileName,
int len);
/////////////////////////////////////////////////////////////////////
////IsdGetModuleFileName
//
//目的:获取指定进程的指定模块的文件路径名
//
//参数:
// Pid
// [in] 进程PID
// hModule
// [in] 模块句柄
// lpFilename
// [out] 用于保存返回值的缓冲,宽字符串.
// nSize
// [in] 缓冲大小.
//
//返回值:成功则返回TRUE.
//
//备注:
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsdGetModuleFileName(
DWORD Pid,
HMODULE hModule,
LPTSTR lpFilename,
DWORD nSize);
/////////////////////////////////////////////////////////////////////
////IsdCreateFile
//
//目的:创建或打开文件(目录也是特殊的文件)
//
//参数:
// lpFileName
// [in] 文件路径全名.
// dwDesiredAccess
// [in] 文件访问权限.
// dwShareMode
// [in] 共享模式.
// lpSecurityAttributes
// [in] 始终为NULL.
// dwCreationDisposition
// [in] 创建打开部署.
// dwFlagsAndAttributes
// [in] 标志属性.
// hTemplateFile
// [in] 始终为NULL.
//
//返回值:成功则返回打开句柄,否则返回INVALID_HANDLE_VALUE.
//
//备注:它是系统API CreateFile的子集,使用上差不多,需要注意的是:
// 1、lpSecurityAttributes、hTemplateFile不支持,应传入NULL.
// 2、只能用它来创建或打开硬盘文件.
// 3、对它来说文件访问权限dwDesiredAccess其实没有什么意义,默认
// 就有所有的权限,一般传入0就好.
// 4、传回的句柄是由IceSword维护的,并不是windows内核句柄,不能
// 用它来使用系统api.
// 6、IceSword限制了每个协件进程的句柄表大小,文件、注册表仅可打
// 开1000个句柄.
// 5、一定要传入文件路径全名.
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) HANDLE IsdCreateFile(
LPCSTR lpFileName,
ULONG dwDesiredAccess,
ULONG dwShareMode,
PVOID lpSecurityAttributes,
ULONG dwCreationDisposition,
ULONG dwFlagsAndAttributes,
HANDLE hTemplateFile);
/////////////////////////////////////////////////////////////////////
////IsdFindFile
//
//目的:枚举目录
//
//参数:
// hFile
// [in] 目录句柄,由IsdCreateFile返回.
// lpFindFileData
// [out] ISD_WIN32_FIND_DATA结构指针.
// ReSet
// [in] 重置.
//
//返回值:成功则返回TRUE.
//
//备注:它将系统API FindFirstFile、FindNextFile功能集合在一起:
// 1、ReSet为TRUE则从第一个文件从头枚举.
// 2、置ReSet为FALSE重复调用IsdFindFile则可枚举hFile所指目录的所
// 有文件,请看示例.
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsdFindFile(
HANDLE hFile,
PISD_WIN32_FIND_DATA lpFindFileData,
BOOL ReSet);
/////////////////////////////////////////////////////////////////////
////IsdCloseHandle
//
//目的:关闭句柄
//
//参数:
// hFile
// [in] 文件或目录句柄.
//
//返回值:成功则返回TRUE.
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsdCloseHandle(HANDLE hFile);
/////////////////////////////////////////////////////////////////////
////IsdReadFile
//
//目的:读文件
//
//参数:
// hFile
// [in] 文件句柄.
// lpBuffer
// [out] 读缓冲.
// nNumberOfBytesToRead
// [in] 需要读取的大小.
// lpNumberOfBytesRead
// [out] 成功后返回实际读取大小.
// lpOverlapped
// [in] 始终为NULL.
//
//返回值:成功则返回TRUE.
//
//备注:它是系统API ReadFile的子集,使用上差不多,需要注意的是:
// 1、lpOverlapped不支持,应传入NULL.
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsdReadFile(
HANDLE hFile,
PVOID lpBuffer,
ULONG nNumberOfBytesToRead,
PULONG lpNumberOfBytesRead,
LPOVERLAPPED lpOverlapped);
/////////////////////////////////////////////////////////////////////
////IsdWriteFile
//
//目的:读文件
//
//参数:
// hFile
// [in] 文件句柄.
// lpBuffer
// [out] 写缓冲.
// nNumberOfBytesToWrite
// [in] 需要写入的大小.
// lpNumberOfBytesWritten
// [out] 成功后返回实际写入大小.
// lpOverlapped
// [in] 始终为NULL.
//
//返回值:成功则返回TRUE.
//
//备注:它是系统API WriteFile的子集,使用上差不多,需要注意的是:
// 1、lpOverlapped不支持,应传入NULL.
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsdWriteFile(
HANDLE hFile,
PVOID lpBuffer,
ULONG nNumberOfBytesToWrite,
PULONG lpNumberOfBytesWritten,
LPOVERLAPPED lpOverlapped);
/////////////////////////////////////////////////////////////////////
////IsdSetFilePointerEx
//
//目的:设置打开文件的指针位置
//
//备注:它与系统API SetFilePointerEx用法相同,不赘述.
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsdSetFilePointerEx(
HANDLE hFile,
LARGE_INTEGER liDistanceToMove,
PLARGE_INTEGER lpNewFilePointer,
ULONG dwMoveMethod);
/////////////////////////////////////////////////////////////////////
////IsdGetFileSizeEx
//
//目的:设置打开文件的指针位置
//
//备注:它与系统API GetFileSizeEx用法相同,不赘述.
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsdGetFileSizeEx(
HANDLE hFile,
PLARGE_INTEGER lpFileSize);
/////////////////////////////////////////////////////////////////////
////IsdGetFileTime
//
//目的:设置打开文件的指针位置
//
//备注:它与系统API GetFileTime用法相同,不赘述.
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsdGetFileTime(
HANDLE hFile,
LPFILETIME lpCreationTime,
LPFILETIME lpLastAccessTime,
LPFILETIME lpLastWriteTime);
/////////////////////////////////////////////////////////////////////
////IsdSetFileTime
//
//目的:设置打开文件的指针位置
//
//备注:它与系统API SetFileTime用法相同,不赘述,但注意这个函数3个指
// 针都不能为空.
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsdSetFileTime(
HANDLE hFile,
const FILETIME *lpCreationTime,
const FILETIME *lpLastAccessTime,
const FILETIME *lpLastWriteTime);
extern "C" __declspec(dllimport) LONG IsdSetInformationFile(
HANDLE hFile,
PVOID FileInformation,
ULONG Length,
FILE_INFORMATION_CLASS FileInformationClass);
extern "C" __declspec(dllimport) LONG IsdQueryInformationFile(
HANDLE hFile,
PVOID FileInformation,
ULONG Length,
FILE_INFORMATION_CLASS FileInformationClass);
extern "C" __declspec(dllimport) INT IsdReadProcessMemory(
DWORD pid,
PVOID BaseAddress,
PVOID Buf,
UINT Len);
extern "C" __declspec(dllimport) INT IsdWriteProcessMemory(
DWORD pid,
PVOID BaseAddress,
PVOID Buf,
UINT Len);
//
////使用IsdOpenKey打开的句柄也应使用IsdCloseHandle关闭。对注册表 协件dll中暂时只导出这几个,见谅:)
////使用上比较麻烦,参考例子
//
extern "C" __declspec(dllimport) BOOL IsdOpenKey(
OUT PHANDLE KeyHandle,
IN ACCESS_MASK DesiredAccess,
IN HANDLE RootDirectory,
IN PWCHAR KeyName);
extern "C" __declspec(dllimport) NTSTATUS IsdEnumerateKey(
IN HANDLE KeyHandle,
IN ULONG Index,
IN KEY_INFORMATION_CLASS KeyInformationClass,
OUT PVOID KeyInformation,
IN ULONG Length,
IN PULONG ResultLength);
extern "C" __declspec(dllimport) NTSTATUS IsdEnumerateValueKey(
IN HANDLE KeyHandle,
IN ULONG Index,
IN KEY_VALUE_INFORMATION_CLASS KeyInformationClass,
OUT PVOID KeyInformation,
IN ULONG Length,
IN PULONG ResultLength);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -