ZwCreateDirectoryObject 関数 (wdm.h)

ZwCreateDirectoryObject ルーチンは、オブジェクト ディレクトリ オブジェクトを作成または開きます。

構文

NTSYSAPI NTSTATUS ZwCreateDirectoryObject(
  [out] PHANDLE            DirectoryHandle,
  [in]  ACCESS_MASK        DesiredAccess,
  [in]  POBJECT_ATTRIBUTES ObjectAttributes
);

パラメーター

[out] DirectoryHandle

オブジェクト ディレクトリへのハンドルを受け取る HANDLE 変数へのポインター。

[in] DesiredAccess

オブジェクトへの要求されたアクセスを決定する ACCESS_MASK 値を指定します。 呼び出し元は、すべての種類のオブジェクトに対して定義されているアクセス権 ( ACCESS_MASKを参照) に加えて、オブジェクト ディレクトリに固有の次のアクセス権を 1 つ以上指定できます。

ACCESS_MASK フラグ アクセスの種類
DIRECTORY_QUERY クエリ
DIRECTORY_TRAVERSE 名前の参照
DIRECTORY_CREATE_OBJECT 名前の作成
DIRECTORY_CREATE_SUBDIRECTORY サブディレクトリの作成
DIRECTORY_ALL_ACCESS 上記のすべての型

[in] ObjectAttributes

オブジェクトの属性を含む OBJECT_ATTRIBUTES 構造体へのポインター。 InitializeObjectAttributes を呼び出して既に初期化しておく必要があります。

戻り値

ZwCreateDirectoryObject は NTSTATUS 値を返します。 可能な戻り値は次のとおりです。

注釈

DirectoryHandle が指すハンドルが使用されなくなったら、ドライバーは ZwClose を呼び出して閉じる必要があります。

呼び出し元がシステム スレッド コンテキストで実行されていない場合は、作成するハンドルがプライベート ハンドルであることを確認する必要があります。 それ以外の場合は、ドライバーが実行されているコンテキスト内のプロセスによってハンドルにアクセスできます。 詳細については、「 オブジェクト ハンドル」を参照してください。

システムは、オブジェクト ディレクトリを使用して、デバイス オブジェクトなどの他の種類のオブジェクトを整理します。 詳細については、「 オブジェクト ディレクトリ」を参照してください。

システムは、ファイル・システム・ディレクトリーを表すためにオブジェクト・ディレクトリー・オブジェクトを使用しません。これは、ファイル・オブジェクトとして代わりに表されます。

この関数の呼び出しがユーザー モードで行われる場合は、"ZwCreateDirectoryObject" ではなく "NtCreateDirectoryObject" という名前を使用する必要があります。

カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxx バージョンと ZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt バージョンと Zw バージョンの使用」を参照してください。

要件

要件
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

こちらもご覧ください

ACCESS_MASK

InitializeObjectAttributes

Nt および Zw バージョンのネイティブ システム サービス ルーチンの使用

ZwClose