Win32 API 日本語リファレンス
ホームSystem.ClrHosting › IHostIoCompletionManager

IHostIoCompletionManager

COM
IID8bde9d80-ec06-41d6-83e6-22580effcc20継承元IUnknown自前メソッド開始 vtbl3

メソッド 11

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT CreateIoCompletionPort(HANDLE* phPort)
phPortHANDLE*out新たに作成された I/O 完了ポートのハンドルを受け取るポインタである。
vtbl 4 HRESULT CloseIoCompletionPort(HANDLE hPort)
hPortHANDLEin閉じる対象の I/O 完了ポートのハンドルである。
vtbl 5 HRESULT SetMaxThreads(DWORD dwMaxIOCompletionThreads)
dwMaxIOCompletionThreadsDWORDinI/O 完了スレッドの最大数を指定する DWORD である。
vtbl 6 HRESULT GetMaxThreads(DWORD* pdwMaxIOCompletionThreads)
pdwMaxIOCompletionThreadsDWORD*outI/O 完了スレッドの最大数を受け取る DWORD へのポインタである。
vtbl 7 HRESULT GetAvailableThreads(DWORD* pdwAvailableIOCompletionThreads)
pdwAvailableIOCompletionThreadsDWORD*out現在利用可能な I/O 完了スレッド数を受け取る DWORD へのポインタである。
vtbl 8 HRESULT GetHostOverlappedSize(DWORD* pcbSize)
pcbSizeDWORD*outホストが必要とする OVERLAPPED 構造体のサイズ(バイト数)を受け取る DWORD へのポインタである。
vtbl 9 HRESULT SetCLRIoCompletionManager(ICLRIoCompletionManager* pManager)
pManagerICLRIoCompletionManager*inI/O 完了通知を受け取る ICLRIoCompletionManager インターフェイスへのポインタである。
vtbl 10 HRESULT InitializeHostOverlapped(void* pvOverlapped)
pvOverlappedvoid*in初期化する OVERLAPPED 構造体へのポインタである。
vtbl 11 HRESULT Bind(HANDLE hPort, HANDLE hHandle)
hPortHANDLEinハンドルを関連付ける対象の I/O 完了ポートのハンドルである。
hHandleHANDLEin完了ポートに関連付けるファイル等のハンドルである。
vtbl 12 HRESULT SetMinThreads(DWORD dwMinIOCompletionThreads)
dwMinIOCompletionThreadsDWORDin維持する最小の I/O 完了スレッド数を指定する DWORD である。
vtbl 13 HRESULT GetMinThreads(DWORD* pdwMinIOCompletionThreads)
pdwMinIOCompletionThreadsDWORD*out維持する最小の I/O 完了スレッド数を受け取る DWORD へのポインタである。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IHostIoCompletionManager "{8BDE9D80-EC06-41D6-83E6-22580EFFCC20}"
#usecom global IHostIoCompletionManager IID_IHostIoCompletionManager "{}"
#comfunc global IHostIoCompletionManager_CreateIoCompletionPort     3 sptr
#comfunc global IHostIoCompletionManager_CloseIoCompletionPort      4 sptr
#comfunc global IHostIoCompletionManager_SetMaxThreads              5 int
#comfunc global IHostIoCompletionManager_GetMaxThreads              6 var
#comfunc global IHostIoCompletionManager_GetAvailableThreads        7 var
#comfunc global IHostIoCompletionManager_GetHostOverlappedSize      8 var
#comfunc global IHostIoCompletionManager_SetCLRIoCompletionManager  9 sptr
#comfunc global IHostIoCompletionManager_InitializeHostOverlapped   10 sptr
#comfunc global IHostIoCompletionManager_Bind                       11 sptr,sptr
#comfunc global IHostIoCompletionManager_SetMinThreads              12 int
#comfunc global IHostIoCompletionManager_GetMinThreads              13 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。