Bagikan melalui


Aturan KsInvalidStreamPointer (ks)

Aturan KsInvalidStreamPointer memverifikasi apakah driver miniport KS menyediakan KS Stream Pointer yang valid sebagai argumen fungsi. Pelanggaran umum disebabkan oleh penanganan pointer yang salah atau kerusakan pointer yang disebabkan oleh penggunaan memori yang salah.

Penunjuk aliran yang valid adalah penunjuk aliran tepi terkemuka atau berikutnya atau penunjuk aliran yang telah dikloning melalui KsStreamPointerClone. Untuk informasi selengkapnya, lihat Penunjuk Aliran Edge Terdepan dan Berikutnya.

Aturan ini juga memverifikasi bahwa KsStreamPointerDelete belum digunakan untuk mencoba menghapus penunjuk aliran yang tidak dikloning.

Model driver: KS

Pemeriksaan bug ditemukan dengan aturan ini: Pemeriksaan Bug 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x0008100C)

Contoh

Kode berikut melanggar aturan ini.

PKKSSTREAM_POINTER StreamPointer = KsPinGetLeadingEdgeStreamPointer (Pin, KSSTREAM_POINTER_STATE_UNLOCKED);

//
// ERROR: KsStreamPointerDelete can only be called on clone stream pointers.
//

KsStreamPointerDelete (StreamPointer);

Kode ini juga melanggar aturan.

KsStreamPointerDelete (NULL);

Cara menguji

Pada durasi

Untuk memverifikasi aturan ini, buka jendela Prompt Perintah. Masukkan perintah Driver Verifier dan tentukan /domain ks.

Contohnya:

Untuk informasi selengkapnya, lihat Pemverifikasi Driver.

verifier /domain ks [options] /driver <yourdriver>

Pada durasi

Jalankan Pemverifikasi Driver dan pilih opsi pemeriksaan kepatuhan DDI.

Berlaku untuk

KsStreamPointerDelete

KsStreamPointerAdvance

KsStreamPointerAdvanceOffsetsAndUnlock

KsStreamPointerCancelTimeout

KsStreamPointerGetIrp

KsStreamPointerGetMdl

KsStreamPointerGetNextClone

KsStreamPointerLock

KsStreamPointerScheduleTimeout

KsStreamPointerSetStatusCode

KsStreamPointerUnlock