Share via


EngSetPrinterData 関数 (winddi.h)

EngSetPrinterData 関数は、Windows 2000 以降では廃止されています。

以前のバージョンの Windows EngSetPrinterData では、指定したプリンターの構成データが設定されます。

構文

ENGAPI DWORD EngSetPrinterData(
  [in] HANDLE hPrinter,
  [in] LPWSTR pType,
  [in] DWORD  dwType,
  [in] LPBYTE lpbPrinterData,
  [in] DWORD  cjPrinterData
);

パラメーター

[in] hPrinter

構成データを設定する必要があるプリンターを処理します。 これは、DrvEnablePDEVhDriver パラメーターとして渡されるハンドルです。 「解説」を参照してください。

[in] pType

設定するデータを識別する null で終わる文字列へのポインター。

[in] dwType

設定する情報の種類を指定するフラグです。 このパラメーターには、次のいずれかの値を指定できます。

説明
REG_BINARY 任意の形式のバイナリ データ。
REG_DWORD 32 ビット数値。
REG_DWORD_BIG_ENDIAN ビッグ エンディアン形式の 32 ビット数値。つまり、単語の最上位バイトは下位バイトです。
REG_DWORD_LITTLE_ENDIAN リトル エンディアン形式の 32 ビット数値 (REG_DWORDと同じ) は、単語の最上位バイトが高位バイトであることを意味します
REG_EXPAND_SZ 環境変数 ("%PATH%" など) への未展開の参照を含む null で終わる文字列。 Unicode 関数と ANSI 関数のどちらを使用するかに応じて、Unicode または ANSI 文字列になります。
REG_LINK Unicode シンボリック リンク。
REG_MULTI_SZ null で終わる文字列の配列。配列は、2 つの null 文字で終わります。
REG_NONE 値型が定義されていません。
REG_RESOURCE_LIST デバイス ドライバー リソースの一覧。
REG_SZ null で終わる文字列。 Unicode 関数と ANSI 関数のどちらを使用するかに応じて、Unicode または ANSI 文字列になります。

[in] lpbPrinterData

設定するプリンター構成データへのポインター。 指し示されるデータの種類は dwType によって決まります。

[in] cjPrinterData

lpbPrinterData のサイズをバイト単位で指定します。

戻り値

EngSetPrinterData は、最後にログに記録されたエラー メッセージを返します。

解説

Microsoft Windows 2000 以降、この関数は廃止されました。 EngSetPrinterData 関数と DrvEnablePDEV 関数の呼び出しで使用されるハンドルには、異なるアクセス権があります。そのため、これらの関数は連携して機能しなくなりました。 DrvEnablePDEV 関数の呼び出しで使用される hDriver パラメーターは、PRINTER_ACCESS_USEアクセス権で開かれます。 これに対し、 EngSetPrinterData 関数の呼び出しで使用される hPrinter パラメーターは、PRINTER_ALL_ACCESSアクセス権で開かれている必要があります。 その結果、カーネル モード プリンター ドライバー ( EngSetPrinterData を呼び出すことができる唯一の種類のプリンター ドライバー) が EngSetPrinterData を使用してプリンターに関する情報をレジストリに書き込む方法はありません。

プリンターのアクセス権の詳細については、PRINTER_DEFAULTS構造 (Windows SDK のドキュメントで説明) を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header winddi.h (Winddi.h を含む)
Library Win32k.lib
[DLL] Win32k.sys

関連項目

DrvEnablePDEV

EngGetPrinterData