Regra KsInvalidStreamPointer (ks)
A regra KsInvalidStreamPointer verifica se um driver de miniporto KS fornece um Ponteiro de Fluxo KS válido como um argumento de função. As violações típicas são causadas pelo manuseio incorreto do ponteiro ou por uma corrupção do ponteiro causada pelo uso incorreto da memória.
Um ponteiro de fluxo válido é um ponteiro de fluxo de borda à esquerda ou à direita ou um ponteiro de fluxo que foi clonado por meio de KsStreamPointerClone. Para obter mais informações, consulte Ponteiros de fluxo de borda à esquerda e à direita.
Essa regra também verifica se KsStreamPointerDelete não foi usado para tentar excluir um ponteiro de fluxo não clonado.
Modelo do driver: KS
Verificação de bug (s) encontrada (s) com esta regra: Verificação de bug 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x0008100C)
Exemplo
O código a seguir viola essa regra.
PKKSSTREAM_POINTER StreamPointer = KsPinGetLeadingEdgeStreamPointer (Pin, KSSTREAM_POINTER_STATE_UNLOCKED);
//
// ERROR: KsStreamPointerDelete can only be called on clone stream pointers.
//
KsStreamPointerDelete (StreamPointer);
Este código também viola a regra.
KsStreamPointerDelete (NULL);
Como testar
Em tempo de execução |
---|
Para verificar essa regra, abra uma janela do Prompt de Comando. Insira um comando do Verificador de Driver e especifique /domain ks. Por exemplo: Para obter mais informações, consulte Verificador de Driver. |
verificador /domínio ks [opções] /driver <yourdriver>
Em tempo de execução |
---|
Execute o Verificador de Driver e selecione a opção de verificação de conformidade de DDI. |
Aplicável ao
KsStreamPointerDelete
KsStreamPointerAdvance
KsStreamPointerAdvanceOffsetsAndUnlock
KsStreamPointerCancelTimeout
KsStreamPointerGetIrp
KsStreamPointerGetMdl
KsStreamPointerGetNextClone
KsStreamPointerLock
KsStreamPointerScheduleTimeout
KsStreamPointerSetStatusCode
KsStreamPointerUnlock