Tải bản đầy đủ (.pdf) (6 trang)

Cracker Handbook 1.0 part 27 pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (89.53 KB, 6 trang )

int x, // horizontal position of window
int y, // vertical position of window
int nWidth, // window width
int nHeight, // window height
HWND hWndParent, // handle of parent or owner window
HMENU hMenu, // handle of menu, or child-window identifier
HINSTANCE hInstance, // handle of application instance
LPVOID lpParam // address of window-creation data
);
Returns
Nếu function hoàn thành, giá trị trả về là handle của window mới.
Nếu function không hoàn thành, giá trị trả về là NULL.

SendMessageA / SendMessageW
Hàm SendMessage có nhiệm vụ gởi specified message đến window hoặc windows.
Hàm này gọi window procedure cho specified window và không quay về cho đến
khi window procedure gởi xong message. Ngược lại, hàm PostMessage có nhiệm
vụ post message đến message của thread và trở về ngay lập tức.
Code:
LRESULT SendMessage(
HWND hwnd, // handle of destination window
UINT uMsg, // message to send
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
Returns
Giá trị trả về ghi kết quả của message processing và dựa vào message đã được gởi.

ShowWindow
Hàm ShowWindow có nhiệm vụ set trạng thái hiện ra của specified window.
Code:


BOOL ShowWindow(
HWND hwnd, // handle of window
int nCmdShow // show state of window
);
Returns
Nếu window được thấy, giá trị trả về là TRUE. Nếu window bị che, giá trị trả về là
FALSE.

UpdateWindow
Hàm UpdateWindow có nhiệm vụ cập nhật client area của specified window bằng
cách gởi WM_PAINT message đến window nếu vùng update của window không
trống. Hàm này gởi thẳng WM_PAINT message đến window procedure của
specified window, bỏ qua application queue. Nếu vùng update trống thì message sẽ
không được gửi đi.
Code:
BOOL UpdateWindow(
HWND hwnd // handle of window
);
Returns
Nếu function hoàn thành, giá trị trả về là TRUE.
Nếu function không hoàn thành, giá trị trả về là FALSE.

The_lighthouse(REA)
03.4 File Accesses
===========
_lread
Hàm _lread có nhiệm vụ đọc dữ liệu từ specified file. Hàm này tương thích với
phiên bản 16-bit của Window. Còn đối với Win32 thì chúng ta nên dùng hàm
ReadFile
Code:

UINT _lread(
HFILE hFile, // handle of file
LPVOID lpBuffer, // address of buffer for read data
UINT uBytes // length, in bytes, of data buffer
);
Returns
Giá trị trả về cho biết số byte đã đọc được từ file. Nếu số byte nhỏ hơn nhỏ hơn
uBytes, function reach đoạn cuối của file trước khi đọc số byte xác định

_lwrite
Hàm _lwrite có nhiệm vụ viết dữ liệu vào specified file. Hàm này tương thích với
phiên bản 16-bit của Window. Còn đối với Win32 thì chúng ta nên dùng hàm
WriteFile
Code:
UINT _lwrite(
HFILE hFile, // handle of file
LPCSTR lpBuffer, // address of buffer for data to be written
UINT uBytes // number of bytes to write
);
Returns
Nếu function hoàn thành , giá trị trả về cho biết số byte đã viết được vào file.
Nếu function không hoàn thành , giá trị trả về là HFILE_ERROR. Để có thông tin
về lỗi, chúng ta sử dụng hàm GetLastError.

CreateFileA / CreateFileW
Hàm CreateFile có nhiệm vụ tạo ra, mở, hoặc truncate file, pipe(đường dẫn),
communication resource, disk device hoặc console. Nó return handle mà có thể
được dùng để truy cập đối tượng. Nó cũng có thể mở và return handle to directory
Code:
HANDLE CreateFile(

LPCTSTR lpFileName, // address of name of the file
DWORD dwDesiredAccess, // access (read-write) mode
DWORD dwShareMode, // share mode
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // address of
security descriptor
DWORD dwCreationDistribution, // how to create
DWORD dwFlagsAndAttributes, // file attributes
HANDLE hTemplateFile // handle of file with attributes to
copy
);
Returns
Nếu function hoàn thành, giá trị trả về là open handle của specified file. Nếu
specified file không tồn tại trước khi function gọi và dwCreationDistribution là
CREATE_ALWAYS hoặc OPEN_ALWAYS, lệnh gọi GetLastError trở về
ERROR_ALREADY_EXISTS (ngay cả khi function đã hoàn thành). Còn nếu file
tồn tại trước khi gọi, GetLastError trả về 0
Nếu function không hoàn thành , giá trị trả về là INVALID_HANDLE_VALUE.
Để có thông tin về lỗi, chúng ta dùng lệnh GetLastError

GetPrivateProfileIntA / GetPrivateProfileIntW
Hàm GetPrivateProfileIntA có nhiệm vụ tìm integer associated với key trong
section chỉ định của flie khởi tạo đã quy định. Hàm này tương thích với phiên bản
16-bit của Window. Còn đối với Win32 thì nên “cất” thông tin khởi tạo vào trong
registry
Code:
UINT GetPrivateProfileInt(
LPCTSTR lpAppName, // address of section name
LPCTSTR lpKeyName, // address of key name
INT nDefault, // return value if key name is not found
LPCTSTR lpFileName // address of initialization filename

);
Returns
Nếu function hoàn thành , giá trị trả về là số tương đương của chuỗi phía sau tên
key chỉ định trong file khởi tạo đã quy định. Nếu không tìm thấy key, giá trị trả về
là giá trị mặc định. Nếu giá trị của key nhỏ hơn 0, giá trị trả về là 0.

GetPrivateProfileStringA / GetPrivateProfileStringW
Hàm GetPrivateProfileString có nhiệm vụ tìm string từ section đã chỉ định trong
file khởi tạo. Hàm này tương thích với phiên bản 16-bit Window. Còn đối với
Win32 thì nên “cất” thông tin khởi tạo vào trong Registry
Code:
DWORD GetPrivateProfileString(
LPCTSTR lpAppName, // points to section name
LPCTSTR lpKeyName, // points to key name
LPCTSTR lpDefault, // points to default string
LPTSTR lpReturnedString, // points to destination buffer
DWORD nSize, // size of destination buffer
LPCTSTR lpFileName // points to initialization filename
);
Returns
Nếu function hoàn thành , giá trị trả về là số kí tự được copy vào buffer, không tính
kí tự null.
Nếu cả IpAppName và IpKeyName đều là NULL và supplied destination quá nhỏ
để chứa yêu cầu của string, chuỗi sẽ được bỏ bớt đi và theo sau là kí tự null, và giá
trị trả về là nSize-1
Nếu IpAppName hoặc IpKeyName là NULL và supplied destination quá nhỏ để
chứa toàn bộ string, string cuối cùng sẽ được “cắt ra” và theo sau là 2 kí tự null.
Trong trường hợp này thì giá trị trả về nSize-2

ReadFileA

Hàm ReadFile có nhiệm vụ đọc dữ liệu từ file, bắt đầu tại vị trí được cho biết bởi
file pointer. Sau khi đọc xong, file pointer sửa lại cho đúng bằng số byte đã được
đọc, trừ khi file handle được tạo với thuộc tính overlapped (chồng lên). Nếu file
handle được tạo để overlapped input (cho vào) và output (lấy ra) (I / O) , sau khi
đọc xong application phải chỉnh lại cho đúng vị trí của file pointer.
Code:
BOOL ReadFile(
HANDLE hFile, // handle of file to read
LPVOID lpBuffer, // address of buffer that receives data
DWORD nNumberOfBytesToRead, // number of bytes to read
LPDWORD lpNumberOfBytesRead, // address of number of bytes
read
LPOVERLAPPED lpOverlapped // address of structure for data
);
Returns
Nếu function hoàn thành , giá trị trả về là TRUE. Nếu giá trị trả về là TRUE và số
byte được đọc là 0 thì file pointer ở xa điểm cuối của file tại thời điểm xảy ra quá
trình đọc
Nếu function không hoàn thành , giá trị trả về là FALSE. Để có thông tin về lỗi,
chúng ta dùng hàm GetLastError.

ReadFileEx
Hàm ReadFileEx có nhiệm vụ đọc dữ liệu từ file không đồng bộ. Nó chỉ được
design cho quá trình không đồng bộ, khác với hàm ReadFile được design cho cả 2
quá trình đồng bộ và không đồng bộ. ReadFileEx để cho “quá trình gán” gán vào
processing khác suốt quá trình đọc
Hàm ReadFileEx “báo cáo” tình trạng không đồng bộ của nó, gọi completion
routine chỉ định khi quá trình đọc hoàn thành và lệnh gọi thread là alertable wait
state
Code:

BOOL ReadFileEx(
HANDLE hFile, // handle of file to read
LPVOID lpBuffer, // address of buffer
DWORD nNumberOfBytesToRead, // number of bytes to read
LPOVERLAPPED lpOverlapped, // address of offset
LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine //
address of completion routine
);
Returns
Nếu function hoàn thành , giá trị trả về là TRUE
Nếu function không hoàn thành , giá trị trả về là FALSE. Để có thông tin về lỗi,
chúng ta dùng hàm GetLastError.
Nếu function hoàn thành , calling thread có quá trình I/O không đồng bộ trong
khoảng thời gian : overlapped đọc thao tác từ file. Khi quá trình I/O này kết thúc,
và lệnh gọi thread bị khóa trong alertable wait state, hệ thống gọi hàm
IpCompletionRoutine, và alertable wait state hoàn thành với đoạn code trở

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×