Fungsi WdfDeviceConfigureRequestDispatching (wdfdevice.h)

[Berlaku untuk KMDF dan UMDF]

Metode WdfDeviceConfigureRequestDispatching menyebabkan kerangka kerja mengantrekan jenis permintaan I/O tertentu ke antrean I/O tertentu.

Sintaks

NTSTATUS WdfDeviceConfigureRequestDispatching(
  [in] WDFDEVICE        Device,
  [in] WDFQUEUE         Queue,
  [in] WDF_REQUEST_TYPE RequestType
);

Parameter

[in] Device

Menyediakan handel ke objek perangkat kerangka kerja.

[in] Queue

Menyediakan handel ke objek antrean kerangka kerja.

[in] RequestType

Memasok enumerator jenis WDF_REQUEST_TYPE yang mengidentifikasi jenis permintaan yang akan diantrekan. Satu-satunya enumerator yang valid adalah:

WdfRequestTypeCreate

WdfRequestTypeRead

WdfRequestTypeWrite

WdfRequestTypeDeviceControl

WdfRequestTypeDeviceControlInternal

Nilai kembali

Jika operasi berhasil, metode mengembalikan STATUS_SUCCESS. Nilai pengembalian tambahan meliputi:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER
Parameter input tidak valid.
STATUS_INSUFFICIENT_RESOURCES
Jumlah memori yang tersedia terlalu rendah.
STATUS_WDF_BUSY
Driver telah menetapkan antrean ke jenis permintaan yang ditentukan.
 

Metode ini mungkin mengembalikan nilai NTSTATUS lainnya.

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

Keterangan

Setiap panggilan ke WdfDeviceConfigureRequestDispatching menentukan satu jenis permintaan. Jika Anda ingin satu antrean I/O menerima beberapa jenis permintaan (misalnya, permintaan baca dan tulis), driver Anda dapat memanggil WdfDeviceConfigureRequestDispatching beberapa kali untuk satu antrean I/O.

Untuk informasi selengkapnya tentang WdfDeviceConfigureRequestDispatching, lihat Membuat Antrean I/O dan Mengelola Antrean I/O.

Contoh

Contoh kode berikut menginisialisasi struktur WDF_IO_QUEUE_CONFIG , membuat antrean I/O, lalu mengonfigurasi antrean sehingga menerima permintaan tulis.

WDF_IO_QUEUE_CONFIG queueConfig;
WDFQUEUE WriteQueue;

WDF_IO_QUEUE_CONFIG_INIT(
                         &queueConfig,
                         WdfIoQueueDispatchSequential
                         );
queueConfig.EvtIoWrite = MyEvtIoWrite;
status = WdfIoQueueCreate(
                          Device,
                          &queueConfig,
                          WDF_NO_OBJECT_ATTRIBUTES,
                          &WriteQueue
                          );
if(!NT_SUCCESS(status)) {
    return status;
}
status = WdfDeviceConfigureRequestDispatching(
                                              Device,
                                              WriteQueue,
                                              WdfRequestTypeWrite
                                              );
if(!NT_SUCCESS(status)) {
    return status;
}

Persyaratan

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

Lihat juga

WDF_IO_QUEUE_CONFIG_INIT

WdfIoQueueBuat