CreateLogFile 関数 (clfsw32.h)

ログを作成または開きます。 ログは専用または多重化することができ、ログ名によって異なります。 CloseHandle 関数を使用してログを閉じます。

構文

CLFSUSER_API HANDLE CreateLogFile(
  [in]           LPCWSTR               pszLogFileName,
  [in]           ACCESS_MASK           fDesiredAccess,
  [in]           DWORD                 dwShareMode,
  [in, optional] LPSECURITY_ATTRIBUTES psaLogFile,
  [in]           ULONG                 fCreateDisposition,
  [in]           ULONG                 fFlagsAndAttributes
);

パラメーター

[in] pszLogFileName

ログの名前。

この名前は、 CreateLogFile を使用してログを作成するときに指定されます。 次の例では、使用する形式を識別します。

ログ:<LogName>[::<LogStreamName>]

たとえば、"LOG:c:\MyDirectory\MyLog" というパスでは、ファイル "c:\MyDirectory\MyLog.blf" が作成されます。 パス "??\LOG:\HarddiskVolume1\MyDirectory\MyLog" は、パス "\clfs\Device\HarddiskVolume1\MyDirectory\MyLog" と同様に、ファイル "\.\HarddiskVolume1\MyDirectory\MyLog" を作成します。

<Logname>はファイル システム内の有効なファイル パスに対応し<、LogStreamName> はログ内のログ ストリームの一意の名前です。 詳細については、「ログの 種類」を参照してください。

[in] fDesiredAccess

返されたハンドルがログ オブジェクトに対して持つアクセスの種類。

意味
GENERIC_READ
オブジェクトへの読み取りアクセスを指定します。
GENERIC_WRITE
オブジェクトへの書き込みアクセスを指定します。
DELETE
ログ削除アクセスを指定する
 

これらのフラグの 2 つ以上のビットごとの OR を使用すると、オブジェクトへの読み取り、書き込み、および削除アクセスの組み合わせが可能になります。

メモ ログを削除できるようにするには、 DELETE アクセスを指定する必要があります。

 
Windows Server 2003 R2: このパラメーターは 、GENERIC_WRITEに設定する必要があります。

[in] dwShareMode

ファイルの共有モード。

クライアントは、開いているハンドルを持つ以前のオープン要求で指定されたモードと競合する共有モードを要求できません。

このパラメーターが 0 で、関数が成功した場合、オブジェクトは共有できず、ハンドルが閉じられるまでもう一度開くことができません。

このパラメーターには、次の 1 つ以上の値を指定できます。

意味
FILE_SHARE_DELETE
オブジェクトに対するオープン操作を有効にして、削除アクセスを要求します。 この値がないと、削除アクセスが要求された場合、他のプロセスは オブジェクトを開くことができません。
FILE_SHARE_READ
オブジェクトに対するオープン操作を有効にして、読み取りアクセスを要求します。 この値がないと、読み取りアクセスが要求された場合、他のプロセスは オブジェクトを開くことができません。
FILE_SHARE_WRITE
オブジェクトに対するオープン操作を有効にして、書き込みアクセスを要求します。 この値がないと、書き込みアクセスが要求された場合、他のプロセスは オブジェクトを開くことができません。

[in, optional] psaLogFile

ログのセキュリティ属性を指定する SECURITY_ATTRIBUTES 構造体へのポインター。

返されたハンドルを子プロセスによって継承できるかどうかを決定します。 このパラメーターが NULL の場合、ハンドルを継承できません。

SECURITY_ATTRIBUTESlpSecurityDescriptor メンバーは、新しいログ ハンドルのセキュリティ記述子を指定します。 psaLogFileNULL の場合、オブジェクトは既定のセキュリティ記述子を取得します。 ログの既定のセキュリティ記述子のアクセス制御リスト (ACL) は、作成者のプライマリ トークンまたは偽装トークンから取得されます。

[in] fCreateDisposition

実行するアクション。

このパラメーターには、次の値のいずれかを指定できます。

意味
CREATE_NEW
新しいファイルを作成し、ファイルが既に存在する場合は失敗します。
OPEN_EXISTING
既存のファイルを開き、ファイルが存在しない場合は失敗します。
OPEN_ALWAYS
既存のファイルを開くか、存在しない場合はファイルを作成します。

[in] fFlagsAndAttributes

ファイルの属性とフラグ。

このパラメーターは、次の値を受け取ることができます。

意味
FILE_ATTRIBUTE_ARCHIVE
この一時的でないログはアーカイブする必要があります。

このフラグが指定されていない場合は、ログをアーカイブする必要はありません。また、ログ コンテナーをリサイクルするためにアーカイブ末尾は保持されません。

FILE_FLAG_OVERLAPPED
FILE_FLAG_OVERLAPPED フラグが設定されている場合、他のすべてのフラグ値は無視されます。

FILE_FLAG_OVERLAPPEDを指定すると、重複する I/O に対してファイルが開かれます。これにより、ログ ハンドルに対して複数の I/O 操作を実行できます。 ログの作成時にこのフラグが設定されている場合、そのログに対するすべての非同期 I/O 呼び出しでは、重複する構造を指定し、呼び出しの遅延完了と同期する必要があります。

戻り値

関数が成功した場合、戻り値はログへのハンドルです。

失敗した場合の戻り値は、INVALID_HANDLE_VALUE です。 詳細なエラー情報を得るには、GetLastError を呼び出します。

次の一覧は、考えられるエラー コードを示しています。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー clfsw32.h
Library Clfsw32.lib
[DLL] Clfsw32.dll

こちらもご覧ください

ACCESS_MASK

AddLogContainer

AddLogContainerSet

CLFS_CONTAINER_INFORMATION

一般的なログ ファイル システム関数

CreateLogMarshallingArea

SECURITY_ATTRIBUTES