Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Użyj tych reguł, aby sprawdzić, czy sterownik prawidłowo przetwarza żądania SRB.
W tym dziale
| Temat | Opis |
|---|---|
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. |
|
Ta reguła sprawdza, czy oczekiwania lub alokacja danych nie są wykonywane wewnątrz funkcji StartIo. |
|
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. |
|
Ta reguła sprawdza, czy miniport nie powinien próbować wywołać StorPortFreePool na zdealokowanym buforze. |
|
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. |
|
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). |
|
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. |
|
Ta reguła sprawdza, czy funkcja StorPortEnablePassiveInitialization nie jest wywoływana z żadnej procedury sterownika miniportu StorPort innej niż HwInitialize. |
|
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. |
|
Ta reguła sprawdza, czy wywołania do StorPortNotification używają tylko dozwolonych (tj. udokumentowanych) typów powiadomień. |
|
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. |
|
Ta reguła sprawdza, czy parametr PerfConfigData przekazany do usługi StorPortInitializePerfOpts nie ma wartości NULL. |
|
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. |
|
Należy zdefiniować procedurę HW_TIMER, jeśli zostanie wykonane wywołanie metody StorPortNotification(RequestTimerCall). |
Aby wybrać zestaw reguł SrbProcessing
Wybierz projekt sterownika (.vcxProj) w programie Microsoft Visual Studio. W menu sterowników kliknij Uruchom Weryfikator Sterowników Statycznych….
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=Win32Aby uzyskać więcej informacji, zobacz Użycie Static Driver Verifier do Znalezienia Defektów w Sterownikach oraz Polecenia Static Driver Verifier (MSBuild).