Die Registerkarte "Richtlinien" des Treibers wird in Windows nicht angezeigt

4305
DarkGhostHunter

Ich habe einen Marvell-Treiber, der in früheren Versionen von Windows im Geräte-Manager in den Eigenschaften eine Registerkarte "Richtlinien" angezeigt hat, aber nicht mehr in Windows 8 / 8.1.

Es ist ungefähr so:

In Windows 7 und Vista wird die Anzeige zwar einwandfrei dargestellt, in Windows 8 ist diese neue Registerkarte jedoch nicht vorhanden. Ich habe ausgegraben und der Hauptschuldige (?) Ist mv91xxm.dll, der die Dialogbox behandelt. Ein Decompiler (NikPEViewer) zeigte mir ein MFC-Symbol, einen Export namens ESATAPortPropPageProviderund seinen ursprünglichen Namen war hotplug.exeeinmal. Die faulen Programmierer von Marvell haben vergessen, diese Datei seit 2009 zu aktualisieren.

Das Hauptprogramm dieses Dialogfelds besteht darin, den Treibercache-Modus im Marvell Controller zu aktivieren und das Verhalten "Sicheres Entfernen" in Windows (für Laufwerke, die an den Controller angeschlossen sind) zu deaktivieren.

Ich weiß nicht, wie ich das Problem beheben kann, und ich weiß nicht, ob Updates erstellt oder ein Registrierungsschlüssel erstellt wird (ich denke, da ist etwas HKLM\System\CurrentControlSet\Services\mvs91xxdrin) oder eine Datei bearbeitet, was auch immer ist.

Jede Art von Hilfe wird geschätzt.

Hinweis: Ich habe die Treiber in Mega hochgeladen, falls Sie graben möchten.

[Update 01-05-2014]

Ich habe Marvell über die offizielle Website eine E-Mail geschickt, und obwohl sie die Treiber der Treiber sind, bieten sie keinen Support für Treiber an, die auf ihrer Website nicht zum Herunterladen verfügbar sind

Sehr geehrter Kunde, die einzigen von Marvell für Endbenutzer freigegebenen Treiber befinden sich auf unserer Website:

http://www.marvell.com/support/downloads/search.do

Wenn der von Ihnen gesuchte Treiber nicht dabei ist, stellen wir ihn nicht zur Verfügung.

Die Treiber, die sich auf unserer Website befinden, sind die einzige Unterstützung, die wir Endnutzern anbieten (Kunden, die keine NDAs bei Marvell haben).

Wenn Sie weitere Supportanfragen haben, wenden Sie sich bitte an den Hersteller Ihres Computers. Danke dir

Der Trick zum Hinzufügen eines TreatAsInternalPortRegistrierungsschlüssels funktioniert nicht, im Wesentlichen, weil die Ports nicht vom Standard-Microsoft-Treiber für AHCI verwaltet werden. Meiner Meinung nach liegt das auch daran, dass Microsoft die Konfigurationswerte dieser Treiber in Windows 8 geändert hat.

2

2 Antworten auf die Frage

3
and31415

Analyse

Ich habe weder die gleiche Hardware, noch verwende ich Windows 8.x. Ich werde also statische Analysen bereitstellen .

Zeichenketten

Zuerst habe ich die 64-Bit- mvs91xx.dllBibliotheksdatei mit dem Dienstprogramm Strings durchsucht .

Strings scannt die von Ihnen übergebene Datei nur nach UNICODE- (oder ASCII-) Zeichenfolgen mit einer Standardlänge von 3 oder mehr UNICODE- (oder ASCII-) Zeichen.

Quelle: Zeichenfolgen

Hier ist die volle Ausgabe:

!This program cannot be run in DOS mode. Rich .text `.data .pdata @.rsrc @.reloc EEE ('8PW 700PP ```hhh xppwpp SeShutdownPrivilege Change Cahce Module Policy You must restart your computer before the new settings will take effect. Do you want to restart your computer now? RSDS d:\project\2013_10\magni_svn\windows\win\sys\amd64\mv91xxm.pdb %f& B@H L$ H D$ ` D$(H D$$ D$HH D$0f D$XH \$P s I NtH (tL t?3 \$0H t$8H D$PD D$1 D$3A T$0A 8M; t.H |$8H+ T$0H tJH 0t4H |$8H L$0 D$( D$  |$0H D$0D L$(H D$  L$PH3 \$`I s I d$X d$P !D$0 D$T D$4 D$8 D$< D$X D$PH D$PH L$XH d$( d$  D$0A D$4 D$0 D$< L$X D$0 d$  %L! u'H d$  d$  tUH D$( D$  L$0H3 \$XH D$( D$  D$4H D$(H D$@E3 D$4P D$  D$4H D$(H D$0E3 D$4 D$  L$0 L$0 L$@ L$@ ATH d$  t2M d$  t$@H 0A\ VWATAUAVH t7H t!H \$PH l$XH A^A]A\_^ SVWH \$  \$  uxH D$  \$  t/L D$  \$  D$  \$  uoE3 \$ E3 \$ H \$  uaL D$  \$  D$  \$  _^[ \$0H t$8H @SH McP A8H HcH<H 9PE f9Q LcA<E3 (E; t"M+ d$0 L$0 \$0 L$8D \$8L3 \$@H \$XE3 T$`H L$X D$PH |$P tAH D$8 D$HH D$0H D$@H D$(H D$ L L$PL D$XH T$`3 D$hH D$p3 @UH EP=csm E0H @UH Ep=csm E8H @UH E`=csm EHH @UH =csm E$H @UH E(=csm E4H @UH E@=csm ELH @UH EX=csm EhH @UH Ex=csm @UH @UH pd  pd  strchr atol _XcptFilter malloc _initterm free _amsg_exit __C_specific_handler msvcrt.dll SetupDiOpenDevRegKey SETUPAPI.dll HeapAlloc GetCurrentProcess HeapFree GetProcessHeap GetLastError DisableThreadLibraryCalls OutputDebugStringA CloseHandle LocalFree Sleep RtlVirtualUnwind RtlLookupFunctionEntry RtlCaptureContext QueryPerformanceCounter GetTickCount GetCurrentThreadId GetCurrentProcessId GetSystemTimeAsFileTime TerminateProcess UnhandledExceptionFilter SetUnhandledExceptionFilter KERNEL32.dll OpenProcessToken RegSetValueExA RegQueryValueExA LookupPrivilegeValueA AdjustTokenPrivileges RegCloseKey InitiateSystemShutdownExA ADVAPI32.dll EnableWindow SetWindowLongPtrA GetDlgItem MessageBoxA GetFocus SendDlgItemMessageA GetWindowLongPtrA USER32.dll DestroyPropertySheetPage CreatePropertySheetPageA COMCTL32.dll MVCOINST.dll ESATAPortPropPageProvider N@  kU'9 &D( HMXB 9;5 ?q= ?Zd; ?3= ?/L[ S;uD ?$# ;1a z?aUY D?$? *?} d|F U>c{ #Tw zc%C1 .:3q ,%I -64OS NKeb eSATAport MatchingDeviceId eSATAportCount DriverPolicySet 0123 wwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwww www wwww wwwwwwwwwww} wwwwwwww wwwwwwwwwwwwww wwwwwwwwwwwwww wwwwwww} wwww wwwwwww}x }wwwwwww} wwww wXk qN] tno <sa _`__``_``a`_`_aaaa` ! !  i\\\\\\\\[\\\\\\\[\\a///2/////////2/22/// i\^ da2/ BB<<<<777111,,,*/ i\^ na2/ RFGHJCDKLL=>>88+/ h\^ }qq [`//"QRT$ 1=>>8+2 j\^ sccy \`2/"OQ $%=>>*2 i\^ sccy \a//"NO 66** L=>(2 i\]~ rccy \a//"WN FTHI*++LL=(/ h\^|~ rccs \`//'VW RFTHJCDKLL)2 j\]x|~ rccp~ \_//'VV QRFTHJCDKL(/ i\^wx|~pcccccb \`//'UV OQRFGHJCDK(/ i\]wwx|pcckrss \a//0UU NOQRSGHIJD(2 i\^vwwxpccr \`///YU WNOQRFTHIJ)/ j\]uvwwmccp \`//9YY VWNO5;*THI)2 j\]uuvwmccp \a//9XY VVWN STH)2 i\]ouuvmccbbbbbs \a//@XX0 RST)/ i\]oouulefffggkt \`/2@ZXX: ;NPRF(/ h\]loouuvwwx|~ \_2/@ZZXXYYUUUVWNOPQ(/ i\]ffggkkqqqzzz{{{ \_//?MMMMEEEAAAA3345 i\\\\\\\\\\\\\\\\\\\`//&&&&&--&&&&-&&&&./ illlllllll ##" nPh _s- >w+ 3Zz ]ZZZZZZZZZZZWV-1---------1- mV2.AHBC5D;<<(- kV2.P:# !!+=>(- kV239 $=(- ~wca`` kV78F OOGJKD*1 \dy}rch{ kV7EF MNOGIK/1 \buyrcj kV?EE RR.#:I/- [btuncfssv kV?LE &%" 9G41 ]_ptqhhhjj kV?LTE @NO41 ]_mptuy}~ lV6SUTTQQQRRN91 [WXXXYXXYXYYWV-)))))))))),, uVh _s- F5><<==. ECK2LPV. E@J3MOU. D?H31IT. -,% B;G1JKS.( E9A011R.&# E/4678:."&'  NQWhX^XXXe rpq t}~] djklnoc sgba`_f| ux|||| # # #  #! #  #! #! #  # #  #gdc  # #! #  # # #  # #  # #  # # # # ! # t5! #! # lR! # .Bu mS! # <Bv lR! # lR! # d0_ lR! # b0` lR! # `0_ lR! # ]1` lR! # [0_ lR! # V0_ lR! # U0_ lR! # O0_ lR! # M0_ lR! # K0_ lR! # F0_ lR! # lR! # lS! # lR! # lR! # b;wi=ua=ua=ua=ua<u`=ua=ua<u`9d[qikunntnntnnunntnnunnunntpwyr cVgdc y]q nkgdc wYl gdc rP` gdc oJY gdc y|~$s hJ[ rcgdc 4@egdc 5@fgdc 5@fgdc 4@egdc 5Afgdc 4@egdc 5@fgdc 5@fgdc 4@egdc 4@egdc 5@fgdc 5Afgdc 5@egdc 5@fgdc BL@BM@BM@BL@BL@BL@BL@BM@CMABM@BL@BL@  #w\Rv\Rw]Sw\Rw\Rw\Sv\Rv\Rw\Rw]Sw]Sw]StYQ1-/  _s- t6REE  F_s- t6RDD  <_s- t5REE  =^s, t5RDE  =_s- u6RDD  y0_ =_s- =REE  t0_ =^s, =REE  j0_ =_s- =SEE  f0_ =_s- =REE  [0_ >w+^ =^s, =REE  =_s- =SEE  <^s, =SEE  _s- ;tcc  3ZzWo vWj pM\ XBe 4@e ?Ru CXz CXz CYz CXz BXz CXz CY{ =_s- |Xfdc _s- Zgec _s- Zfdc _s- Zfdc y=z ^s- Zfdc ^<y _s- Yfdc >_s- vVh 7<K 8<K 7<K 8<K Policies MS Shell Dlg This setting enables driver caching to improve disk performance. This setting will be ignored and un-checked if enabled safely remove disk Enable driver cache mode. Note: The setting will not take effect until you restart system This setting enables remove disk safely. To disconnect disk from controller, click the Safely Remove Hardware icon in the taskbar notification area. Enable safely remove disk. VS_VERSION_INFO StringFileInfo 040904e4 CompanyName <Marvell> FileDescription Coinstaller FileVersion 1.0.0.2 InternalName hotplug.exe LegalCopyright 2009 (c) <Marvell>. All rights reserved. OriginalFilename hotplug.exe ProductName driver feature policy ProductVersion 1.0.0.2 VarFileInfo Translation 

Es überrascht nicht, dass das Ergebnis nicht frei von Müll ist. Ich werde nur die wichtigsten Bits hervorheben.

Bibliotheksinformationen

Während die Copyright-Informationen seit 2009 nicht aktualisiert wurden, wurde die Datei zuletzt im Oktober 2013 entsprechend ihrem Zeitstempel geändert. Dies scheint durch das in der Datei eingebettete Build-Verzeichnis bestätigt zu werden:

d:\project\2013_10\magni_svn\windows\win\sys\amd64\mv91xxm.pdb 

Die .pdbDateierweiterung steht für Program Database, ein proprietäres Microsoft-Format, das Debugging-Informationen speichert. In der Tat gibt es auch eine msvcrt.dllZeichenfolge, was bedeutet, dass die Bibliothek mit einer Version von Microsoft Visual C ++ kompiliert wurde .

Als Randnotiz verwenden sie (d) Apache Subversion als Software-Versionierungs- und Revisionskontrollsystem.

Kompatibilität mit Windows 8.x

Da die Bibliothek im Oktober 2013 aktualisiert wurde, kann davon ausgegangen werden, dass sie mit Windows 8 und möglicherweise auch mit Windows 8.1 kompatibel sind. Wenn Sie die mvs91xx.cat Katalogdatei überprüfen, finden Sie hier Details zu der mvs91xx.dllBibliotheksdatei:

Tag 9B1349794EE18ECCCBBD7F38FEEA9D44CC42746E Thumbprint algorithm sha1 Thumbprint 9b 13 49 79 4e e1 8e cc cb bd 7f 38 fe ea 9d 44 cc 42 74 6e OSAttr 2:6.1,2:6.2,2:6.3 File mvs91xx.dll 

OSAttr:2:6.0

Das OSAttrAttribut gibt die Windows-Zielversion an, deren Signaturanforderungen mit dem Treiberpaket kompatibel sind . Der Wert des Attributs gibt Folgendes an:

  • Der Wert 2gibt an, dass die Katalogdatei mit NT-basierten Versionen des Windows-Betriebssystems kompatibel ist.
  • Der Wert 6.0gibt an, dass die Katalogdatei mit Windows Vista kompatibel ist.

Hinweis Wenn das Treiberpaket mit mehreren Windows-Versionen kompatibel ist, müssen Sie CATATTRdas OSAttrAttribut für jede Windows-Version mit separaten Optionen angeben .

Quelle: Erstellen einer Katalogdatei für ein Nicht-PnP-Treiberpaket

In diesem Fall enthält der OSAttrWert drei NT-basierte Windows-Versionen: Windows 7 ( 6.1), Windows 8 ( 6.2) und Windows 8.1 ( 6.3). Dies bedeutet, dass das Treiberpaket zumindest auf Papier mit Windows 8 / 8.1 kompatibel ist. Dennoch ist der Richtlinienbereich in Windows 8.x nicht verfügbar. Ob das Betriebssystem oder die Bibliotheksdatei daran schuld ist, würde ich nicht wissen.

Registrierungsfunktionen

Treibereinstellungen werden normalerweise in der Registrierung gespeichert, und die Bibliothek enthält einige Windows- Registrierungsfunktionen :

RegSetValueExA RegQueryValueExA RegCloseKey 

Auf der Suche nach strengen Richtlinien stieß ich auf DriverPolicySet. Durch das Reverse Engineering der Bibliothek bestätigte ich, dass die Registrierungsfunktionen tatsächlich verwendet wurden und dass die oben genannte Zeichenfolge Teil eines Registrierungspfads war, der entweder gelesen oder geschrieben wurde.


Manuelle Politikanpassung

Die Suche "DriverPolicySet"im Internet ergab nur wenige, aber interessante Ergebnisse. Insbesondere ein Beitrag in einem japanischen Forum und eine Antwort in einem russischen Forum . Durch das Übersetzen und Zusammenstellen der Informationen konnte ich ein klareres Bild erhalten - buchstäblich.

DriverPolicySet

Der DriverPolicySetWert ist eine Zeichenfolge ( REG_SZ), die gesetzt werden kann:

  • 0 - Deaktivieren Sie alle Richtlinien.
  • 1 - Nur die Zwischenspeicherung des Treibers aktivieren.
  • 2 - Nur sichere Entfernung aktivieren.
  • 3 - Aktivieren Sie die Zwischenspeicherung des Treibers und das sichere Entfernen.

Es wird normalerweise in dem folgenden Registrierungsschlüssel gespeichert:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\\0001 

Bemerkungen

  • Falls der Registrierungswert nicht vorhanden ist, müssen Sie ihn selbst erstellen.

  • Sie müssen das System neu starten, um die Änderungen zu übernehmen.

  • ist die Geräte-Klassen- GUID, die SCSI- und RAID-Controllern zugewiesen ist. Es ist in der mvs91xx.infDatei definiert .

  • Der 0001Endteil kann je nach Anzahl der verfügbaren Controller etwas unterschiedlich sein. Zum Beispiel könnte es stattdessen 0000oder 0002usw. sein.

ES FUNKTIONIERTE. Ich wiederhole, es hat funktioniert. DarkGhostHunter vor 9 Jahren 0
@DarkGhostHunter Ich bin froh, es zu hören. Könnten Sie genau angeben, wo der Registrierungswert gespeichert wurde? and31415 vor 9 Jahren 0
Wenn Sie "DriverPolicySet" hinzufügen und auf "1" setzen, wird der Datenträger normalerweise mit internen Anschlüssen behandelt. Wenn Sie ihn auf die anderen Werte ändern, sollten die angeforderten Funktionen aktiviert oder deaktiviert werden. Ich kam schon früher zu diesem Registrierungsschlüssel, aber ich dachte, das war nicht wichtig. Ich glaube, ich habe einige russische und japanische Foren gesehen, aber ich habe nicht so weit ausgegraben. Glückwunsch, Sie haben die Prämie bekommen. Und ein sehr bekanntes Problem für Marvell-Benutzer wurde behoben. Prost! DarkGhostHunter vor 9 Jahren 0
@DarkGhostHunter Sie mussten also manuell den `DriverPolicySet'-Wert hinzufügen, dh es war noch nicht vorhanden? Welches war auch der Registrierungspfad? Es scheint, dass das Treiberpaket tatsächlich mit Windows 8.x kompatibel ist, obwohl Sie den Registrierungswert manuell bearbeiten müssen. and31415 vor 9 Jahren 0
Es war von Anfang an nicht da, daher hat Marvell dort wahrscheinlich das Ziel verfehlt. Der Registrierungspfad war derselbe, aber die Endung war "0002" (ich habe Baumcontroller). Tatsächlich ist das Treiberpaket kompatibel. Daher ist die Registerkarte "Richtlinien" die einzige Funktion, die den gesamten Zweck der "mvx91xx.dll" aufhebt. DarkGhostHunter vor 9 Jahren 0
2
Synetech

Erklärungen

Wie Sie schon sagten, haben sie es nicht aktualisieren, wenn sie die Treiber auf Windows 8, das portiert heißt, es ist auch möglich (vielleicht sogar wahrscheinlich ), dass sie zu entfernen, wählen sie aus der Windows - 8 - Treiber aufgrund eines Fehlers und / oder Unverträglichkeit mit dem Windows 8 und / oder aufgrund des unterschiedlichen Interface-Designs von Windows 8 (normalerweise wird das Symbol für den Benachrichtigungsbereich standardmäßig nicht angezeigt).

Lösung

Am besten nehmen Sie einfach Kontakt mit Marvell auf und lassen Sie sie wissen, dass die Registerkarte fehlt, und fordern Sie an, den Treiber zu aktualisieren, um ihn zu beheben. Entweder machen sie das oder sie erklären genau, warum sie es entfernt haben.

Umgehen

Wenn Sie die Funktionalität der Seite benötigen, können Sie in der Zwischenzeit genau feststellen, welche Registrierungseinträge festgelegt sind, wenn Sie Zugriff auf ein System haben, auf dem es verfügbar ist (z. B. in Windows 7):

  1. Führen Sie Process Monitor aus
  2. Legen Sie fest, dass alles außer der Registrierung herausgefiltert wird
  3. Stoppen Sie die Aufnahme und löschen Sie die Ergebnisse
  4. Öffnen Sie die Registerkarte Richtlinien
  5. Aktivieren Sie das Kontrollkästchen
  6. Wechseln Sie zu ProcMon und starten Sie die Aufnahme
  7. Wechseln Sie schnell wieder zur Registerkarte
  8. Klicken [Apply]
  9. Wechseln Sie schnell wieder zu ProcMon und stoppen Sie die Erfassung
  10. Durchsuchen Sie die Registrierungsänderungen, um das relevante zu finden

Alternative Problemumgehung

Wenn Sie keinen Zugriff mehr auf ein kompatibles System haben (dh Sie können keine temporäre Kopie von Windows 7 auf Ihrem System installieren), können Sie eine alternative (und herstellerunabhängige ) Lösung ausprobieren, die auf der Seite angegeben wurde, auf der Sie das System gefunden haben Screenshot, den Sie in Ihrer Frage gepostet haben (die Person, die gepostet hat, hat sie nicht in Windows 8 getestet, aber es lohnt sich, wenn Sie nicht auf eine Antwort von Marvell warten können):

  1. Navigiere zu HKLM\SYSTEM\CurrentControlSet\services\msahci
  2. Erstellen Sie einen Schlüssel mit dem Namen Controller0
  3. Erstellen Sie einen Unterschlüssel mit dem Namen Channel0
  4. Erstellen Sie einen DWORD-Namen TreatAsInternalPortund setzen Sie ihn auf1
  5. Wiederholen Sie dies für Channel1, Channel2usw. und ggf. für Controller1usw.
  6. Starten Sie neu

Hier ist ein Registrierungsskript mit den Standardeinstellungen, von denen die Leute in diesem Thread sagten, dass sie für sie gearbeitet haben:

REGEDIT4 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci\Controller0\Channel0] "TreatAsInternalPort"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci\Controller0\Channel1] "TreatAsInternalPort"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci\Controller0\Channel2] "TreatAsInternalPort"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci\Controller0\Channel3] "TreatAsInternalPort"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci\Controller0\Channel4] "TreatAsInternalPort"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci\Controller0\Channel5] "TreatAsInternalPort"=dword:00000001 
Ich versuche die alternative Problemumgehung. Inzwischen geht es mit der Post nach Marvell. DarkGhostHunter vor 10 Jahren 0