Does BuildScatterGatherList require PutScatterGatherList ?

I’ve googled, I’ve searched the OsrOnline archive, I’ve read the docs, and
I can’t conclusively say it does or does not.

The doc for PutScatterGatherList says:
Drivers should call PutScatterGatherList after completing scatter/gather
I/O. This routine flushes the adapter buffers, frees the map registers,
and frees the scatter/gather list previously allocated by
GetScatterGatherList <kdma_b451cb34-7181-4272-a1ef-0c8fc233a7fd.xml.htm> .

I’m not sure if I should interpret this as meaning that it will only free
an SGL allocated by GetSGL, or if it’s a warning that it’s going to
attempt to free the SGL, assuming that it was allocated by GetSGL, whether
it was or not.

Thanks,

Phil

Philip D. Barila
Seagate Technology LLC
(720) 684-1842</kdma_b451cb34-7181-4272-a1ef-0c8fc233a7fd.xml.htm>

Yes you do need to call PutScatterGatherList after
BuildScatterGatherList.

Get & Build both acquire DMA resources from the HAL (MapRegisters, which
you allocated when you got the DMA adapter). Put releases those
resources. The main difference between Get and Build is that Get also
allocates pool and so is slightly slower and can fail, though it is
easier to use.

-p


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Thursday, February 09, 2006 4:36 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Does BuildScatterGatherList require
PutScatterGatherList ?

I’ve googled, I’ve searched the OsrOnline archive, I’ve read the docs,
and I can’t conclusively say it does or does not.

The doc for PutScatterGatherList says:
Drivers should call PutScatterGatherList after completing scatter/gather
I/O. This routine flushes the adapter buffers, frees the map registers,
and frees the scatter/gather list previously allocated by
GetScatterGatherList
<file:> .

I’m not sure if I should interpret this as meaning that it will only
free an SGL allocated by GetSGL, or if it’s a warning that it’s going to
attempt to free the SGL, assuming that it was allocated by GetSGL,
whether it was or not.

Thanks,

Phil

Philip D. Barila
Seagate Technology LLC
(720) 684-1842


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com</file:>

So does that mean that I can safely assume that PutScatterGatherList isn’t
going to try to free the SGL I gave to BuildScatterGatherList?

Thanks,

Phil

Philip D. Barila
Seagate Technology LLC
(720) 684-1842


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Peter Wieland
Sent: Friday, February 10, 2006 9:11 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Does BuildScatterGatherList require
PutScatterGatherList ?

Yes you do need to call PutScatterGatherList after BuildScatterGatherList.

Get & Build both acquire DMA resources from the HAL (MapRegisters, which
you allocated when you got the DMA adapter). Put releases those
resources. The main difference between Get and Build is that Get also
allocates pool and so is slightly slower and can fail, though it is easier
to use.

-p


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Thursday, February 09, 2006 4:36 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Does BuildScatterGatherList require PutScatterGatherList
?

I’ve googled, I’ve searched the OsrOnline archive, I’ve read the docs, and
I can’t conclusively say it does or does not.

The doc for PutScatterGatherList says:
Drivers should call PutScatterGatherList after completing scatter/gather
I/O. This routine flushes the adapter buffers, frees the map registers,
and frees the scatter/gather list previously allocated by
<file:>
GetScatterGatherList.

I’m not sure if I should interpret this as meaning that it will only free
an SGL allocated by GetSGL, or if it’s a warning that it’s going to
attempt to free the SGL, assuming that it was allocated by GetSGL, whether
it was or not.

Thanks,

Phil

Philip D. Barila
Seagate Technology LLC
(720) 684-1842


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’

To unsubscribe send a blank email to xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’

To unsubscribe send a blank email to xxxxx@lists.osr.com</file:>

If you call BuildScatterGatherList and provide it a buffer, then
PutScatterGatherList won’t free that buffer.

(i don’t remember offhand if BuildScatterGatherList will allocate a
buffer for you if you don’t rpovide one - if it does then i imagine that
PutScatterGatherList would free the list in that case)

-p


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Friday, February 10, 2006 8:18 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Does BuildScatterGatherList require
PutScatterGatherList ?

So does that mean that I can safely assume that PutScatterGatherList
isn’t going to try to free the SGL I gave to BuildScatterGatherList?

Thanks,

Phil

Philip D. Barila
Seagate Technology LLC
(720) 684-1842


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Peter Wieland
Sent: Friday, February 10, 2006 9:11 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Does BuildScatterGatherList require
PutScatterGatherList ?

Yes you do need to call PutScatterGatherList after
BuildScatterGatherList.

Get & Build both acquire DMA resources from the HAL (MapRegisters, which
you allocated when you got the DMA adapter). Put releases those
resources. The main difference between Get and Build is that Get also
allocates pool and so is slightly slower and can fail, though it is
easier to use.

-p


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Thursday, February 09, 2006 4:36 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Does BuildScatterGatherList require
PutScatterGatherList ?

I’ve googled, I’ve searched the OsrOnline archive, I’ve read the docs,
and I can’t conclusively say it does or does not.

The doc for PutScatterGatherList says:
Drivers should call PutScatterGatherList after completing scatter/gather
I/O. This routine flushes the adapter buffers, frees the map registers,
and frees the scatter/gather list previously allocated by
GetScatterGatherList
<file:> .

I’m not sure if I should interpret this as meaning that it will only
free an SGL allocated by GetSGL, or if it’s a warning that it’s going to
attempt to free the SGL, assuming that it was allocated by GetSGL,
whether it was or not.

Thanks,

Phil

Philip D. Barila
Seagate Technology LLC
(720) 684-1842


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com</file:>

The docs appear to suggest the the ScatterGatherBuffer pointer and
ScatterGatherBufferLength parameters are not optional. The use of
GetScatterGatherList and BuildScatterGatherList appear to be MutEx.

Thanks for the confirmation, Peter,

Phil

Philip D. Barila
Seagate Technology LLC
(720) 684-1842


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Peter Wieland
Sent: Friday, February 10, 2006 10:36 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Does BuildScatterGatherList require
PutScatterGatherList ?

If you call BuildScatterGatherList and provide it a buffer, then
PutScatterGatherList won’t free that buffer.

(i don’t remember offhand if BuildScatterGatherList will allocate a buffer
for you if you don’t rpovide one - if it does then i imagine that
PutScatterGatherList would free the list in that case)

-p


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Friday, February 10, 2006 8:18 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Does BuildScatterGatherList require
PutScatterGatherList ?

So does that mean that I can safely assume that PutScatterGatherList isn’t
going to try to free the SGL I gave to BuildScatterGatherList?

Thanks,

Phil

Philip D. Barila
Seagate Technology LLC
(720) 684-1842


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Peter Wieland
Sent: Friday, February 10, 2006 9:11 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Does BuildScatterGatherList require
PutScatterGatherList ?

Yes you do need to call PutScatterGatherList after BuildScatterGatherList.

Get & Build both acquire DMA resources from the HAL (MapRegisters, which
you allocated when you got the DMA adapter). Put releases those
resources. The main difference between Get and Build is that Get also
allocates pool and so is slightly slower and can fail, though it is easier
to use.

-p


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Thursday, February 09, 2006 4:36 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Does BuildScatterGatherList require PutScatterGatherList
?

I’ve googled, I’ve searched the OsrOnline archive, I’ve read the docs, and
I can’t conclusively say it does or does not.

The doc for PutScatterGatherList says:
Drivers should call PutScatterGatherList after completing scatter/gather
I/O. This routine flushes the adapter buffers, frees the map registers,
and frees the scatter/gather list previously allocated by
<file:>
GetScatterGatherList.

I’m not sure if I should interpret this as meaning that it will only free
an SGL allocated by GetSGL, or if it’s a warning that it’s going to
attempt to free the SGL, assuming that it was allocated by GetSGL, whether
it was or not.

Thanks,

Phil

Philip D. Barila
Seagate Technology LLC
(720) 684-1842


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’

To unsubscribe send a blank email to xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’

To unsubscribe send a blank email to xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’

To unsubscribe send a blank email to xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’

To unsubscribe send a blank email to xxxxx@lists.osr.com</file:>