Win32 API 日本語リファレンス
ホーム › NetworkManagement.Rras › PFNRASRECEIVEBUFFER

PFNRASRECEIVEBUFFER

コールバック

シグネチャ

DWORD PFNRASRECEIVEBUFFER(
    HANDLE hPort,
    BYTE* pBuffer,
    DWORD* pdwSize,
    DWORD dwTimeOut,
    HANDLE hEvent
);

パラメーター

フィールド型説明
hPortHANDLEデータを受信するポートのハンドル。このハンドルは、 RasCustomScriptExecute 関数の第 1 パラメーターとして RAS から渡されたハンドルである必要があります。
pBufferBYTE*hPort パラメーターで指定されたポートからデータを受け取るバッファーへのポインター。このバッファーは RasGetBuffer 関数を使用して取得します。
pdwSizeDWORD*pBuffer パラメーターが指すバッファーに返されたデータのサイズを受け取る DWORD 変数へのポインター。
dwTimeOutDWORDカスタムスクリプト DLL がこれ以上データを待機しなくなるまでのタイムアウト時間を、ミリ秒単位で指定します。
hEventHANDLE受信データが利用可能になったときに RAS がシグナル状態にするイベントオブジェクトへのハンドル。

公式ドキュメント

カスタムスクリプト DLL は、指定されたポート経由でサーバーからデータを受信する準備ができたことを RAS に通知するために、 RasReceiveBuffer 関数を呼び出します。

PFNRASRECEIVEBUFFER 型は、このコールバック関数へのポインターを定義します。RasReceiveBuffer は、アプリケーション定義の関数名のプレースホルダーです。

戻り値

関数が成功した場合、戻り値は ERROR_SUCCESS です。

関数が失敗した場合、戻り値は次のいずれかのエラーコードになります。

値 意味
ERROR_BUFFER_INVALID
pBuffer パラメーターに渡されたバッファーへのポインターが無効です。
ERROR_INVALID_PORT_HANDLE
hPort パラメーターで指定されたハンドルが無効です。

解説(Remarks)

RasReceiveBuffer は非同期関数です。 RasReceiveBuffer は、データがまだ利用可能でない場合でもすぐに制御を返します。カスタムスクリプト DLL は、hEvent パラメーターで指定されたイベントオブジェクトを待機する必要があります。データが利用可能になると、RAS はこのイベントをシグナル状態にします。その後、カスタムスクリプト DLL は RasRetrieveBuffer 関数を呼び出してデータを取得します。カスタムスクリプト DLL は、RasReceiveBuffer に渡したものと同じバッファーポインターを RasRetrieveBuffer に渡すことができます。

何らかの理由でデータがポストされる前にポートが切断された場合も、RAS はイベントオブジェクトをシグナル状態にします。この場合、 RasRetrieveBuffer は、失敗の原因を示す Raserror.h で定義されたエラーを返します。

カスタムスクリプト DLL は、関数ポインターを介して RasReceiveBuffer を呼び出します。この関数ポインターは、RAS が DLL に実装された RasCustomScriptExecute を呼び出すときに、パラメーターとしてカスタムスクリプト DLL に渡されます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)