Bài giảng Quản lý bộ nhớ và tập tin

Giải phóng vùng nhớ ảo Đểgiải phóng vùng nhớ ảo, ta dùng hàm VirtualFree. Hàm giải phóng hoặc khửcấp phát (hoặc cảhai) các trang trong không gian địa chỉ ảo của tiến trình đang gọi. BOOL VirtualFree(LPVOIDlpAddress, DWORDdwSize, DWORDdwType); Trường lpAddresslà con trỏtrỏ đến vùng các trang cần giải phóng. Nếu dwTypechứa cờ MEM_RELEASE, đây phải là con trỏtrảvềtừhàm VirtualAlloc. Trường dwSizexác định sốbyte kích vùng nhớcần giải phóng. Nếu dwTypechứa cờMEM_RELEASE, giá trịnày cần thiết lập bằng 0. Trong các trường hợp khác, vùng ảnh hưởng sẽlà các trang có ít nhất một byte nằm trong đoạn lpAddress đến lpAddress + dwSize. Nghĩa là, nếu có 2 byte nằm ởbiên hai trang khác nhau, thì cảhai trang đều được giải phóng. Trường dwTypexác định cách giải phóng, sửdụng giá trị MEM_DECOMMIT, hoặc MEM_RELEASE. Với giá trị đầu, hàm giải phóng các trang chỉ định (đã được xác nhận cấp phát). Nếu các trang chưa được cấp phát, ta vẫn có thểkhửcấp phát (decommit) mà không gây ra lỗi. Với giá trịsau, hàm giải phóng vùng nhớ đểdành. Trong trường hợp này, dwSizephải bằng 0, nếu không hàm thực hiện thất bại.

Giải phóng vùng nhớ ảo

Đểgiải phóng vùng nhớ ảo, ta dùng hàm VirtualFree. Hàm giải phóng hoặc khửcấp

phát (hoặc cảhai) các trang trong không gian địa chỉ ảo của tiến trình đang gọi.

BOOL VirtualFree(LPVOIDlpAddress, DWORDdwSize, DWORDdwType);

Trường lpAddresslà con trỏtrỏ đến vùng các trang cần giải phóng. Nếu dwTypechứa

cờ MEM_RELEASE, đây phải là con trỏtrảvềtừhàm VirtualAlloc.

Trường dwSizexác định sốbyte kích vùng nhớcần giải phóng. Nếu dwTypechứa cờ

MEM_RELEASE, giá trịnày cần thiết lập bằng 0. Trong các trường hợp khác, vùng ảnh

hưởng sẽlà các trang có ít nhất một byte nằm trong đoạn lpAddress đến lpAddress +

dwSize. Nghĩa là, nếu có 2 byte nằm ởbiên hai trang khác nhau, thì cảhai trang đều

được giải phóng.

Trường dwTypexác định cách giải phóng, sửdụng giá trị MEM_DECOMMIT, hoặc

MEM_RELEASE. Với giá trị đầu, hàm giải phóng các trang chỉ định (đã được xác nhận

cấp phát). Nếu các trang chưa được cấp phát, ta vẫn có thểkhửcấp phát (decommit) mà

không gây ra lỗi. Với giá trịsau, hàm giải phóng vùng nhớ đểdành. Trong trường hợp

này, dwSizephải bằng 0, nếu không hàm thực hiện thất bại.

TÀI LIỆU LUẬN VĂN CÙNG DANH MỤC

TIN KHUYẾN MÃI

  • Thư viện tài liệu Phong Phú

    Hỗ trợ download nhiều Website

  • Nạp thẻ & Download nhanh

    Hỗ trợ nạp thẻ qua Momo & Zalo Pay

  • Nhận nhiều khuyến mãi

    Khi đăng ký & nạp thẻ ngay Hôm Nay

NẠP THẺ NGAY