Win32 API 日本語リファレンス
ホームStorage.Imapi › IBootOptions

IBootOptions

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID2c941fd4-975b-59be-a960-9a2a262853a5継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

このインターフェイスを使用して、光ディスクに追加するブートイメージを指定します。ブートイメージには、コンピューターの起動に使用される 1 つ以上のセクターのコードが含まれます。

解説(Remarks)

このインターフェイスは、"El Torito" ブータブル CD-ROM フォーマット仕様をサポートします。

ファイルシステムイメージにブートイメージを追加するには、IFileSystemImage::put_BootImageOptions メソッドを呼び出します。

ファイルシステムイメージに関連付けられたブートイメージを取得するには、IFileSystemImage::get_BootImageOptions メソッドを呼び出します。

スクリプトで BootOptions オブジェクトを作成するには、CreateObject を呼び出す際にプログラム識別子として IMAPI2.BootOptions を使用します。

メソッド 9

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_BootImage(IStream** pVal)

ブートイメージのデータストリームへのポインターを取得します。

pValIStream**outブートイメージのデータストリームに関連付けられた IStream インターフェイスへのポインター。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合があります。操作が失敗した場合は一般に次のエラーコードが返されますが、返される可能性のあるエラー値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

vtbl 8 HRESULT get_Manufacturer(LPWSTR* pVal)

CD の製造元の識別子を取得します。

pValLPWSTR*outCD の製造元の識別子。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合があります。操作が失敗した場合は一般に次のエラーコードが返されますが、返される可能性のあるエラー値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

vtbl 9 HRESULT put_Manufacturer(LPWSTR newVal)

CD の製造元または開発元を識別する識別子を設定します。

newValLPWSTRinCD の製造元または開発元を識別する識別子。これは 24 バイトに制限された ANSI 文字列です。文字列に NULL 文字を含める必要はありませんが、未使用のバイトは 0x00 に設定する必要があります。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合があります。操作が失敗した場合は一般に次のエラーコードが返されますが、返される可能性のあるエラー値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

IMAPI_E_INVALID_PARAM
指定された newVal パラメーターが有効ではありません。

値: 0xC0AAB101

vtbl 10 HRESULT get_PlatformId(PlatformId* pVal)

ブートイメージがサポートするオペレーティングシステムのアーキテクチャを示すプラットフォーム識別子を取得します。

pValPlatformId*outブートイメージがサポートするオペレーティングシステムのアーキテクチャを示します。指定可能な値については、PlatformId 列挙型を参照してください。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合があります。操作が失敗した場合は一般に次のエラーコードが返されますが、返される可能性のあるエラー値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

vtbl 11 HRESULT put_PlatformId(PlatformId newVal)

ブートイメージがサポートするオペレーティングシステムのアーキテクチャを示すプラットフォーム識別子を設定します。

newValPlatformIdinブートイメージがサポートするオペレーティングシステムのアーキテクチャを示します。指定可能な値については、PlatformId 列挙型を参照してください。既定値は、Intel x86 ベースのプラットフォームを表す PlatformX86 です。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合があります。

vtbl 12 HRESULT get_Emulation(EmulationType* pVal)

ブートイメージがエミュレートすることを意図しているメディアの種類を取得します。

pValEmulationType*outブートイメージがエミュレートすることを意図しているメディアの種類。指定可能な値については、EmulationType 列挙型を参照してください。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合があります。操作が失敗した場合は一般に次のエラーコードが返されますが、返される可能性のあるエラー値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

vtbl 13 HRESULT put_Emulation(EmulationType newVal)

ブートイメージがエミュレートすることを意図しているメディアの種類を設定します。

newValEmulationTypeinブートイメージがエミュレートすることを意図しているメディアの種類。指定可能な値については、EmulationType 列挙型を参照してください。既定値は EmulationNone で、CD からのブート時に BIOS が CD に対してデバイスの種類や特別なセクターサイズをエミュレートしないことを意味します。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合があります。操作が失敗した場合は一般に次のエラーコードが返されますが、返される可能性のあるエラー値はこれらだけではありません。

戻り値 説明
IMAPI_E_BOOT_EMULATION_IMAGE_SIZE_MISMATCH
要求されたエミュレーションの種類がブートイメージのサイズと一致しません。

値: 0xC0AAB14A

vtbl 14 HRESULT get_ImageSize(DWORD* pVal)

ブートイメージのサイズを取得します。

pValDWORD*outブートイメージのサイズ (バイト単位)。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合があります。操作が失敗した場合は一般に次のエラーコードが返されますが、返される可能性のあるエラー値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

vtbl 15 HRESULT AssignBootImage(IStream* newVal)

ブートイメージを含むデータストリームを設定します。

newValIStream*inブートイメージを含むデータストリームの IStream インターフェイス。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合があります。操作が失敗した場合は一般に次のエラーコードが返されますが、返される可能性のあるエラー値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

IMAPI_E_BOOT_IMAGE_DATA
ブートオブジェクトをイメージに追加できませんでした。

値: 0xC0AAB142

解説(Remarks)

新しく割り当てられたブートイメージのサイズが 1.2 MB、1.44 MB、または 2.88 MB のいずれかである場合、このメソッドは EmulationType の値を対応する「フロッピー」の種類の値に自動的に調整します。ただし、IBootOptions::put_Emulation メソッドを呼び出すことで、既定値または以前に割り当てられた EmulationType の値を上書きすることもできます。

ブートイメージを使用するプラットフォームを追加で指定するには、IBootOptions::put_PlatformId メソッドを呼び出す必要があります。

IMAPI にはブートイメージは一切含まれていません。開発者は独自のブートイメージを用意する必要があります。

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

HSP用 COM定義

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

出力引数:
#define global IID_IBootOptions "{2C941FD4-975B-59BE-A960-9A2A262853A5}"
#usecom global IBootOptions IID_IBootOptions "{2C941FCE-975B-59BE-A960-9A2A262853A5}"
#comfunc global IBootOptions_get_BootImage     7 sptr
#comfunc global IBootOptions_get_Manufacturer  8 var
#comfunc global IBootOptions_put_Manufacturer  9 wstr
#comfunc global IBootOptions_get_PlatformId    10 var
#comfunc global IBootOptions_put_PlatformId    11 int
#comfunc global IBootOptions_get_Emulation     12 var
#comfunc global IBootOptions_put_Emulation     13 int
#comfunc global IBootOptions_get_ImageSize     14 var
#comfunc global IBootOptions_AssignBootImage   15 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。