Bagikan melalui


struktur IO_STATUS_BLOCK (wdm.h)

Driver menetapkan blok status I/O IRP untuk menunjukkan status akhir permintaan I/O, sebelum memanggil IoCompleteRequest untuk IRP.

Sintaks

typedef struct _IO_STATUS_BLOCK {
  union {
    NTSTATUS Status;
    PVOID    Pointer;
  };
  ULONG_PTR Information;
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;

Anggota

Status

Ini adalah status penyelesaian, baik STATUS_SUCCESS jika operasi yang diminta berhasil diselesaikan atau nilai informasi, peringatan, atau kesalahan STATUS_XXX . Untuk informasi selengkapnya, lihat Menggunakan nilai NTSTATUS.

Pointer

Dicadangkan. Hanya untuk penggunaan internal.

Information

Ini diatur ke nilai yang bergantung pada permintaan. Misalnya, setelah berhasil menyelesaikan permintaan transfer, ini diatur ke jumlah byte yang ditransfer. Jika permintaan transfer selesai dengan STATUS_XXXX lain, anggota ini diatur ke nol.

Keterangan

Kecuali rutin pengiriman driver menyelesaikan IRP dengan nilai status kesalahan, driver tingkat terendah dalam rantai sering menetapkan blok status I/O IRP ke nilai yang akan dikembalikan ke pemohon asli operasi I/O.

Rutinitas IoCompletion dari driver tingkat yang lebih tinggi biasanya memeriksa blok status I/O dalam RUNP yang diselesaikan oleh driver yang lebih rendah. Secara desain, blok status I/O dalam IRP adalah satu-satunya informasi yang diteruskan kembali dari driver perangkat yang mendasar ke semua rutinitas IoCompletion driver tingkat yang lebih tinggi.

Sistem operasi mengimplementasikan rutinitas dukungan yang menulis nilai IO_STATUS_BLOCK ke buffer output yang disediakan pemanggil. Misalnya, lihat ZwOpenFile atau NtOpenFile. Rutinitas ini mengembalikan kode status yang mungkin tidak cocok dengan kode status dalam struktur IO_STATUS_BLOCK . Jika salah satu rutinitas ini mengembalikan STATUS_PENDING, pemanggil harus menunggu operasi I/O selesai, lalu memeriksa kode status dalam struktur IO_STATUS_BLOCK untuk menentukan status akhir operasi. Jika rutin mengembalikan kode status selain STATUS_PENDING, pemanggil harus mengandalkan kode status ini alih-alih kode status dalam struktur IO_STATUS_BLOCK .

Untuk informasi selengkapnya, lihat Blok Status I/O.

Persyaratan

Persyaratan Nilai
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h)

Lihat juga

IO_STACK_LOCATION

IRP

IoCompleteRequest

IoSetCompletionRoutine