Udostępnij przez


Zestaw reguł SrbProcessing (Storport)

Użyj tych reguł, aby sprawdzić, czy sterownik prawidłowo przetwarza żądania SRB.

W tym dziale

Temat Opis

SpDuplex

Ta reguła sprawdza, czy ten miniport jest w trybie pełnodupleksowym . Każdy sterownik zbudowany zgodnie z modelem StorPort-miniport musi być w trybie pełnodupleksowym . Półdupleks należy używać tylko podczas przenoszenia istniejącego sterownika SCSI do StorPortu.

SpNoWait

Ta reguła sprawdza, czy oczekiwania lub alokacja danych nie są wykonywane wewnątrz funkcji StartIo.

SpReturnValue

Ta reguła sprawdza, czy implementacje sterownika HwStorFindAdapter i VirtualHwStorFindAdapter zwracają prawidłowy stan. Prawidłowy stan to jeden z następujących: SP_RETURN_FOUND, SP_RETURN_ERROR, SP_RETURN_BAD_CONFIG lub SP_RETURN_NOT_FOUND.

StorPortAllocatePool

Ta reguła sprawdza, czy miniport nie powinien próbować wywołać StorPortFreePool na zdealokowanym buforze.

StorPortAllocatePool2

Ta reguła sprawdza, czy miniport nie powinien próbować wywołać funkcji StorPortAllocatePool na już przydzielonym buforze, bez wcześniejszego jego cofnięcia z przydziału.

StorPortBuildIo

Ta reguła sprawdza, czy jeśli procedura StorPortBuildIo miniportu StorPort zwraca FALSE, dany SRB nie zostanie przekazany do StartIo. (W takich przypadkach sterownik miniportu musi zakończyć SRB przez wywołanie StorPortNotification z typem powiadomienia RequestComplete z StorPortBuildIo lub w jakimś miejscu).

StorPortCompleteRequest

Ta reguła sprawdza, czy żadne wywołania do elementu StorPortCompleteRequest nie są wykonywane przez miniport. Użycie obiektu StorPortCompleteRequest nie jest zalecane; miniporty powinny zamiast tego wywoływać metodę StorPortNotification z parametrem notificationType = RequestComplete.

StorPortEnablePassive

Ta reguła sprawdza, czy funkcja StorPortEnablePassiveInitialization nie jest wywoływana z żadnej procedury sterownika miniportu StorPort innej niż HwInitialize.

StorPortFindAdapter

Procedura HwStorFindAdapter musi ustawić pola MaximumTransferLength i NumberOfPhysicalBreaks w strukturze PORT_CONFIGURATION_INFORMATION. Domyślnie wartość obu tych pól jest SP_UNINITIALIZED_VALUE. Jeśli któreś z tych pól jest nadal ustawione na SP_UNINITIALIZED_VALUE po wyjściu z FindAdapter, sterownik nie spełnia reguły.

StorPortNotification2

Ta reguła sprawdza, czy wywołania do StorPortNotification używają tylko dozwolonych (tj. udokumentowanych) typów powiadomień.

StorPortPassiveFromHwInit

Funkcja StorPortEnablePassiveInitialization nie powinna być wywoływana w punkcie wejścia inicjowania HW dla sterowników Storport, jeśli punkt wejścia inicjowania HW może być wywoływany bezpośrednio z punktu wejścia kontrolki adaptera HW.

StorPortPerfOpts

Ta reguła sprawdza, czy parametr PerfConfigData przekazany do usługi StorPortInitializePerfOpts nie ma wartości NULL.

StorPortStartIo

Oczekiwania lub alokacja danych nigdy nie muszą być wykonywane w procedurze StartIo miniportu. Sterownik ulegnie awarii reguły, jeśli wywołuje funkcję StorPortStallExecution lub inną funkcję, która obejmuje operacje czasochłonne. Ponieważ funkcja StartIo jest synchronizowana, te wywołania powinny być wykonywane głównie w kompilacji BuildIo.

StorPortTimer

Należy zdefiniować procedurę HW_TIMER, jeśli zostanie wykonane wywołanie metody StorPortNotification(RequestTimerCall).

Aby wybrać zestaw reguł SrbProcessing

  1. Wybierz projekt sterownika (.vcxProj) w programie Microsoft Visual Studio. W menu sterowników kliknij Uruchom Weryfikator Sterowników Statycznych….

  2. Kliknij kartę Reguły . W obszarze Zestawy reguł wybierz pozycję SrbProcessing.

    Aby wybrać domyślny zestaw reguł w oknie wiersza polecenia dla deweloperów programu Visual Studio, określ SrbProcessing.sdv z opcją /check . Na przykład:

    msbuild /t:sdv /p:Inputs="/check:SrbProcessing.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

    Aby uzyskać więcej informacji, zobacz Użycie Static Driver Verifier do Znalezienia Defektów w Sterownikach oraz Polecenia Static Driver Verifier (MSBuild).