Fungsi ZwGetNotificationResourceManager (wdm.h)

Rutinitas ZwGetNotificationResourceManager mengambil pemberitahuan transaksi berikutnya dari antrean pemberitahuan manajer sumber daya tertentu.

Sintaks

NTSYSCALLAPI NTSTATUS ZwGetNotificationResourceManager(
  [in]            HANDLE                    ResourceManagerHandle,
  [out]           PTRANSACTION_NOTIFICATION TransactionNotification,
  [in]            ULONG                     NotificationLength,
  [in]            PLARGE_INTEGER            Timeout,
  [out, optional] PULONG                    ReturnLength,
  [in]            ULONG                     Asynchronous,
  [in, optional]  ULONG_PTR                 AsynchronousContext
);

Parameter

[in] ResourceManagerHandle

Handel ke objek resource manager yang diperoleh oleh panggilan sebelumnya ke ZwCreateResourceManager atau ZwOpenResourceManager. Handel harus memiliki akses RESOURCEMANAGER_GET_NOTIFICATION ke objek.

[out] TransactionNotification

Penunjuk ke buffer yang dialokasikan pemanggil yang menerima informasi tentang pemberitahuan yang diambil. Buffer harus cukup besar untuk berisi struktur TRANSACTION_NOTIFICATION ditambah argumen khusus pemberitahuan tambahan.

[in] NotificationLength

Panjangnya, dalam byte, dari buffer yang dituju parameter TransactionNotification .

[in] Timeout

Penunjuk ke nilai yang menentukan waktu relatif atau absolut, dalam satuan 100 nanodetik. Penunjuk ini bersifat opsional dan dapat berupa NULL.

Jika penunjuk ADALAH NULL, ZwGetNotificationResourceManager tidak mengembalikan hingga pemberitahuan transaksi tersedia. Jika nilai waktu ditentukan, ZwGetNotificationResourceManager akan kembali saat pemberitahuan tersedia atau setelah waktu yang ditentukan berlalu, mana yang lebih dulu.

Nilai negatif menentukan waktu yang relatif terhadap waktu sistem saat ini. Misalnya, nilai waktu relatif lima detik menyebabkan ZwGetNotificationResourceManager kehabisan waktu lima detik setelah dipanggil.

Nilai positif menentukan waktu absolut, yang sebenarnya relatif terhadap 00:00, 1 Januari 1601. Jika nilai waktu absolut ditentukan, sistem operasi menambahkan nilai waktu absolut ke nilai waktu yang mewakili 00:00, 1 Januari 1601.

Jika pemanggil menentukan nilai nol (bukan penunjuk NULL ), ZwGetNotificationResourceManager segera kembali, apakah pemberitahuan tersedia atau tidak.

[out, optional] ReturnLength

Penunjuk opsional ke variabel. Jika pointer ini bukan NULL, dan jika nilai parameter NotificationLength terlalu kecil, ZwGetNotificationResourceManager menyediakan panjang yang diperlukan dalam variabel dan mengembalikan STATUS_BUFFER_TOO_SMALL.

[in] Asynchronous

Nilai ULONG yang harus nol. ZwGetNotificationResourceManager tidak mendukung pemberitahuan asinkron. Gunakan TmEnableCallbacks untuk mengaktifkan pemberitahuan asinkron.

[in, optional] AsynchronousContext

Penunjuk ke nilai ULONG. Penunjuk ini harus NULL.

Nilai kembali

ZwGetNotificationResourceManager mengembalikan STATUS_SUCCESS jika operasi berhasil dan pemberitahuan tersedia. Jika tidak, rutinitas ini mungkin mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
STATUS_TIMEOUT
Interval waktu habis yang ditentukan Timeout berlalu sebelum pemberitahuan tersedia.
STATUS_OBJECT_TYPE_MISMATCH
Handel yang ditentukan bukan handel ke objek resource manager.
STATUS_INVALID_HANDLE
Handel objek tidak valid.
STATUS_ACCESS_DENIED
Pemanggil tidak memiliki akses yang sesuai ke objek manajer sumber daya.
STATUS_BUFFER_TOO_SMALL
Nilai parameter NotificationLength terlalu kecil.
 

Rutinitas mungkin mengembalikan nilai NTSTATUS lainnya.

Keterangan

Gunakan rutinitas ZwGetNotificationResourceManager untuk mendapatkan pemberitahuan secara sinkron. Gunakan rutinitas TmEnableCallbacks untuk mengaktifkan pemberitahuan asinkron.

Struktur TRANSACTION_NOTIFICATION yang diterima berisi kunci pendaftaran yang ditentukan manajer sumber daya saat disebut ZwCreateEnlistment. Anda dapat menggunakan kunci pendaftaran untuk mengidentifikasi pendaftaran yang berlaku untuk pemberitahuan.

Untuk informasi selengkapnya tentang rutinitas ZwGetNotificationResourceManager, lihat Membuat Resource Manager.

NtGetNotificationResourceManager dan ZwGetNotificationResourceManager adalah dua versi dari rutinitas Windows Native System Services yang sama.

Untuk panggilan dari driver mode kernel, versi NtXxx dan ZwXxx dari rutinItas Windows Native System Services dapat berperilaku berbeda dalam cara mereka menangani dan menginterpretasikan 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
Klien minimum yang didukung Tersedia di Windows Vista dan versi sistem operasi yang lebih baru.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL = PASSIVE_LEVEL
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Lihat juga

TRANSACTION_NOTIFICATION

TmEnableCallbacks

Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli

ZwCreateEnlistment

ZwCreateResourceManager

ZwOpenResourceManager