KsInvalidStreamPointer-Regel (ks)

Die KsInvalidStreamPointer-Regel überprüft, ob ein KS-Miniporttreiber einen gültigen KS-Stream-Zeiger als Funktionsargument bereitstellt. Typische Verstöße werden durch eine falsche Zeigerbehandlung oder eine Zeigerbeschädigung verursacht, die durch falsche Speichernutzung verursacht wird.

Ein gültiger Streamzeiger ist ein führender oder nachgestellter Edgestreamzeiger oder ein Datenstromzeiger, der über KsStreamPointerClone geklont wurde. Weitere Informationen finden Sie unter Führende und nachgestellte Stream Zeiger.

Diese Regel überprüft auch, ob KsStreamPointerDelete nicht zum Löschen eines nicht geklonten Streamzeigers verwendet wurde.

Treibermodell: KS

Fehlerüberprüfung(en) mit dieser Regel gefunden: Fehlerprüfung 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x0008100C)

Beispiel

Der folgende Code verstößt gegen diese Regel.

PKKSSTREAM_POINTER StreamPointer = KsPinGetLeadingEdgeStreamPointer (Pin, KSSTREAM_POINTER_STATE_UNLOCKED);

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

KsStreamPointerDelete (StreamPointer);

Dieser Code verstößt auch gegen die Regel.

KsStreamPointerDelete (NULL);

So führen Sie einen Test durch

Zur Laufzeit

Um diese Regel zu überprüfen, öffnen Sie ein Eingabeaufforderungsfenster. Geben Sie einen Treiberüberprüfungsbefehl ein, und geben Sie /domain ks an.

Beispiel:

Weitere Informationen finden Sie unter Treiberüberprüfung.

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

Zur Laufzeit

Führen Sie die Treiberüberprüfung aus, und wählen Sie die DDI-Konformitätsüberprüfungsoption aus.

Gilt für:

KsStreamPointerDelete

KsStreamPointerAdvance

KsStreamPointerAdvanceOffsetsAndUnlock

KsStreamPointerCancelTimeout

KsStreamPointerGetIrp

KsStreamPointerGetMdl

KsStreamPointerGetNextClone

KsStreamPointerLock

KsStreamPointerScheduleTimeout

KsStreamPointerSetStatusCode

KsStreamPointerUnlock