Fungsi WdfTimerCreate (wdftimer.h)

[Berlaku untuk KMDF dan UMDF]

Metode WdfTimerCreate membuat objek timer kerangka kerja.

Sintaks

NTSTATUS WdfTimerCreate(
  [in]  PWDF_TIMER_CONFIG      Config,
  [in]  PWDF_OBJECT_ATTRIBUTES Attributes,
  [out] WDFTIMER               *Timer
);

Parameter

[in] Config

Penunjuk ke struktur WDF_TIMER_CONFIG .

[in] Attributes

Penunjuk ke struktur WDF_OBJECT_ATTRIBUTES yang berisi atribut objek untuk objek timer baru.

[out] Timer

Penunjuk ke lokasi yang menerima handel ke objek pengatur waktu kerangka kerja baru.

Nilai kembali

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

Menampilkan kode Deskripsi
STATUS_WDF_PARENT_NOT_SPECIFIED
Parameter Atribut adalah NULL, atau anggota ParentObject dari struktur WDF_OBJECT_ATTRIBUTES yang ditentukan Atribut adalah NULL.
STATUS_INVALID_PARAMETER
Parameter yang tidak valid ditentukan.
STATUS_INVALID_DEVICE_REQUEST
Anggota ParentObject dari struktur WDF_OBJECT_ATTRIBUTES tidak mereferensikan objek perangkat kerangka kerja atau objek yang rantai induknya mengarah ke objek perangkat kerangka kerja.
STATUS_INSUFFICIENT_RESOURCES
Memori tidak cukup.
STATUS_WDF_INCOMPATIBLE_EXECUTION_LEVEL
Anggota AutomaticSerialization dari struktur WDF_TIMER_CONFIG diatur ke TRUE, tetapi tingkat eksekusi objek perangkat induk diatur ke WdfExecutionLevelPassive.
 

Untuk daftar nilai pengembalian lain yang mungkin dikembalikan oleh metode WdfTimerCreate , lihat Kesalahan Pembuatan Objek Kerangka Kerja.

Metode ini mungkin juga mengembalikan nilai NTSTATUS lainnya.

Keterangan

Ketika driver Anda memanggil WdfTimerCreate, driver harus menyediakan struktur WDF_OBJECT_ATTRIBUTES dan harus menentukan objek induk di anggota ParentObject struktur. Objek induk dapat menjadi objek perangkat kerangka kerja atau objek apa pun yang rantai induknya mengarah ke objek perangkat kerangka kerja. Kerangka kerja akan menghapus objek timer saat menghapus objek perangkat.

Setelah membuat objek timer, driver harus memanggil WdfTimerStart untuk memulai jam timer terlepas dari apakah timer berkala atau tidak.

Jika driver Anda menyediakan fungsi panggilan balik EvtCleanupCallback atau EvtDestroyCallback untuk objek timer kerangka kerja, perhatikan bahwa kerangka kerja memanggil fungsi panggilan balik ini di IRQL = PASSIVE_LEVEL.

Untuk informasi selengkapnya tentang objek timer kerangka kerja, lihat Menggunakan Timer.

Contoh

Contoh kode berikut menginisialisasi struktur WDF_TIMER_CONFIG dan struktur WDF_OBJECT_ATTRIBUTES lalu memanggil WdfTimerCreate.

WDF_TIMER_CONFIG  timerConfig;
WDF_OBJECT_ATTRIBUTES  timerAttributes;
WDFTIMER  timerHandle;
NTSTATUS  status;

WDF_TIMER_CONFIG_INIT(
                      &timerConfig,
                      MyEvtTimerFunc
                      );

timerConfig.AutomaticSerialization = TRUE;

WDF_OBJECT_ATTRIBUTES_INIT(&timerAttributes);
timerAttributes.ParentObject = DeviceHandle;

status = WdfTimerCreate(
                        &timerConfig,
                        &timerAttributes,
                        &timerHandle
                        );

if (!NT_SUCCESS(status)) {
    return status;
}

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Versi UMDF minimum 2.0
Header wdftimer.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_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT

WDF_TIMER_CONFIG

WDF_TIMER_CONFIG_INIT

WdfTimerStart