以前のバージョンのWindowsでは、デバイスマネージャーの[プロパティ]に[ポリシー]タブが表示されていましたが、Windows 8 /8.1では表示されなくなったMarvellドライバーがあります。
これは次のようなものです。
Windows 7およびVistaでは正常にレンダリングされますが、Windows8ではこの新しいタブは表示されません。掘り下げたところ、主な原因(?)はmv91xxm.dll
で、ダイアログボックスを処理します。デコンパイラー(NikPEViewer)は、MFCアイコン、ESATAPortPropPageProvider
と呼ばれるexport、およびその元の名前を表示しましたかつてはhotplug.exe
でした。マーベルの怠惰なプログラマーは、2009年以来このファイルを更新するのを忘れていました。
このダイアログの主なユーティリティは、Marvellコントローラーでドライバーキャッシュモードを有効にし、Windowsで「安全に削除」動作を無効にすることです(コントローラーに接続されているドライブの場合)。
問題を修正する方法がわかりません。また、レジストリキーを更新または作成するか(HKLM\System\CurrentControlSet\Services\mvs91xx
にあると思います)、ファイルを編集するかどうかもわかりません。
どんな種類の助けもありがたいです。
注:ドライバーをMegaにアップロードしました 掘り出したい場合に備えて。
[2014年1月5日更新]
私はマーベルにメールを送りました 公式ウェブサイトを通じて そして彼らはドライバーのメーカーですが、彼らのウェブサイトでダウンロードできないドライバーのサポートを提供していません
親愛なる大切なお客様、マーベルがエンドユーザーにリリースする唯一の承認されたドライバーは、当社のウェブサイトにあります。
http://www.marvell.com/support/downloads/search.do
あなたが探しているドライバーがここにいない場合、私たちはそれを提供しません。
当社のWebサイトにあるドライバーは、エンドユーザー(MarvellのNDAをお持ちでないお客様)に提供する唯一のサポートです。
その他のサポートが必要な場合は、コンピュータの製造元にご連絡ください。ありがとうございました
トリックを使用してTreatAsInternalPort
レジストリキーを追加することは機能しません。これは、基本的に、ポートがAHCIのデフォルトのMicrosoftドライバーによって管理されていないためです。私の直感によると、これはMicrosoftがWindows8でこれらのドライバーの構成値を変更したためでもあります。
私は同じハードウェアを持っておらず、Windows 8.xも使用していないので、提供するのは 静的分析 です。
最初に、Stringsユーティリティを使用して64ビットのmvs91xx.dll
ライブラリファイルをスキャンしました。
文字列は、渡したファイルをスキャンして、デフォルトの長さが3つ以上のUNICODE(またはASCII)文字のUNICODE(またはASCII)文字列を探します。
ソース: 文字列
完全な出力は次のとおりです。
!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
$=(-
{co
kV73@
GJ'
0<(-
^e~
xco
kV78@
OGJKD;*1
]d}~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
当然のことながら、結果はゴミがないわけではありません。最も重要な部分だけを強調します。
著作権情報は2009年以降更新されていませんが、ファイルはタイムスタンプに従って2013年10月に最後に変更されました。これは、ファイルに埋め込まれているビルドディレクトリによって確認されているようです。
d:\project\2013_10\magni_svn\windows\win\sys\AMD64\mv91xxm.pdb
.pdb
ファイル拡張子は Program Database の略で、デバッグ情報を格納する独自のMicrosoft形式です。実際、msvcrt.dll
文字列もあります。これは、ライブラリが Microsoft Visual C++ のバージョンを使用してコンパイルされたことを意味します。
補足として、彼らはソフトウェアのバージョン管理およびリビジョン管理システムとして(d) Apache Subversion を使用しています。
ライブラリは2013年10月に更新されたため、Windows 8、場合によってはWindows8.1とも互換性があると考えるのが妥当です。 mvs91xx.cat
カタログファイル を確認すると、mvs91xx.dll
ライブラリファイルに関連する詳細は次のとおりです。
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
OSAttr
属性は、署名要件が ドライバーパッケージ と互換性のあるターゲットWindowsバージョンを指定します。属性の値は以下を指定します:
- 値
2
は、カタログファイルがWindowsオペレーティングシステムのNTベースバージョンと互換性があることを指定します。- 値
6.0
は、カタログファイルがWindowsVistaと互換性があることを指定します。注ドライバーパッケージ が複数のWindowsバージョンと互換性がある場合は、個別の
CATATTR
オプションを使用して指定する必要があります各WindowsバージョンのOSAttr
属性。
この場合、OSAttr
値には、Windows 7(6.1
)、Windows 8(6.2
)、およびWindows 8.1(6.3
)の3つのNTベースのWindowsバージョンが含まれます。これは、ドライバーパッケージが少なくとも紙の上ではWindows 8 /8.1と互換性があることを意味します。それでも、ポリシーペインはWindows8.xでは使用できません。オペレーティングシステムとライブラリファイルのどちらが原因なのか、私にはわかりません。
ドライバー設定は通常レジストリに保存され、ライブラリにはいくつかのWindowsが含まれています レジストリ関数 :
RegSetValueExA
RegQueryValueExA
RegCloseKey
ポリシー関連の文字列を探していたところ、DriverPolicySet
に出くわしました。ライブラリをリバースエンジニアリングすることにより、レジストリ関数が実際に使用されていること、および上記の文字列が読み取りまたは書き込み中のレジストリパスの一部であることを確認しました。
Webで"DriverPolicySet"
を検索しても、いくつかの興味深い結果が返されました。特に 日本の掲示板への投稿 と ロシアのフォーラムへの返信 。情報を翻訳してまとめることで、文字通り、より明確な画像を得ることができました。
DriverPolicySet
値は文字列(REG_SZ
)であり、次のように設定できます。
0
-すべてのポリシーを無効にします。1
-ドライバーのキャッシュのみを有効にします。2
-安全な削除のみを有効にします。3
-ドライバーのキャッシュと安全な削除の両方を有効にします。通常、次のレジストリキーに保存されます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\0001
レジストリ値がない場合は、自分で作成する必要があります。
変更を適用するには、システムを再起動する必要があります。
{4D36E97B-E325-11CE-BFC1-08002BE10318}
は デバイスクラス[〜#〜] guid [〜#〜] SCSIおよびRAIDコントローラーに割り当てられます。 mvs91xx.inf
ファイルで定義されています。
0001
の終了部分は、使用可能なコントローラーの数によって若干異なる場合があります。たとえば、代わりに0000
や0002
などになります。