?? 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 + -