SW_DEVICE_CREATE_CALLBACK コールバック関数 (swdevice.h)
レジストリのバッキングをデバイスに提供し、呼び出し元が hSwDevice ハンドルを使用してソフトウェア デバイス API 関数を呼び出すことができます。
構文
SW_DEVICE_CREATE_CALLBACK SwDeviceCreateCallback;
void SwDeviceCreateCallback(
[in] HSWDEVICE hSwDevice,
[in] HRESULT CreateResult,
[in, optional] PVOID pContext,
[in, optional] PCWSTR pszDeviceInstanceId
)
{...}
パラメーター
[in] hSwDevice
ソフトウェア デバイスのハンドル。
[in] CreateResult
ソフトウェア デバイスの列挙が成功したかどうかを示す HRESULT。
[in, optional] pContext
クライアント アプリによって SwDeviceCreate に必要に応じて提供されたコンテキスト。
[in, optional] pszDeviceInstanceId
PnP がデバイスに割り当てたデバイス インスタンス ID。
戻り値
なし
解説
オペレーティング システムは、PnP がデバイスを列挙 した後、SW_DEVICE_CREATE_CALLBACK コールバック関数を呼び出します。 コールバック関数が呼び出されると、デバイスはレジストリにバッキングを持ち、 hSwDevice ハンドルを使用してソフトウェア デバイス API 関数の呼び出しを行うことができます。 また、作成されたデバイスのデバイスで動作する他の API を使用することもできます。
デバイスの PnP 列挙は、デバイスが実行する最初の手順です。 デバイスの PnP 列挙後、デバイスにはレジストリ バッキングのみが含まれており、デバイスに対してプロパティを設定できます。 PnP がデバイスを列挙したからといって、デバイスはまだ起動しておらず、デバイスのドライバーがまだインターフェイスを登録または有効にしていません。 多くの場合、アプリでデバイスを使用する場合は、デバイス インターフェイスの到着を待機することをお勧めします。
Windows 8では、コールバック関数内で SwDeviceClose を呼び出すことはできません。 これを行うと、デッドロックが発生します。 デストラクターの実行時に SwDeviceClose を呼び出す ref counted オブジェクトを解放することに注意してください。 Windows 8.1では、この制限は解除され、コールバック関数内で SwDeviceClose を呼び出すことができます。
CreateResult に渡される HRESULT を常にチェックして、PnP がデバイスを列挙できることを確認します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 |
サポートされている最小のサーバー | Windows Server 2012 |
対象プラットフォーム | デスクトップ |
Header | swdevice.h |