Condividi tramite


SDBUS_REQUEST_PACKET struttura (ntddsd.h)

La struttura SDBUS_REQUEST_PACKET specifica i parametri per le singole richieste e i comandi inviati dalla routine SdBusSubmitRequest al driver del bus.

Sintassi

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;

Members

RequestFunction

Contiene un valore di enumerazione di tipo SD_REQUEST_FUNCTION che specifica i parametri per l'operazione e come vengono interpretati.

UserContext[3]

Contiene un'area del buffer per l'uso facoltativo da parte del chiamante. Il driver del bus non usa questo membro.

Information

Contiene lo stato della richiesta nell'output.

ResponseData

Definisce l'unione ResponseData .

ResponseData.AsUCHAR[16]

Contiene un massimo di 16 byte di dati di risposta nell'output. Per altre informazioni sui dati di risposta, vedere la specifica Secure Digital (SD).

ResponseData.AsULONG[4]

Contiene un massimo di 16 byte di dati di risposta nell'output. Per altre informazioni sui dati di risposta, vedere la specifica Secure Digital (SD).

ResponseData.Type3

Definisce il SDRESP_TYPE3membro Type3.

ResponseLength

Indica la lunghezza, in byte, dei dati di risposta.

Reserved

Riservato, impostato su 0.

Flags

Contrassegna il campo per SDRP.

Parameters

Parametri per le singole funzioni.

Parameters.GetSetProperty

Le funzioni di proprietà consentono al chiamante di controllare gli aspetti dell'operazione del driver del bus.

Parameters.GetSetProperty.Property

Contiene un valore di enumerazione di tipo SDBUS_PROPERTY che specifica la proprietà da leggere o modificare.

Parameters.GetSetProperty.Buffer

Contiene i dati delle proprietà da scrivere nelle operazioni che impostano una proprietà. Contiene i dati letti dalla proprietà nelle operazioni che recuperano i dati associati a una proprietà.

Parameters.GetSetProperty.Length

Indica la lunghezza, in byte, dei dati di risposta.

Parameters.DeviceCommand

DeviceCommand è la "pipe" che consente l'esecuzione di codici e argomenti del dispositivo SD. Questi codici sono definiti nella specifica Secure Digital (SD), possono essere basati per ogni classe di dispositivo o possono essere proprietari.

Parameters.DeviceCommand.CmdDesc

Contiene una struttura di tipo SDCMD_DESCRIPTOR che definisce un comando della scheda SD.

Parameters.DeviceCommand.Argument

Contiene 4 byte di informazioni sull'argomento che accompagnano il comando.

Parameters.DeviceCommand.Mdl

Puntatore a un MDL che contiene i dati del comando.

Parameters.DeviceCommand.Length

Indica la lunghezza, in byte, dei dati di risposta.

Parameters.EraseCommand

CancelCommand consente ai dispositivi MMC di inviare comandi Cancella al dispositivo specificato in una sequenza atomica, poiché tre comandi del dispositivo devono essere inviati a Cancella un determinato intervallo o gruppo LBA.

Parameters.EraseCommand.EraseType

Definisce il SDBUS_ERASE_TYPE membro CancelType.

Parameters.EraseCommand.StartBlock

Definisce il membro ULONGStartBlock.

Parameters.EraseCommand.EndBlock

Definisce il membro ULONGEndBlock.

Parameters.MmcSoftReset

MmcSoftReset consente ai dispositivi eMMC di essere reimpostati in modo soft per un aggiornamento del firmware proprietario di SanDisk che reimposta il dispositivo allo stato prodotto.

Parameters.MmcSoftReset.Frequency

Definisce la frequenza membro ULONG.

Parameters.MmcHpi

MmcHpi consente l'invio di un HPI al dispositivo eMMC che causerà l'arresto dell'SDRP attualmente in esecuzione con STATUS_SDBUS_IO_INTERRUPTED. Il campo informazioni dell'SDRP arrestato verrà compilato con lo stato di avanzamento dell'operazione interrotta, quindi potrebbe essere ripreso in seguito all'offset corretto.

Parameters.MmcHpi.IrpToHpi

Si tratta dell'IRP a HPI. Questa operazione viene controllata da SDBUS per assicurarsi che si stia andando a HPI il giusto IRP.

Commenti

Se la richiesta legge o imposta una proprietà in un dispositivo SD, un driver di dispositivo deve completare la procedura seguente:

  1. Impostare il membro RequestFunction di SDBUS_REQUEST_PACKET su un valore di enumerazione SD_REQUEST_FUNCTION di SDRF_GET_PROPERTY o SDRF_SET_PROPERTY.

  2. Impostare il membro Proprietà di SDBUS_REQUEST_PACKET sul valore di enumerazione SDBUS_PROPERTY che specifica la proprietà da leggere o modificare.

  3. Inviare la richiesta al driver del bus passando la struttura di SDBUS_REQUEST_PACKET inizializzata a SdBusSubmitRequest o SdBusSubmitResync.

Se la richiesta invia un comando a un dispositivo SD, un driver di dispositivo deve completare la procedura seguente:

  1. Impostare il membro RequestFunction di SDBUS_REQUEST_PACKET su un valore di enumerazione SD_REQUEST_FUNCTION di SDRF_DEVICE_COMMAND .

  2. Inizializzare il membro CmdDesc di SDBUS_REQUEST_PACKET per definire il comando.

  3. Inviare la richiesta al driver del bus passando la struttura di SDBUS_REQUEST_PACKET inizializzata a SdBusSubmitRequest o SdBusSubmitResync.

Per eseguire operazioni di proprietà, il driver deve inizializzare i membri GetSetProperty.Property, GetSetProperty.Buffer e GetSetProperty.Length della struttura SDBUS_REQUEST_PACKET prima di inviare la richiesta.

Per inviare un comando, il driver deve inizializzare i membri DeviceCommand.CmdDesc, DeviceCommand.Argument,DeviceCommand.Mdl e DeviceCommand.Length della struttura SDBUS_REQUEST_PACKET prima di inviare la richiesta.

Requisiti

Requisito Valore
Intestazione ntddsd.h (include Ntddsd.h)

Vedi anche

SD_REQUEST_FUNCTION

SDBUS_PROPERTY

SdBusSubmitRequest

SdBusSubmitRequestAsync

SDCMD_DESCRIPTOR