2011-02-09 6 views
2

クライアントアプリケーションからリモートサーバー上の名前付きパイプをどうにかすることができますか?ローカルコンピュータで
私はhFindFileは、ハンドルで、fdFileDataはWIN32_FIND_DATA構造体であるリモートサーバー上のアクセス可能な名前付きパイプの一覧を取得する方法は?

hFindFile = FindFirstFile("\\\\.\\pipe\\*",&fdFileData); 

を使用しています。私はFindNextFile()を繰り返し呼び出し、FindClose()で閉じるときに0を返します。これは、ローカルマシン上で完璧に動作しますが、私は

hFindFile = FindFirstFile("\\\\servername\\pipe\\*",&fdFileData); 

を呼び出すしようとすると、それはERROR_INVALID_FUNCTIONになりました。 誰かがWNetUseConnection()でリモートサーバーに接続する必要があると私に助言しますが、私にとってはどのオブジェクトに接続しているのかはわかりません。

+0

ワウ。率直に言って私は最初のものが実際に動作することに驚いています。しかし、それを支持するパイプとして文書化されていないので、それに頼るのは危険かもしれないと思う。 – Luke

+1

@ルーク:Windows上の名前付きパイプは、実際には\\。\ pipe \ディレクトリにマウントされたNPFSファイルシステム上の一時的な "ファイル"です。そのため、CreateFile()を使用してクライアントプログラムの名前付きパイプに接続することができます。 – PanPredseda

+0

これを参照してくださいhttp://stackoverflow.com/questions/719353/win32-named-pipes-and-remote-clients – MartyTPS

答えて

0

他のマシンがウィンドウの場合、WNetUseConnection()を使用してドライブをマップし、他のリソース(名前付きパイプ)に接続するために必要な認証情報を取得するだけで十分です。

http://support.microsoft.com/kb/256847

関連する問題