Fungsi WdfIoQueueStop (wdfio.h)

[Berlaku untuk KMDF dan UMDF]

Metode WdfIoQueueStop mencegah antrean I/O mengirimkan permintaan I/O, tetapi antrean menerima dan menyimpan permintaan baru.

Sintaks

void WdfIoQueueStop(
  [in]           WDFQUEUE               Queue,
  [in, optional] PFN_WDF_IO_QUEUE_STATE StopComplete,
  [in, optional] WDFCONTEXT             Context
);

Parameter

[in] Queue

Handel ke objek antrean kerangka kerja.

[in, optional] StopComplete

Penunjuk ke fungsi panggilan balik EvtIoQueueState yang disediakan driver. Parameter ini bersifat opsional dan dapat berupa NULL.

[in, optional] Context

Penunjuk yang tidak dity ke informasi konteks yang disediakan driver yang diteruskan kerangka kerja ke fungsi panggilan balik EvtIoQueueState . Parameter ini bersifat opsional dan dapat berupa NULL.

Mengembalikan nilai

Tidak ada

Keterangan

Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.

Jika driver menyediakan fungsi panggilan balik EvtIoQueueState , kerangka kerja memanggilnya setelah semua permintaan yang dikirimkan ke driver telah selesai atau dibatalkan. Anda dapat memodifikasi IRQL tempat panggilan balik berjalan dengan menentukan ExecutionLevel di WDF_OBJECT_ATTRIBUTES pada waktu pembuatan antrean. Untuk informasi selengkapnya, lihat bagian Keterangandi EVT_WDF_IO_QUEUE_STATE.

Metode WdfIoQueueStop memungkinkan antrean untuk menerima permintaan baru, bahkan jika antrean tidak menerima permintaan baru sebelum driver bernama WdfIoQueueStop. Misalnya, sebelum memanggil WdfIoQueueStop, driver mungkin memanggil WdfIoQueueDrain, yang menyebabkan kerangka kerja berhenti menambahkan permintaan I/O baru ke antrean. Panggilan WdfIoQueueStop driver berikutnya menyebabkan kerangka kerja melanjutkan penambahan permintaan ke antrean.

Driver tidak boleh memanggil WdfIoQueueDrain setelah memanggil WdfIoQueueStop sampai telah memulai ulang antrean dengan memanggil WdfIoQueueStart.

Untuk informasi selengkapnya tentang metode WdfIoQueueStop , lihat Mengelola Antrean I/O.

Contoh

Contoh kode berikut menghentikan antrean I/O tertentu. Ketika semua permintaan yang dikirimkan ke driver telah selesai atau dibatalkan, itu memanggil fungsi EvtIoQueueStateStop driver.

WDFCONTEXT stopContext;

stopContext = &myContext;

WdfIoQueueStop(
               queue,
               EvtIoQueueStateStop,
               stopContext
               );

Persyaratan

   
Target Platform Universal
Versi KMDF minimum 1,0
Versi UMDF minimum 2.0
Header wdfio.h (termasuk Wdf.h)
Pustaka Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
Aturan kepatuhan DDI ChangeQueueState(kmdf), DriverCreate(kmdf), EvtSurpriseRemoveNoSuspendQueue(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), NoCancelFromEvtSurpriseRemove(kmdf)

Lihat juga

EvtIoQueueState

WdfIoQueueStart

WdfIoQueueStopSynchronously