WNetGetNetworkInformation ネットワークの情報を取得

Cの宣言:

DWORD WNetGetNetworkInformation(
	LPTSTR ProviderName,
	LPNETINFOSTRUCT NetInfo);

説明:

ProviderNameで指定したネットワークプロバイダの情報を取得し、NetInfoに返却する。

引数の意味は以下の通り。
ProviderName ネットワークプロバイダの名前。
NetInfo 取得結果の情報。

戻り値は、発生したエラーを示すエラー値である。

Cのサンプル:

WNetGetNetworkInformationを使用して、ネットワークプロバイダの情報を取得し、表示する。
void DispNetInfo()
{
	NETINFOSTRUCT ni;

	ni.cbStructure = sizeof(ni);

	WNetGetNetworkInformation("Microsoft Windows Network", &ni);

	printf("ネットワークプロバイダのバージョン: %08x\n", ni.dwProviderVersion);
	printf("ネットワークプロバイダの状態: ");
	switch(ni.dwStatus) {
	case WN_SUCCESS: printf("既に起動済み。\n"); break;
	case WN_NO_NETWORK: printf("まだ起動していない。\n"); break;
	case WN_FUNCTION_BUSY: printf("サービス要求が不可能な状態で、有効にすべき。\n"); break; /* 通常、スタートアップ時の状態 */
	}
	if(ni.dwCharacteristics != 0) {
		printf("ネットワークプロバイダの特徴:\n");
		if(ni.dwCharacteristics & NETINFO_DLL16) printf("\tネットワークプロバイダは16bitのネットワークドライバとして実行されている。\n");
		if(ni.dwCharacteristics & NETINFO_DISKRED) printf("\tネットワークプロバイダはローカルディスクドライブをサーバのファイルシステムにアクセスするためにリダイレクトすることを要求している。\n");
		if(ni.dwCharacteristics & NETINFO_PRINTERRED) printf("\tネットワークプロバイダはローカルプリンタポートをサーバのファイルシステムへのアクセスのためにリダイレクトすることを要求している。\n");
	}
	printf("ネットワークプロバイダのハンドル(もしくは16bit Windows のネットワークドライバのハンドル): %08x\n", ni.dwHandle);
	printf("プロバイダタイプ: ");
	switch(ni.wNetType) {
	case HIWORD(WNNC_NET_LANMAN): printf("Lan Manager\n"); break;
	case HIWORD(WNNC_NET_NETWARE): printf("NetWare\n"); break;
	default: printf("%08x\n", ni.wNetType);
	}
	if(ni.dwPrinters != 0xffffffff) printf("ローカルのプリンタデバイスへのリダイレクトが有効なプリンタの番号を示すビットマスク。最下位ビットはLPT1に対応する: %08x\n", ni.dwPrinters);
	if(ni.dwDrives != 0xffffffff) printf("ディスクドライブへのリダイレクトが有効なローカルディスクデバイスを示すビットマスク。最下位ビットはドライブ“A:”に対応する: %08x", ni.dwDrives);
}
(original text:1999/03/04 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。