ホーム › System.RemoteDesktop › ITSGPolicyEngine
ITSGPolicyEngine
COMメソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT AuthorizeConnection(GUID mainSessionId, LPWSTR username, AAAuthSchemes authType, LPWSTR clientMachineIP, LPWSTR clientMachineName, BYTE* sohData, DWORD numSOHBytes, BYTE* cookieData, DWORD numCookieBytes, HANDLE_PTR userToken, ITSGAuthorizeConnectionSink* pSink)
| mainSessionId | GUID | in | 認可するメインセッションを識別する GUID を指定する。 |
| username | LPWSTR | in | 接続を要求しているユーザーの名前を指定する。 |
| authType | AAAuthSchemes | in | 使用された認証方式 (AAAuthSchemes) を指定する。 |
| clientMachineIP | LPWSTR | in | クライアントマシンの IP アドレスを指定する。 |
| clientMachineName | LPWSTR | in | クライアントマシンの名前を指定する。 |
| sohData | BYTE* | in | クライアントのステートメント・オブ・ヘルスデータを保持するバッファへのポインタを渡す。 |
| numSOHBytes | DWORD | in | sohData が指すデータのバイト数を指定する。 |
| cookieData | BYTE* | in | 認可に使用するクッキーデータを保持するバッファへのポインタを渡す。 |
| numCookieBytes | DWORD | in | cookieData が指すデータのバイト数を指定する。 |
| userToken | HANDLE_PTR | in | ユーザーを表すトークンのハンドルを指定する。 |
| pSink | ITSGAuthorizeConnectionSink* | in | 認可結果を非同期で通知する ITSGAuthorizeConnectionSink へのポインタを渡す。 |
vtbl 4 HRESULT AuthorizeResource(GUID mainSessionId, INT subSessionId, LPWSTR username, LPWSTR* resourceNames, DWORD numResources, LPWSTR* alternateResourceNames, DWORD numAlternateResourceName, DWORD portNumber, LPWSTR operation, BYTE* cookie, DWORD numBytesInCookie, ITSGAuthorizeResourceSink* pSink)
| mainSessionId | GUID | in | 対象のメインセッションを識別する GUID を指定する。 |
| subSessionId | INT | in | 対象のサブセッションを識別する番号を指定する。 |
| username | LPWSTR | in | アクセスを要求しているユーザーの名前を指定する。 |
| resourceNames | LPWSTR* | in | アクセス対象のリソース名の配列を指定する。 |
| numResources | DWORD | in | resourceNames に含まれる要素数を指定する。 |
| alternateResourceNames | LPWSTR* | in | リソースの代替名の配列を指定する。 |
| numAlternateResourceName | DWORD | in | alternateResourceNames に含まれる要素数を指定する。 |
| portNumber | DWORD | in | アクセス対象のポート番号を指定する。 |
| operation | LPWSTR | in | 実行する操作を表す文字列を指定する。 |
| cookie | BYTE* | in | 認可に使用するクッキーデータを保持するバッファへのポインタを渡す。 |
| numBytesInCookie | DWORD | in | cookie が指すデータのバイト数を指定する。 |
| pSink | ITSGAuthorizeResourceSink* | in | 認可結果を非同期で通知する ITSGAuthorizeResourceSink へのポインタを渡す。 |
vtbl 5 HRESULT Refresh()
| quarantineEnabled | BOOL* | out | 検疫が有効かどうかを示すブール値を受け取る。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ITSGPolicyEngine "{8BC24F08-6223-42F4-A5B4-8E37CD135BBD}" #usecom global ITSGPolicyEngine IID_ITSGPolicyEngine "{}" #comfunc global ITSGPolicyEngine_AuthorizeConnection 3 int,wstr,int,wstr,wstr,var,int,var,int,sptr,sptr #comfunc global ITSGPolicyEngine_AuthorizeResource 4 int,int,wstr,var,int,var,int,int,wstr,var,int,sptr #comfunc global ITSGPolicyEngine_Refresh 5 #comfunc global ITSGPolicyEngine_IsQuarantineEnabled 6 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ITSGPolicyEngine "{8BC24F08-6223-42F4-A5B4-8E37CD135BBD}" #usecom global ITSGPolicyEngine IID_ITSGPolicyEngine "{}" #comfunc global ITSGPolicyEngine_AuthorizeConnection 3 int,wstr,int,wstr,wstr,sptr,int,sptr,int,sptr,sptr #comfunc global ITSGPolicyEngine_AuthorizeResource 4 int,int,wstr,sptr,int,sptr,int,int,wstr,sptr,int,sptr #comfunc global ITSGPolicyEngine_Refresh 5 #comfunc global ITSGPolicyEngine_IsQuarantineEnabled 6 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。