Freigeben über


KsInvalidStreamPointer-Regel (ks)

Die KsInvalidStreamPointer-Regel überprüft, ob ein KS-Miniporttreiber einen gültigen KS Stream Pointer als Funktionsargument bereitstellt. Typische Verletzungen werden durch falsche Zeigerbehandlung oder eine Zeigerbeschädigung verursacht, die durch eine falsche Verwendung des Arbeitsspeichers verursacht wird.

Ein gültiger Datenstromzeiger ist ein führender oder nachfolgender Edgestreamzeiger oder ein Datenstromzeiger, der über KsStreamPointerClone geklont wurde. Weitere Informationen finden Sie unter Leading and Trailing Edge Stream Pointers.For more information see Leading and Trailing Edge Stream Pointers.

Diese Regel überprüft außerdem, dass KsStreamPointerDelete nicht verwendet wurde, um zu versuchen, einen nicht geklonten Datenstromzeiger zu löschen.

Treibermodell: KS

Fehlerüberprüfungen, die mit dieser Regel gefunden wurden: Fehlerüberprü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.

Zum 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