1

ATA_PASS_THROUGH_EX32 構造体と IOCTL_ATA_PASS_THROUGH IoControlCode を使用して、WdfIoTargetSendIoctlSynchronously 経由で raw ATA コマンドを送信しようとしました。私が気付いたのは、IOCTL_DISK_GET_DRIVE_GEOMETRY 以外のコマンドは、KMDF ドライバー内から失敗したように見えることです。

標準の 32 ビット実行可能ファイルをビルドし、IOCTL_ATA_PASS_THROUGH を問題なく使用できます。ドライバーは、WdfIoTargetSendIoctlSynchronously の NTStatus 戻り値から、STATUS_INVALID_PARAMETER 以外のエラーを取得しません。

誰にもアイデアはありますか?

実行した手順:

  • WdfIoTargetCreate
  • WdfIoTargetOpen
  • WdfRequestCreate
  • WdfMemoryCreate -> WDF_MEMORY_DESCRIPTOR_INIT_BUFFER -> ATA_PASS_THROUGH_EX32
  • WdfMemoryCreate -> WDF_MEMORY_DESCRIPTOR_INIT_BUFFER -> OutputBuffer
  • WdfIoTargetSendIoctl同期的に
4

0 に答える 0