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構造体が使用されます。
メジャー コード
状態ブロック
成功した場合、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 を含む) |