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