Fungsi ZwCreateSection (wdm.h)
Rutinitas ZwCreateSection membuat objek bagian.
Sintaks
NTSYSAPI NTSTATUS ZwCreateSection(
[out] PHANDLE SectionHandle,
[in] ACCESS_MASK DesiredAccess,
[in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
[in, optional] PLARGE_INTEGER MaximumSize,
[in] ULONG SectionPageProtection,
[in] ULONG AllocationAttributes,
[in, optional] HANDLE FileHandle
);
Parameter
[out] SectionHandle
Penunjuk ke variabel HANDLE yang menerima handel ke objek bagian.
[in] DesiredAccess
Menentukan nilai ACCESS_MASK yang menentukan akses yang diminta ke objek. Selain hak akses yang ditentukan untuk semua jenis objek (lihat ACCESS_MASK), pemanggil dapat menentukan salah satu hak akses berikut, yang khusus untuk objek bagian:
Bendera DesiredAccess | Memungkinkan penelepon untuk melakukan ini |
---|---|
SECTION_EXTEND_SIZE | Perluas ukuran bagian secara dinamis. |
SECTION_MAP_EXECUTE | Jalankan tampilan bagian. |
SECTION_MAP_READ | Baca tampilan bagian. |
SECTION_MAP_WRITE | Tulis tampilan bagian . |
SECTION_QUERY | Kueri objek bagian untuk informasi tentang bagian tersebut. Driver harus mengatur bendera ini. |
SECTION_ALL_ACCESS | Semua bendera sebelumnya dikombinasikan dengan STANDARD_RIGHTS_REQUIRED. |
[in, optional] ObjectAttributes
Penunjuk ke struktur OBJECT_ATTRIBUTES yang menentukan nama objek dan atribut lainnya. Gunakan InitializeObjectAttributes untuk menginisialisasi struktur ini. Jika penelepon tidak berjalan dalam konteks utas sistem, pemanggil harus mengatur atribut OBJ_KERNEL_HANDLE saat memanggil InitializeObjectAttributes.
[in, optional] MaximumSize
Menentukan ukuran maksimum, dalam byte, dari bagian . ZwCreateSection membulatkan nilai ini ke kelipatan PAGE_SIZE terdekat. Jika bagian didukung oleh file halaman, MaximumSize menentukan ukuran bagian yang sebenarnya. Jika bagian didukung oleh file biasa, MaximumSize menentukan ukuran maksimum yang dapat diperluas atau dipetakan file.
[in] SectionPageProtection
Menentukan perlindungan yang akan ditempatkan pada setiap halaman di bagian . Gunakan salah satu dari empat nilai berikut: PAGE_READONLY, PAGE_READWRITE, PAGE_EXECUTE, atau PAGE_WRITECOPY. Untuk deskripsi nilai-nilai ini, lihat CreateFileMapping.
[in] AllocationAttributes
Menentukan bitmask bendera SEC_XXX yang menentukan atribut alokasi bagian. Untuk deskripsi bendera ini, lihat CreateFileMapping.
[in, optional] FileHandle
Secara opsional menentukan handel untuk objek file terbuka. Jika nilai FileHandle adalah NULL, bagian didukung oleh file halaman. Jika tidak, bagian didukung oleh file yang ditentukan.
Nilai kembali
ZwCreateSection mengembalikan STATUS_SUCCESS pada keberhasilan, atau kode kesalahan NTSTATUS yang sesuai pada kegagalan. Kemungkinan kode status kesalahan meliputi yang berikut ini:
Menampilkan kode | Deskripsi |
---|---|
STATUS_FILE_LOCK_CONFLICT | File yang ditentukan oleh parameter FileHandle dikunci. |
STATUS_INVALID_FILE_FOR_SECTION | File yang ditentukan oleh FileHandle tidak mendukung bagian. |
STATUS_INVALID_PAGE_PROTECTION | Nilai yang ditentukan untuk parameter SectionPageProtection tidak valid. |
STATUS_MAPPED_FILE_SIZE_ZERO | Ukuran file yang ditentukan oleh FileHandle adalah nol, dan MaximumSize adalah nol. |
STATUS_SECTION_TOO_BIG | Nilai MaximumSize terlalu besar. Ini terjadi ketika MaximumSize lebih besar dari maksimum yang ditentukan sistem untuk bagian, atau jika MaximumSize lebih besar dari file yang ditentukan dan bagian tidak dapat ditulis. |
Keterangan
Setelah handel yang ditunjukkan oleh SectionHandle tidak lagi digunakan, driver harus memanggil ZwClose untuk menutupnya.
Jika penelepon tidak berjalan dalam konteks utas sistem, pemanggil harus memastikan bahwa setiap handel yang dibuatnya adalah handel privat. Jika tidak, handel dapat diakses oleh proses dalam konteks driver yang berjalan. Untuk informasi selengkapnya, lihat Penanganan Objek.
Untuk informasi selengkapnya tentang menyiapkan bagian dan tampilan memori yang dipetakan, lihat Bagian dan Tampilan.
Jika panggilan ke fungsi ini terjadi dalam mode pengguna, Anda harus menggunakan nama "NtCreateSection" alih-alih "ZwCreateSection".
Untuk panggilan dari driver mode kernel, versi NtXxx dan ZwXxx dari rutinitas Windows Native System Services dapat berperilaku berbeda dalam cara mereka menangani dan menafsirkan parameter input. Untuk informasi selengkapnya tentang hubungan antara versi NtXxx dan ZwXxx dari rutinitas, lihat Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |