次の方法で共有


IRP_MJ_SET_SECURITY (FS およびフィルター ドライバー)

送信時

I/O マネージャーは IRP_MJ_SET_SECURITY リクエストを送信します。 このリクエストは、たとえばユーザーモード アプリケーションがSetSecurityInfo の Win32 関数を呼び出したときに送信できます。

操作: ファイル システム ドライバー

ファイル システム ドライバーは、ファイル オブジェクトを抽出およびデコードして、それが開いているユーザー ファイルを表すかディレクトリを表すかを判断する必要があります。 存在する場合、ドライバーは要求を処理し、IRP を完了する必要があります。 それ以外の場合、ドライバーは要求を処理せずに、必要に応じて IRP を完了する必要があります。

操作: レガシー ファイル システム フィルター ドライバー

フィルター ドライバーは、この IRP をスタック上の次に下位のドライバーに渡す必要があります。

パラメーター

ファイル システムまたはフィルター ドライバーは、指定された IRP で IoGetCurrentIrpStackLocation を呼び出して、IRP 内の独自のスタックの場所へのポインターを取得します。 次のパラメーターでは、IrpIRP を指し、IrpSpIO_STACK_LOCATION を指します。 ドライバーは、IRP の次のメンバーと IRP スタックの場所に設定されている情報を使用して、セキュリティ情報の設定要求を処理できます。

  • DeviceObject ターゲット デバイス オブジェクトへのポインターです。

  • Irp->Ioステータス は、最終的な完了ステータスと要求された操作に関する情報を受け取る IO_STATUS_BLOCK構造体を指します。

  • IrpSp->FileObject は、DeviceObject に関連付けられているファイル オブジェクトを指します。

    IrpSp->FileObject パラメーターには、FILE_OBJECT構造体でもある RelatedFileObject フィールドへのポインターが含まれています。 RelatedFileObject FILE_OBJECT 構造体のフィールドは、IRP_MJ_SET_SECURITY の処理中は無効であるため、使用しないでください。

  • IrpSp->MajorFunction は IRP_MJ_SET_SECURITY に設定されます。

  • IrpSp->Parameters.SetSecurity.SecurityDescriptor は、オブジェクトに割り当てられるセキュリティ情報の値を含む SECURITY_DESCRIPTOR 構造体を指します。

  • IrpSp->Parameters.SetSecurity.SecurityInformation type の値です SECURITY_INFORMATION セキュリティ記述子にどのセキュリティ情報を設定するかを指定し、次のいずれかの値を指定できます。

セキュリティ情報の値 意味
DACL_SECURITY_INFORMATION オブジェクトの随意アクセス制御リスト (DACL) が設定されていることを示します。 WRITE_DAC アクセスが必要です。
GROUP_SECURITY_INFORMATION オブジェクトのプライマリ グループ識別子が設定されていることを示します。 WRITE_OWNER アクセスが必要です。
OWNER_SECURITY_INFORMATION オブジェクトの所有者識別子が設定されていることを示します。 WRITE_OWNER アクセスが必要です。
SACL_SECURITY_INFORMATION オブジェクトのシステム ACL (SACL) が設定されていることを示します。 ACCESS_SYSTEM_SECURITY アクセスが必要です。

関連項目

IO_STACK_LOCATION

IO_STATUS_BLOCK

IoGetCurrentIrpStackLocation

IRP

IRP_MJ_QUERY_SECURITY

SECURITY_DESCRIPTOR

SECURITY_INFORMATION