次の方法で共有


IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO IOCTL (avc.h)

IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO I/O コントロール コードは、仮想サブユニットの列挙体を制御します。 IRP_MJ_DEVICE_CONTROL ディスパッチを通じて、ユーザー モードとカーネル モード コンポーネントで使用できます。 ドライバー間通信の場合は、METHOD_BUFFERED IOCTL であるため、それに応じて IRP フィールドを設定します (IrpStack->Parameters.DeviceIoControl.InputBufferLength および Irp->AssociatedIrp.SystemBuffer)。

IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFOは、1 つの型のすべてのサブユニット ID を削除するために使用されます。 サブユニット アドレスの ID 部分は無視されます。

この IOCTL では、AVC_SUBUNIT_ADDR_SPEC構造体が使用されます。

メジャー コード

IRP_MJ_DEVICE_CONTROL

状態ブロック

成功した場合、AV/C プロトコル ドライバー Irp->IoStatus.Status がSTATUS_SUCCESSに設定されます。

その他の戻り値は次のとおりです。

戻り値 形容
STATUS_INSUFFICIENT_RESOURCES バッファーが渡されなかったか、レジストリ クエリを実行するために使用できるリソースが不足しています。
STATUS_INVALID_BUFFER_SIZE Irp->AssociatedIrp.SystemBuffer で渡されるバッファーは、1 バイトのサブユニット アドレスを含む sizeof(AVC_SUBUNIT_ADDR_SPEC) 以上である必要がありますが、32 バイトのサブユニット アドレスに制限されます。
STATUS_INVALID_PARAMETER サブユニット アドレスが正しく指定されていません。
STATUS_ACCESS_DENIED 現在のユーザーには、更新を永続的にするための十分なレジストリ アクセス特権がありません。

備考

IRQL = PASSIVE_LEVELで呼び出す必要があります。

必要条件

要件 価値
ヘッダー avc.h (Avc.h を含む)

関連項目

AVC_SUBUNIT_ADDR_SPEC

IOCTL_AVC_BUS_RESET

IOCTL_AVC_CLASS

IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO