CMD_ENTRY 構造体 (netsh.h)

CMD_ENTRY構造体はヘルパー コマンドを定義します。

構文

typedef struct _CMD_ENTRY {
  LPCWSTR            pwszCmdToken;
  PFN_HANDLE_CMD     pfnCmdHandler;
  DWORD              dwShortCmdHelpToken;
  DWORD              dwCmdHlpToken;
  DWORD              dwFlags;
  PNS_OSVERSIONCHECK pOsVersionCheck;
} CMD_ENTRY, *PCMD_ENTRY;

メンバー

pwszCmdToken

コマンドのトークン (名前)。

pfnCmdHandler

コマンドを処理する関数。 詳細については、「 FN_HANDLE_CMD」を参照してください。

dwShortCmdHelpToken

短いヘルプ メッセージ。 これは、ヘルパー DLL のリソース ファイルからのメッセージ識別子です。

dwCmdHlpToken

コマンドの後にヘルプ トークン (HELP、/?, -?,、?) のみが続いている場合に表示するメッセージ。 これは、ヘルパー DLL のリソース ファイルからのメッセージ識別子です。

dwFlags

コマンドのフラグ。 詳細については、「 Netshell フラグ」を参照してください。

pOsVersionCheck

オペレーティング システムのバージョンチェック機能です。 これは、コマンドを呼び出す前または表示する前に、ローカル コンテキストまたはリモート コンテキストで実行されているオペレーティング システムでコマンドを実行できるかどうかを判断するために使用される関数です。 詳細については、「 NS_OSVERSIONCHECK」を参照してください。

注釈

次のように、 CMD_ENTRY 構造の作成を簡略化できるマクロを使用できます。

#define CREATE_CMD_ENTRY_EX(t,f,i)       {CMD_##t, f, HLP_##t, HLP_##t##_EX, i, NULL}
#define CREATE_CMD_ENTRY_EX_VER(t,f,i,v) {CMD_##t, f, HLP_##t, HLP_##t##_EX, i, v}
#define CREATE_CMD_ENTRY(t,f)            {CMD_##t, f, HLP_##t, HLP_##t##_EX, CMD_FLAG_PRIVATE, NULL}

これらのマクロを使用する場合は、ヘルパー DLL で次の定数を定義する必要があります。

これらのマクロの使用例を次に示します。

#define HLP_SAMPLE_ADD_BAR        1001
#define HLP_SAMPLE_ADD_BAR_EX     1002
#define HLP_SAMPLE_DELETE_BAR     1003
#define HLP_SAMPLE_DELETE_BAR_EX  1004
#define HLP_SAMPLE_SET_GLOBAL     1005
#define HLP_SAMPLE_SET_GLOBAL_EX  1006
#define HLP_SAMPLE_SET_BAR        1007
#define HLP_SAMPLE_SET_BAR_EX     1008
#define HLP_SAMPLE_SET_FILTER     1009
#define HLP_SAMPLE_SET_FILTER_EX  1010
#define HLP_SAMPLE_SHOW_GLOBAL    1011
#define HLP_SAMPLE_SHOW_GLOBAL_EX 1012
#define HLP_SAMPLE_SHOW_BAR       1013
#define HLP_SAMPLE_SHOW_BAR_EX    1014
#define HLP_SAMPLE_SHOW_FILTER    1015
#define HLP_SAMPLE_SHOW_FILTER_EX 1016

#define CMD_SAMPLE_ADD_BAR        L"add_bar"
#define CMD_SAMPLE_DELETE_BAR     L"delete_bar"
#define CMD_SAMPLE_SET_GLOBAL     L"set_global"
#define CMD_SAMPLE_SET_BAR        L"set_bar"
#define CMD_SAMPLE_SET_FILTER     L"set_filter"
#define CMD_SAMPLE_SHOW_GLOBAL    L"show_global"
#define CMD_SAMPLE_SHOW_BAR       L"show_bar"
#define CMD_SAMPLE_SHOW_FILTER    L"show_filter"

CMD_ENTRY  g_SampleAddCmdTable[] = 
{
    CREATE_CMD_ENTRY(SAMPLE_ADD_BAR, HandleSampleAddBar),
};
CMD_ENTRY  g_SampleDeleteCmdTable[] = 
{
    CREATE_CMD_ENTRY(SAMPLE_DELETE_BAR, HandleSampleDeleteBar),
};
CMD_ENTRY  g_SampleSetCmdTable[] = 
{
    CREATE_CMD_ENTRY(SAMPLE_SET_GLOBAL, HandleSampleSetGlobal),
    CREATE_CMD_ENTRY_EX(SAMPLE_SET_BAR, HandleSampleSetBar, (CMD_FLAG_PRIVATE | CMD_FLAG_ONLINE) ),
    CREATE_CMD_ENTRY_EX_VER(SAMPLE_SET_FILTER, HandleSampleSetFilter, (CMD_FLAG_PRIVATE | CMD_FLAG_ONLINE), CheckRunningOnWindowsXP),
};
CMD_ENTRY  g_SampleShowCmdTable[] = 
{
    CREATE_CMD_ENTRY(SAMPLE_SHOW_GLOBAL, HandleSampleShowGlobal),
    CREATE_CMD_ENTRY_EX(SAMPLE_SHOW_BAR, HandleSampleShowBar, (CMD_FLAG_PRIVATE | CMD_FLAG_ONLINE) ),
    CREATE_CMD_ENTRY_EX_VER(SAMPLE_SHOW_FILTER, HandleSampleShowFilter, (CMD_FLAG_PRIVATE | CMD_FLAG_ONLINE), CheckRunningOnWindowsXP),
};

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header netsh.h

こちらもご覧ください

CMD_GROUP_ENTRY

NS_CONTEXT_COMMIT_FN

NetShell フラグ