共用方式為


KsInvalidStreamPointer 規則 (ks)

KsInvalidStreamPointer 規則會驗證 KS 迷你埠驅動程式是否提供有效的 KS 串流指標作為函式自變數。 典型的違規是由不正確的指標處理所造成,或是記憶體使用不正確所造成的指標損毀所造成。

有效的數據流指標是前置或尾端邊緣數據流指標,或已透過 KsStreamPointerClone 複製的數據流指標。 如需詳細資訊,請參閱 前置和尾端邊緣數據流指標。

此規則也會驗證 KsStreamPointerDelete 尚未用來嘗試刪除非複製的數據流指標。

驅動程式模型:KS

使用此規則找到的錯誤檢查:錯誤檢查0xC4:DRIVER_VERIFIER_DETECTED_VIOLATION(0x0008100C

範例

下列程式代碼違反此規則。

PKKSSTREAM_POINTER StreamPointer = KsPinGetLeadingEdgeStreamPointer (Pin, KSSTREAM_POINTER_STATE_UNLOCKED);

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

KsStreamPointerDelete (StreamPointer);

此程式代碼也會違反規則。

KsStreamPointerDelete (NULL);

測試方法

在執行階段

若要確認此規則,請開啟 [命令提示字元] 視窗。 輸入驅動程式驗證器命令並指定 /domain ks

例如:

如需詳細資訊,請參閱驅動程式驗證器

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

在執行階段

執行 驅動程式驗證器 ,然後選取 [DDI 合規性檢查 ] 選項。

適用於

KsStreamPointerDelete

KsStreamPointerAdvance

KsStreamPointerAdvanceOffsetsAndUnlock

KsStreamPointerCancelTimeout

KsStreamPointerGetIrp

KsStreamPointerGetMdl

KsStreamPointerGetNextClone

KsStreamPointerLock

KsStreamPointerScheduleTimeout

KsStreamPointerSetStatusCode

KsStreamPointerUnlock