スポンサーサイト
投稿日時 : -------- --:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
-------- --:-- | スポンサー広告
「このコマンドを処理するのに必要な記憶域をサーバーで確保できません」
投稿日時 : 2009-06-06 05:21
更新日時 : 2011-05-18 17:22
 Windows上の共有フォルダをネットワークのドライブに割り当てようとすると環境によっては以下のようなエラーメッセージが表示され、割り当てできないことがあります。
このコマンドを処理するのに必要な記憶領域をサーバーで確保できません
 
このエラーメッセージでググるとけっこうたくさんヒットするので、よくある問題のようです。
 

一般的な解決法

 この問題の一般的な解決法は以下のレジストリキー
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
にある、以下の名前のエントリ
IRPStackSize
の値を10進数で「15」、16進数で言うなら「f」に設定し、Windowsを再起動するというものです。
 
IRPStackSize 15
 

IRPStackSizeが存在しない場合

 IRPStackSizeが存在しない場合は、右クリック→「新規作成」で「DWORD値」
new dword IRPStackSize
名前を「IRPStackSize」に変更(注:大文字小文字の区別あり)→値を「10進数で15」に設定という手順で新たに追加してください。値の設定後Windowsを再起動すると反映されます。
 

IRPStackSizeを15にしてもエラーが出る場合

 しかしウチもそうだったんですが、環境によってはIRPStackSizeを15にしても問題が解決しない場合があるようです。こういうときは15以上に値を増やせばいいとのこと。
tkoshima.net
15でだめなら3づつ増やせばいいらしいが、面倒なら50まで大丈夫そうです。
とのことなんですが、ウチの環境では「10進数で16」にしたら解決してしまいました。
IRPStackSize
 

Microsoftの公式サポート情報のまとめ

 3つずつ増やすという情報のソースも気になったのでさらに検索するとMSの公式サポートに情報発見。
 
ウイルス対策ソフトウェアが原因でイベント ID 2011 が発生することがある
LANMAN サーバーでの IRP スタック サイズの変更
 
まあいろいろ書いてありますがまとめると以下のようになるかと思います(WindowsNTに関する情報は無視します)。
  • Nortonなどのウィルス対策ソフトがIRPStackSizeを書き換えることがある
  • Windows2000/XPでは、IRPStackSize のデフォルト値は15で、範囲は11 ~ 50
  • IRPStackSizeが存在しない場合はデフォルト値15が使用される
  • IRPStackSizeを新たに追加した場合は、15よりも大きな値を入力しなければならない
  • 値は3ずつ増やすことを推奨(つまり、前の値が11の場合は、14)
値を3ずつ増やす根拠は結局判明しなかったが内部処理的に都合がいいということなんでしょう。ウチでは16で何の問題もなく動作してますが、本当は15+3で18に設定するのがベストっぽいですね。
 

おまけ:Linuxからmountしようとしたときのエラーメッセージ

 IRPStackSizeの調整前のWindowsの共有フォルダをUbuntu9.04からmountしようとしたときのエラーメッセージは以下のような感じでした。
itmst@Ubuntu9:~ $ sudo mount -t cifs //192.168.0.5/z /mnt/5z
Password: 
mount error(12): Cannot allocate memory
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)
うん。これはWindows側の問題かどうか判断しにくいですね。このエラーメッセージが出たときはWindows側を疑うようにしましょう。
 
 
スポンサーサイト
2009-06-06 05:21 | Windows | Comment(3) | Trackback(0)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。