Bagikan melalui


struktur SDBUS_REQUEST_PACKET (ntddsd.h)

Struktur SDBUS_REQUEST_PACKET menentukan parameter untuk permintaan dan perintah individual yang dikirim rutin SdBusSubmitRequest ke driver bus.

Sintaks

typedef struct _SDBUS_REQUEST_PACKET {
  SD_REQUEST_FUNCTION RequestFunction;
  PVOID               UserContext[3];
  ULONG_PTR           Information;
  union {
    UCHAR        AsUCHAR[16];
    ULONG        AsULONG[4];
    SDRESP_TYPE3 Type3;
  } ResponseData;
  UCHAR               ResponseLength;
  UCHAR               Reserved;
  USHORT              Flags;
  union {
    struct {
      SDBUS_PROPERTY Property;
      PVOID          Buffer;
      ULONG          Length;
    } GetSetProperty;
    struct {
      SDCMD_DESCRIPTOR CmdDesc;
      ULONG            Argument;
      PMDL             Mdl;
      ULONG            Length;
    } DeviceCommand;
    struct {
      SDBUS_ERASE_TYPE EraseType;
      ULONG            StartBlock;
      ULONG            EndBlock;
    } EraseCommand;
    struct {
      ULONG Frequency;
    } MmcSoftReset;
    struct {
      PIRP IrpToHpi;
    } MmcHpi;
  } Parameters;
} SDBUS_REQUEST_PACKET, *PSDBUS_REQUEST_PACKET;

Anggota

RequestFunction

Berisi nilai enumerasi jenis SD_REQUEST_FUNCTION yang menentukan parameter untuk operasi dan bagaimana mereka ditafsirkan.

UserContext[3]

Berisi area buffer untuk penggunaan opsional oleh pemanggil. Sopir bus tidak menggunakan anggota ini.

Information

Berisi status permintaan pada output.

ResponseData

Mendefinisikan serikat ResponseData .

ResponseData.AsUCHAR[16]

Berisi maksimum 16 byte data respons pada output. Untuk informasi selengkapnya tentang data respons, lihat spesifikasi Secure Digital (SD ).

ResponseData.AsULONG[4]

Berisi maksimum 16 byte data respons pada output. Untuk informasi selengkapnya tentang data respons, lihat spesifikasi Secure Digital (SD ).

ResponseData.Type3

Menentukan anggota SDRESP_TYPE3Type3.

ResponseLength

Menunjukkan panjang, dalam byte, dari data respons.

Reserved

Dicadangkan, atur ke 0.

Flags

Bidang bendera untuk SDRP.

Parameters

Parameter ke fungsi individual.

Parameters.GetSetProperty

Fungsi properti memungkinkan pemanggil untuk mengontrol aspek operasi pengemudi bus.

Parameters.GetSetProperty.Property

Berisi nilai enumerasi jenis SDBUS_PROPERTY yang menentukan properti untuk dibaca atau diubah.

Parameters.GetSetProperty.Buffer

Berisi data properti untuk ditulis dalam operasi yang mengatur properti. Berisi data yang dibaca dari properti dalam operasi yang mengambil data yang terkait dengan properti .

Parameters.GetSetProperty.Length

Menunjukkan panjang, dalam byte, dari data respons.

Parameters.DeviceCommand

DeviceCommand adalah 'pipa' yang memungkinkan kode dan argumen perangkat SD dijalankan. Kode-kode ini didefinisikan dalam spesifikasi Secure Digital (SD ), dapat didasarkan per kelas perangkat, atau juga dapat menjadi kepemilikan.

Parameters.DeviceCommand.CmdDesc

Berisi struktur jenis SDCMD_DESCRIPTOR yang menentukan perintah kartu SD.

Parameters.DeviceCommand.Argument

Berisi 4 byte informasi argumen yang menyertai perintah.

Parameters.DeviceCommand.Mdl

Penunjuk ke MDL yang menyimpan data perintah.

Parameters.DeviceCommand.Length

Menunjukkan panjang, dalam byte, dari data respons.

Parameters.EraseCommand

EraseCommand memungkinkan perangkat MMC untuk mengirim perintah Hapus ke perangkat tertentu dalam urutan atomik, karena tiga perintah perangkat perlu dikirim untuk Menghapus rentang atau grup LBA tertentu.

Parameters.EraseCommand.EraseType

Menentukan anggota SDBUS_ERASE_TYPEEraseType.

Parameters.EraseCommand.StartBlock

Mendefinisikan startBlock anggota ULONG.

Parameters.EraseCommand.EndBlock

Mendefinisikan anggota ULONGEndBlock.

Parameters.MmcSoftReset

MmcSoftReset memungkinkan perangkat eMMC untuk reset lunak untuk pembaruan firmware milik SanDisk yang mengatur ulang perangkat ke keadaan diproduksi.

Parameters.MmcSoftReset.Frequency

Mendefinisikan Frekuensi anggota ULONG.

Parameters.MmcHpi

MmcHpi memungkinkan HPI dikirim ke perangkat eMMC yang akan menyebabkan sdbus menghentikan SDRP yang sedang dijalankan dengan STATUS_SDBUS_IO_INTERRUPTED. Bidang informasi SDRP yang dihentikan akan diisi dengan kemajuan operasi yang dihentikan, sehingga dapat dilanjutkan nanti pada offset yang benar.

Parameters.MmcHpi.IrpToHpi

Ini adalah IRP ke HPI. Ini diperiksa oleh SDBUS untuk memastikannya akan ke HPI IRP yang tepat.

Keterangan

Jika permintaan membaca atau mengatur properti pada perangkat SD, driver perangkat harus menyelesaikan langkah-langkah berikut:

  1. Atur anggota RequestFunctionSDBUS_REQUEST_PACKET ke nilai enumerasi SD_REQUEST_FUNCTION SDRF_GET_PROPERTY atau SDRF_SET_PROPERTY.

  2. Atur anggota PropertiSDBUS_REQUEST_PACKET ke nilai enumerasi SDBUS_PROPERTY yang menentukan properti untuk dibaca atau diubah.

  3. Kirim permintaan ke driver bus dengan meneruskan struktur SDBUS_REQUEST_PACKET yang diinisialisasi ke SdBusSubmitRequest atau SdBusSubmitRequestAsync.

Jika permintaan mengirim perintah ke perangkat SD, driver perangkat harus menyelesaikan langkah-langkah berikut:

  1. Atur anggota RequestFunctiondari SDBUS_REQUEST_PACKET ke nilai enumerasi SD_REQUEST_FUNCTION SDRF_DEVICE_COMMAND.

  2. Inisialisasi anggota CmdDescSDBUS_REQUEST_PACKET untuk menentukan perintah.

  3. Kirim permintaan ke driver bus dengan meneruskan struktur SDBUS_REQUEST_PACKET yang diinisialisasi ke SdBusSubmitRequest atau SdBusSubmitRequestAsync.

Untuk melakukan operasi properti, driver harus menginisialisasi anggota GetSetProperty.Property, GetSetProperty.Buffer, dan GetSetProperty.Length dari struktur SDBUS_REQUEST_PACKET sebelum mengirimkan permintaan.

Untuk mengirim perintah, driver harus menginisialisasi anggota DeviceCommand.CmdDesc, DeviceCommand.Argument, DeviceCommand.Mdl, dan DeviceCommand.Length dari struktur SDBUS_REQUEST_PACKET sebelum mengirimkan permintaan.

Persyaratan

Persyaratan Nilai
Header ntddsd.h (termasuk Ntddsd.h)

Lihat juga

SD_REQUEST_FUNCTION

SDBUS_PROPERTY

SdBusSubmitRequest

SdBusSubmitRequestAsync

SDCMD_DESCRIPTOR