Bagikan melalui


Fungsi WdfRequestAllocateTimer (wdfrequest.h)

[Berlaku untuk KMDF dan UMDF]

Metode WdfRequestAllocateTimer mengalokasikan timer untuk permintaan I/O tertentu.

Sintaks

NTSTATUS WdfRequestAllocateTimer(
  [in] WDFREQUEST Request
);

Parameter

[in] Request

Handel ke objek permintaan kerangka kerja.

Nilai kembali

WdfRequestAllocateTimer mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, metode ini mungkin mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER
Parameter input tidak valid.
STATUS_INSUFFICIENT_RESOURCES
Timer tidak dapat dialokasikan.
 

Metode ini juga mungkin mengembalikan nilai NTSTATUS lainnya.

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

Keterangan

Jika driver Anda menentukan nilai waktu habis saat memanggil WdfRequestSend, driver harus memanggil WdfRequestAllocateTimer sebelum memanggil WdfRequestSend. Hal ini memastikan bahwa panggilan ke WdfRequestSend tidak akan gagal jika tidak ada sumber daya sistem yang cukup untuk mengalokasikan timer.

Jika timer sudah dialokasikan untuk permintaan yang ditentukan, WdfRequestAllocateTimer mengembalikan STATUS_SUCCESS.

Contoh

Contoh kode berikut menginisialisasi struktur WDF_REQUEST_SEND_OPTIONS , mengalokasikan objek timer untuk permintaan I/O, lalu memanggil WdfRequestSend.

NTSTATUS  status;
WDF_REQUEST_SEND_OPTIONS  options;
BOOLEAN  requestSend;

WDF_REQUEST_SEND_OPTIONS_INIT(
                              &options,
                              WDF_REQUEST_SEND_OPTION_TIMEOUT
                              );

WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(
                                     &options,
                                     WDF_ABS_TIMEOUT_IN_SEC(TIME_OUT_VALUE)
                                     );
status = WdfRequestAllocateTimer(
                                 request
                                 );
if (!NT_SUCCESS(status)){
    return status;
...
    requestSend = WdfRequestSend(
                                 request,
                                 ioTarget,
                                 &options
                                 );
}

Persyaratan

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

Lihat juga

WDF_ABS_TIMEOUT_IN_SEC

WDF_REQUEST_SEND_OPTIONS_INIT

WdfRequestSend