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:
Atur anggota RequestFunctionSDBUS_REQUEST_PACKET ke nilai enumerasi SD_REQUEST_FUNCTION SDRF_GET_PROPERTY atau SDRF_SET_PROPERTY.
Atur anggota PropertiSDBUS_REQUEST_PACKET ke nilai enumerasi SDBUS_PROPERTY yang menentukan properti untuk dibaca atau diubah.
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:
Atur anggota RequestFunctiondari SDBUS_REQUEST_PACKET ke nilai enumerasi SD_REQUEST_FUNCTION SDRF_DEVICE_COMMAND.
Inisialisasi anggota CmdDescSDBUS_REQUEST_PACKET untuk menentukan perintah.
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) |