Windows-driver-samplesspbSpbTestTool la master · microsoftWindows-driver-samples · GitHub

Eșantionul SpbTestTool are două scopuri. În primul rând, demonstrează cum se deschide un mâner către controlerul SPB, se folosește interfața SPB de la un driver KMDF și se utilizează întreruperi la nivel pasiv GPIO. În al doilea rând, implementează un set de comenzi pentru comunicarea cu un dispozitiv periferic pentru a ajuta la depanare.

github

Acest eșantion este incomplet ca driver și demonstrează doar utilizarea interfeței de solicitare I/O SPB și a întreruperilor GPIO. Nu este destinat utilizării într-un mediu de producție.

Pentru a instala driverul periferic SpbTestTool, urmați acești pași:

Asigurați-vă că driverul construiește fără erori.

Copiați fișierele SYS și INF într-un folder separat.

Rulați Devcon.exe. Puteți găsi acest program în folderul tools \ devcon unde ați instalat WDK. Tastați următoarea comandă în fereastra de comandă:

actualizare devcon.exe SpbTestTool.inf ACPI \

Pentru a lansa aplicația SpbTestTool, urmați acești pași:

Navigați la directorul care conține SpbTestTool.exe.

Tastați următoarea comandă în fereastra de comandă:

În mod implicit, aplicația SpbTestTool folosește driverul eșantion SpbTestTool. Cu toate acestea, în schimb poate fi utilizat un driver de periferic alternativ. Pentru a specifica un driver alternativ, utilizați următorul format pentru linia de comandă:

Un script de intrare poate fi utilizat în locul unui prompt interactiv. Formatul scriptului necesită o comandă pe linie. Pentru a rula scriptul, utilizați următorul format pentru linia de comandă din fereastra de comandă:

Aplicația SpbTestTool se bucură la nesfârșit așteptând una dintre următoarele comenzi. Comenzile sunt traduse în cererea de I/O SPB corespunzătoare fără urmărirea stării în driver. Starea transferului, conținutul bufferului și codurile de eroare sunt returnate după cum este necesar. Tastați ajutor în orice moment pentru a afișa această listă de comenzi. Apăsați Ctrl-C în orice moment pentru a anula comanda curentă și a ieși din aplicație.

Descrierea comenzii
deschis Deschideți mânerul către controlerul SPB.
închide Închideți mânerul controlerului SPB.
Lacăt Blocați autobuzul pentru acces exclusiv.
debloca Deblocați autobuzul.
lockconn Blocați conexiunea partajată pentru acces exclusiv. Această comandă este utilizată pentru a sincroniza transferurile de autobuz de către driverul de eșantion cu accesele în regiunea op prin firmware-ul ACPI.
unlockconn Deblocați conexiunea partajată.
scrie <> Scrieți o matrice de octeți pe dispozitivul periferic. Exemplu:> scrie
citit Citiți de pe dispozitivul periferic. Exemplu:> citiți 5
writeread <> Scrieți atomic o matrice de octeți pe dispozitivul periferic și citiți înapoi. Exemplu:> writeread 5
semnal Informați driverul SpbTestTool că întreruperea a fost gestionată.
Ajutor Afișați lista de comenzi acceptate.
Ctrl-C Apăsați Ctrl-C în orice moment pentru a anula comanda restantă și a ieși din aplicație.