Fungsi IoIsOperationSynchronous (ntifs.h)

Rutinitas IoIsOperationSynchronous menentukan apakah IRP tertentu mewakili permintaan I/O sinkron atau asinkron.

Sintaks

BOOLEAN IoIsOperationSynchronous(
  [in] PIRP Irp
);

Parameter

[in] Irp

Arahkan ke IRP untuk operasi.

Nilai kembali

IoIsOperationSynchronous mengembalikan TRUE jika operasi sinkron, jika tidak FALSE.

Keterangan

IoIsOperationSynchronous menentukan apakah IRP tertentu meminta operasi I/O sinkron atau asinkron, sesuai dengan kondisi berikut:

  • Jika IRP meminta I/O halaman asinkron, operasinya tidak sinkron, bahkan jika salah satu kondisi lainnya benar.

  • Jika IRP meminta I/O halaman sinkron, operasinya sinkron.

  • Jika objek file dibuka untuk I/O sinkron, operasinya sinkron.

  • Jika bendera IRP_SYNCHRONOUS_API diatur dalam IRP, operasi tersebut sinkron. Bendera ini diatur untuk operasi, seperti ZwQueryInformationFile dan ZwSetInformationFile, yang selalu sinkron, bahkan ketika dilakukan pada objek file yang dibuka untuk I/O asinkron.

  • Jika tidak ada kondisi di atas yang benar, operasinya tidak sinkron.

IoIsOperationSynchronous juga mengembalikan TRUE jika IRP berisi permintaan IOCTL atau FSCTL dengan kode kontrol sistem I/O atau file yang ditentukan dengan METHOD_BUFFERED, bahkan jika objek file dibuka untuk I/O asinkron. Permintaan seperti itu kemungkinan akan dibuat sinkron oleh sistem file, tetapi ini belum tentu benar dalam semua kasus.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header ntifs.h (termasuk Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Tingkat apa pun

Lihat juga

IRP

IoBuildSynchronousFsdRequest

IoCreateFile

IoCreateFileEx

IoCreateFileSpecifyDeviceObjectHint

ZwCreateFile

ZwQueryInformationFile

ZwSetInformationFile