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) |